- Bound — an open session. Send appends to that session’s transcript.
- New session — the floating “start a session” box. The first send spawns the session, then posts your prompt as the opening turn.
/ for skills, @ for files.)
Slash-command palette
Type/ at the start of a line to open the command palette. It opens only when there are matching commands for the active provider, so a provider with nothing discovered stays collapsed rather than showing an empty box.
- Claude
- Codex
- Other providers
The palette lists file-backed skills walked from:
~/.claude/skills/<name>/SKILL.md— globally installed Claude Code skills.<repo>/.claude/skills/<name>/SKILL.md— project-local skills, when a repo is in scope.~/.agents/skills/gstack/<name>— gstack-managed skills.- Any installed custom plugin roots, which may nest skills one or two directories deep.
~/.claude/skills and its own checkout, so Continuum uses the checkout purely as a roster of which names are gstack-managed and emits each skill exactly once. Your own copy of a name outranks the gstack or plugin copy.The scan and its YAML frontmatter parse run on a background task with a 30-second cache and ~/.claude/skills/ mtime invalidation, so the palette opens instantly even on a cold cache./review puts review on top.
Selecting a command inserts /<command> in place of the typed query and keeps the composer open so you can add arguments before sending. It never auto-sends.
@ mentions
Type@ at a token boundary to open the mention picker. (The boundary check means an email like you@example.com doesn’t trigger it.) It lists:
- Repo files, via a fast in-process file search, when a repo root is in scope.
- Other open sessions in the daemon’s registry.
- Files the agent has already cited in this session.
- Supported vendor CLIs and MCP servers, for
@vendorcredential and environment sharing. Typing one shows a preview chip above the field so you can see what would be shared before you send.
@<query> token, so anything you typed after the mention survives.
Attachments
Attach files three ways:- Drag and drop from Finder onto the composer.
- The
+/ paperclip button, which opens the file picker. - Paste an image from the clipboard with
Cmd+V— saved as PNG.
SwiftUI’s text field only ingests text on paste, so a screenshot in the clipboard would be silently dropped. Continuum installs a focused-only
Cmd+V monitor that catches the image before the Edit menu’s Paste fires. The monitor is armed only for the field you’re typing in; on the new-session box the field auto-focuses, so paste works before you click.@<absolute-path> for each staged file so the agent’s Read tools can open them:
Codex-in-worktree stages inside the worktree so the file lives within Codex’s sandbox root. Bytes are read and rewritten rather than copied, so symlinks resolve at staging time instead of carrying through — and if the worktree already contains a
.clawdmeter-attachments directory or session leaf that’s a symlink, Continuum refuses to stage rather than following it somewhere a tampered repo chose.
Each attachment renders a preview thumbnail chip you can remove. The hard cap is 50 MB per attachment; a file over it is rejected inline with “File too large” rather than being attached.
Attachment pills now keep the whole filename. A file like
Screenshot 2026-08-01 at 9.08.48 AM.png was previously cut at .48, leaving a stray AM.png loose in the message body. Mac and iOS now share one filename parser, so they can’t disagree about where a name ends.Continuum’s own internal repository briefing — the setup text it sends alongside your first prompt — is also hidden from the transcript now, on existing conversations as well as new ones, instead of being rendered as though you had typed it.Voice dictation
Ctrl+M, or a press of the Left Option key, toggles on-device dictation in the composer. The mic glyph pulses while recording and partial transcripts append live to the field as you speak. Dictation runs through Continuum’s own speech stack: Apple Speech by default, with WhisperKit (Whisper via CoreML) and Parakeet (NVIDIA Parakeet on the Neural Engine) available as local alternatives. Pick the engine and manage downloaded models in Settings → Voice. Left-Option-anywhere dictation needs Accessibility permission.Send and Stop
The primary action button swaps between Send and Stop depending on session state:- Send (
Cmd+Return) — submits the prompt.Shift+Returninserts a newline, and an IME guard letsReturncommit a mid-composition CJK candidate instead of sending. - Stop (
Cmd+.) — shown while the bound session is running. Cancel is dispatched per backend:
Stop on the OpenCode-connector providers used to be a no-op — there was no per-turn interrupt to call. That’s no longer true: those runtimes now declare cancel support and Continuum dispatches an HTTP cancel, subject to what your installed
opencode build actually implements.Composer chips
The bottom bar carries per-turn controls. The exact set depends on mode and provider:- Mic — toggles dictation (
Ctrl+M). - Model — opens the rich model picker. Model selection subsumes provider selection: pick a Claude model and the session is a Claude session.
- Effort — appears only when the model supports it. Switching providers clamps a carried-over effort to the nearest rung the new provider accepts, so a Claude
maxdoesn’t silently become something else on Grok. Claude subscriptions get Ultracode as an explicit top choice. - Plan ↔ Code — a one-click pill: Plan (read-only) vs Code (maximum permissions).
⌘⇧1selects Plan,⌘⇧2selects Code. Cursor has no read-only plan mode, so it has no pill. See Plan mode. - Account — appears when a provider has two or more signed-in accounts, so you can pin the turn to a specific one. Your pick is remembered per provider.
- Worktree badge — on a bound session, a read-only badge reflecting that session’s worktree/local mode. The mode is chosen when the session is created and the per-repo default lives in Settings → Workspaces; there is no Local/Worktree picker in the chip row.
The plan tray
When a session has proposed a plan and is waiting on you, a tray appears directly above the input field with the plan summary and two actions: Comment (⌘⇧Return), which keeps planning and puts your cursor back in the field, and Approve & run, which lets the agent write.
This is the only place a plan is acted on. The plan card rendered inline in the transcript is read-only by design — approval never scrolls away. Trying to send an ordinary message while a plan is pending returns “Use Approve & run, or Comment to keep planning” rather than dispatching it somewhere ambiguous. See Plan mode.
Usage and context
The right side of the bar shows a small ring: the active session’s context-window utilisation — say, 33% of the model’s prompt window. It tints to warning at 75% and danger at 95%. Clicking it opens a breakdown popover with:- The context window header plus a per-bucket breakdown of what’s filling it.
- A Plan usage section: the 5-hour limit and Weekly · all models rows for Claude subscriptions, or the Auto/API quota rows for Cursor. Each plan row’s bar tints danger at 95%.
This replaced the older inline
~$X • Y K tokens cost ticker and the standalone weekly-cap badge. Plan caps now live one click away in this popover, where each meter — context, 5-hour, weekly — has its own row instead of pegging a single shared ring.