The conversation view
Turns, streaming responses, thoughts, tool cards, and shell blocks.
The conversation view replaces the pane's terminal while an agent conversation is open. It keeps the terminal aesthetic — everything renders in monospace — but the content is a structured transcript, not raw scrollback.
The landing page
A fresh conversation opens bottom-anchored: a heading, "Send a prompt below to start a new conversation in <your directory>", and a RECENT ACTIVITY list of past conversations you can click to resume. Below the input, a hint row reminds you of the essentials — / for commands, shift+↵ for a new line, ctrl+shift+Y to open a conversation.
Writing the prompt
The input is a real multi-line editor, not a single line.
- ↵ sends. shift+↵ starts a new line — as do alt+↵ and ctrl+J, so whichever habit you arrive with works.
- Long prompts wrap; they never scroll sideways.
- The box grows as you write, up to about ten lines, then scrolls inside itself. It never grows so far that the transcript above it disappears.
- Pasting a multi-line block keeps its line breaks.
- ctrl+G (or the ⤢ button at the right of the input) pops the prompt out into a larger compose box for something long.
esccloses it and keeps what you wrote. - ↑ opens the prompt/command history — but only when the caret is on the first line. Anywhere else it moves the caret up, like any other editor.
- Your unsent draft stays put when you switch panes, and comes back if you leave a conversation and reopen it.
What appears in the transcript
- User turns — your prompt on a line with a status dot, in monospace.
- Streaming response — the assistant's answer streams in as markdown, rendered in monospace with code blocks and formatting intact.
- Thoughts — models that expose reasoning stream it into a collapsible "Thoughts" section. It's open while the model is thinking and collapses to a "Thought for N s" line when done; click to expand it again.
- Tool cards — each tool call is a full-width row: the tool name and target (a file path, a search pattern, a command), a running indicator while it executes, a checkmark when done, and expandable output. See Tools & approvals.
- Tasks card — the agent's live checklist for multi-step work. See Tasks & the agent lifecycle.
- Diff cards — every applied file change, with
+/-counts and red/green rows. - Approval cards — inline gates for writes and commands.
Running shell commands mid-conversation
You don't have to leave the conversation to use the shell:
- Prefix your input with
!to force it to run as a shell command. - Or just type the command — Mel's classifier notices shell-shaped input, shows an "autodetected shell command" banner, and runs it in the shell. Press ctrl+I to override the detection either way.
The command runs in the pane's working directory and the result persists in the transcript as a shell block (❯ command plus output and exit status). A successful cd even updates the pane's tracked directory. Typing claude, codex, ssh, or vim here launches a full interactive session embedded in the conversation — see Embedded CLI agents.
After a turn: feedback and usage
Each completed response ends with a feedback row (👍 👎, share) and an expandable usage summary — <model> · N tokens. Expanding it shows:
- Usage summary — the model used, why the router chose it, tokens in/out, and context window used (with the circular gauge).
- Tool call summary — files changed, diffs applied, commands executed.
- Last response time — time to first token and total turn time.
The same circular context gauge lives in the input footer; hover it for "N% remaining". When the window gets tight, Mel compacts the conversation — see Conversation management.