Skip to Content

Chat Tab

TL;DR

The Chat tab is a full-pane conversation with the local agent. It supports model tiers, custom providers, voice input, and persistent multi-session history. Local skills, file tools, and MCP servers all attach here.

Chat is the default landing tab and the heart of the desktop experience. It is where most prompts start, even when they end up scoped to a remote machine.

What the Chat tab is

The Chat tab is a full-pane conversation against the local Go agent, backed by internal/desktop/services/chat. It streams tokens, renders tool calls inline, and persists transcripts so you can scroll back through past turns or resume a session days later. By default the tab targets the local machine; for prompts to a specific remote agent, use the per-machine inspector chat on the Machines tab.

Model and provider selection

The model picker lives at the right end of the input bar. With the default SDKRouter active you choose a tier — @code, @balanced, @smart — and the router maps it to the right model. When a custom provider is configured in Settings → Providers, the picker is replaced by a provider badge (for example Z.AI · glm-5) so it is obvious which engine is answering. Search, vision, and CDN tools keep using the default tier no matter what — only chat completions are rerouted.

Custom providers route chat completions only. Research, scrape, and CDN tools still use the default tier — that is how you get bring-your-own-LLM without losing the rest of the toolchain.

Voice mode

Voice mode is a click-to-talk surface in the input bar. Audio is transcribed and the resulting text is sent through the same chat session as a typed prompt — it does not bypass the agent or skip tool calls. Replies stream back as text (and optionally TTS, build dependent).

Voice mode is in beta and may be disabled in some builds. If the mic icon is missing from the input bar, your build does not include it.

Sessions, resume, and transcript persistence

Every chat creates a chat.Session whose transcript is persisted server-side. Resuming a previous session restores the full message list and any open tool state; sessions can be linked to a machine (machine-scoped) or stay local to the workspace. The CLI’s --resume flag picks up the same sessions, since both surfaces share internal/chat. See sessions for the conceptual model.

Resume requires the same workspace login. Switching workspaces or signing out drops your access to in-flight sessions until you sign back in.

Tool calls and skills

Skills, file tools, terminal, web search, and MCP-attached tools all surface as inline tool-call blocks inside the chat stream. Each block shows the tool name, the inputs, and the result, and the chat keeps streaming text around them. Permissioned tools prompt at the gate before they execute; the Activity tab records every call. See skills and MCP for what is available.

Permissions hand-off to Activity

When a tool needs permission, the chat shows a modal with the requested action and the rule that triggered the prompt. Whatever you decide — approve, deny, approve-once — is recorded in the audit trail. Use Activity to review past decisions or to debug “why did the agent do that” questions; the conceptual model lives in permissions.

Keyboard inside the chat

KeyAction
EnterSend the current prompt
Shift+EnterNewline
(empty input)Recall the last prompt
Cmd/Ctrl+KFocus the command palette
EscCancel the current stream

The full keymap, including launcher and inspector bindings, lives on Keyboard shortcuts.

Last updated on