Get Moshi
chat

Chat View

Turn a live coding-agent terminal into a phone-native conversation without replacing the terminal or sending its transcript through Moshi's servers.

updated 1 week ago7 min readpage 24 / 37

Chat View is a visual layer over the coding agent already running in your Moshi terminal. It turns prompts and replies into messages, pulls tool activity into compact cards, and keeps approvals close to the composer. Close it at any time and the original terminal is exactly where you left it.

One session, two viewsA live Codex session opened as Chat View — the same transcript rendered as messages, tool cards, and mini diffs, with the terminal untouched underneath.

What it looks like

Chat View fills the terminal with a conversation surface that uses your terminal background and keeps the active agent recognizable.

header
Agent icon and name, multiplexer session, model, plus the same diff and browser-preview controls shown in the terminal.
messages
Your prompts and the agent response, with Markdown, code, images, and thinking separated into readable blocks.
tool cards
Shell commands, file reads and edits, task groups, mini diffs, results, and failures. Tap a card to expand its detail.
status
A Working indicator follows the active turn. Its close button sends Escape to stop the current work when the session supports it.
composer
Type, dictate, or attach an image, then send the prompt into the same terminal session.

When the agent asks for permission, Chat View can show an approval bar with Approve and Deny. Plans and interactive questions appear as dedicated cards when the agent exposes enough structured information. Action support varies by agent and prompt type; a card that cannot be answered safely in Chat View tells you to answer in the terminal.

The list follows the newest message while the agent works. If you scroll up, a jump-to-bottom control appears so new output does not pull you away from what you are reading.

How it works

The terminal remains the source of truth. Chat View does not start a second agent or recreate the conversation in Moshi's cloud.

  1. moshi-hook detects a supported agent and its native session ID on the connected host.
  2. The Moshi app opens the host gateway through the SSH connection already used by the terminal.
  3. The gateway reads the agent's local transcript and streams new entries directly to the app.
  4. Moshi normalizes those agent-specific entries into messages, tool cards, plans, questions, images, and turn recaps.
  5. Prompts and supported approval actions go back into the same live terminal session.

Closing Chat View only removes the visual layer. The agent, shell, multiplexer session, working directory, and scrollback keep running underneath it.

local

Full transcript content travels directly between your host and the app over the encrypted SSH-forwarded gateway. It does not pass through the Moshi API. Small hook event summaries used for the inbox, notifications, and Live Activity are separate; see Hooks privacy.

Not a protocol bridge

Most remote agent clients talk to a coding agent through a client protocol such as ACP (the Agent Client Protocol), or through the model vendor's API. In that model the client owns a separate agent process: the session in the app is not the session in your terminal, and moving between the two means a handover — or starting over.

Chat View is built the other way around. There is no protocol between Moshi and the agent, and there is never a session handover, because there is only ever one session: the TUI already running in your terminal. Chat View is that same process, rendered in a different view.

Everything else falls out of that one decision:

  • The two views cannot drift. The terminal and Chat View are renderings of the same live transcript, so they always show the same conversation and switching cannot fork it.
  • The agent stays fully yours. Model selection, permission rules, MCP servers, project config, and your existing plan or login all apply, because prompts enter through the agent's own interface rather than a parallel API integration.
  • Nothing is lost when a card falls short. Any output Chat View cannot represent is still sitting in the terminal, mid-session, one tap away.
  • Agents do not have to cooperate. Supporting an agent means teaching Moshi to read its local transcript, not waiting for the agent to implement a client protocol.

Supported agents

Chat View currently supports:

  • Claude Code
  • Codex CLI
  • OpenCode
  • Grok Build
  • Kimi
  • Pi
  • Oh My Pi (OMP)

Hook support is broader than Chat View support; the supported-agent matrix shows both side by side.

Requirements

  • A supported agent running inside a tmux or herdr session. Chat View sends prompts back through the multiplexer, so an agent started in a plain shell cannot be opened as a chat.
  • moshi-hook installed, paired, and running on the host. See Hooks.
  • A live host-gateway connection through the current SSH session.
  • Enable Chat turned on under Settings -> Chat Mode -> Chat View.
  • Moshi Pro, or remaining free Chat View trial uses.

Chat View is experimental. The normal terminal remains available for unsupported tools, unusual prompts, or any agent output that cannot yet be represented as a card.

Open Chat View

  1. Open a Moshi terminal, start or attach a tmux or herdr session, and run a supported coding agent inside it.
  2. Wait for moshi-hook to detect the agent session. The toolbar's chat button changes to the agent's icon when Chat View is ready.
  3. Tap the agent icon to open Chat View.
  4. Tap the close button to return to the terminal.

You can switch back and forth during a turn. Chat View continues following the same session, and the agent keeps working while either view is open.

Send prompts and attachments

The composer sends into the live terminal rather than calling an agent API. This preserves the agent's own configuration, permissions, model selection, tools, and project context.

  • Type a prompt and tap send.
  • Hold the microphone to dictate. See Voice input.
  • Attach a screenshot or image when the agent needs visual context. See Image paste.
  • Swipe down on the composer to dismiss the software keyboard.
  • Use Command-Enter to send from a hardware keyboard.

When the agent is working, the status control's close button requests a stop by sending Escape to the underlying terminal. If the agent does not react, switch back to the terminal to inspect its current prompt or process state.

Approvals and questions

Chat View presents actionable prompts only when it can map the response back to the running agent safely.

  • Permission requests can appear in a floating approval bar with Approve and Deny.
  • Agent plans can appear as expanded Markdown cards.
  • Structured questions can appear with their available choices.
  • Unsupported interactive prompts stay read-only and point you back to the terminal.

Approval buttons act on the live session; they do not approve a copied or server-side request. The exact controls differ because each agent exposes permissions differently.

Troubleshooting

  • The toolbar shows the generic chat icon. The host gateway has not detected a supported agent session yet. Confirm the agent is running inside tmux or herdr rather than a plain shell, confirm moshi-hook is running, then start the agent or reconnect the terminal.
  • The agent runs fine but Chat View never becomes available. Chat View relays prompts through tmux or herdr. An agent launched directly in a plain shell stays terminal-only no matter how hooks, Pro, and the Enable Chat setting are configured. Start a multiplexer session first, then run the agent inside it.
  • The agent icon appears but Chat View will not open. Check Settings -> Chat Mode -> Chat View and turn on Enable Chat. Free trial uses may also be exhausted.
  • Chat View says it is disconnected. The SSH-forwarded gateway was interrupted. Return to the terminal and reconnect the session; the transcript stream resumes from the host.
  • A question says to answer in the terminal. That agent or prompt type does not expose a safe structured response path yet. Close Chat View and answer in the native TUI.
  • A tool card looks incomplete. Switch to the terminal for the raw output. The agent transcript is parsed for presentation, but the terminal always remains authoritative.