Chat Pane
The chat pane is a canvas node that renders a headless conversation with an LLM or an agent CLI — no terminal, no TUI. It sits alongside terminal-based agent sessions on the workspace canvas and is meant for quick asks, planning, and one-shot generations without the ceremony of a full agent tab. Add one from the canvas node picker (+ → Chat), or convert a selection into a chat via the canvas context menu.Three backends, one UI
Every chat node picks one of three backends via the model dropdown. The choice is per-node:
Streaming, message rendering, tool-call display, and copy-to-clipboard behave the same regardless of backend.
Model picker
Clicking the model chip opens a portal picker with two sections:- CLI Agents — grouped by agent (Claude Code, Codex, Gemini CLI, Opencode). Each agent has a shortlist of its own models. When the experimental Warp toggle is on, Warp shows up here too with a
provider/modellist (OpenAI, DeepSeek, Kimi, OpenRouter). - BYOK providers — Anthropic, OpenAI, Google Gemini, Mistral, DeepSeek, xAI, Groq, OpenRouter, Ollama, LM Studio — each with a shortlist. The active provider is remembered across sessions.
CLI agent bridges
The four CLI-agent backends (Claude Code, Codex, Gemini CLI, Opencode) all run through per-turn Node sidecars shipped inside the app undersrc-tauri/resources/{agent}-bridge/bridge.mjs. The Rust backend spawns the sidecar on claude_stream_start, streams NDJSON back over a claude://{streamId} Tauri channel, and the frontend maps it to typed chat events.
Under the hood each bridge shells the vendor CLI in a specific non-interactive mode:
- Claude Code — Anthropic’s Claude Code CLI in stream mode
- Codex —
codex exec --json --sandbox workspace-write(no per-tool approvals) - Gemini —
gemini --experimental-acpspeaking JSON-RPC ACP (per-tool permission prompts surface as chat UI) - Opencode —
opencode serveon a free local port, consuming its SSE stream and permission POSTs
claude in your terminal, you can chat with Claude Code in the pane.
Warp (experimental)
Warp is an opt-in, single-round-trip gateway that routes anyprovider/model string through a Rust warp_chat command. Enable it in Settings → Experimental → warpllm. The Agents section of the model picker then shows Warp with its own model list.
Warp reads the API key for the selected provider from either:
- The matching BYOK slot, or
- An environment variable —
OPENAI_API_KEY,DEEPSEEK_API_KEY,MOONSHOT_API_KEY(for Kimi), orOPENROUTER_API_KEY
Chat pane vs terminal sessions
Both surfaces are first-class. A common workflow is to plan and iterate in a chat node, then hand the final prompt off to a terminal agent session in a fresh worktree.
Related settings
- Settings → API Keys — BYOK slots consumed by both the API backend and Warp. See API Keys.
- Settings → Experimental → warpllm — reveals the Warp backend in the picker.