Skip to content
Agent

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. esc closes 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.