Salta ai contenuti

Slash commands

Questi contenuti non sono ancora disponibili nella tua lingua.

Commands typed in a space’s composer. They fall into three groups by where they take effect, and the difference matters: a local command never travels as a message, so it neither appears in the transcript nor reaches an agent.

Where it runs What that means
Local Handled in the client (or a client-initiated server op). The command never travels as a message, so no agent sees it.
Side One server-side model call about the conversation. The conversation is not changed.
Dispatch Sets a mode or directive for the run the message starts.

Local → dispatch. Arms plan mode on the conversation: a fully read-only worktree and a tool surface capped at read. The agent’s deliverable is a plan, not an edit. A bare /plan only flips the mode and never travels as a message; with a prompt, the rest of the line is what starts the run.

Dispatch. Starts an autonomous objective the goal supervisor redispatches across segments and restarts.

Typing /goal with text first opens the objective interview — a short pass that refuses to accept a draft until it has all five of: success criteria an evaluator can settle without judgment, an exact verification command, an attempt cap, scope boundaries, and stop conditions. Every step offers Skip and run as written: the interview is a default, not a gate.

/goal pause, /goal resume and /goal drop are not slash commands. Pause, resume and stop live on the conversation’s goals list in the sidebar. Starting flags on the objective itself are --budget <dollars>, --max <N> (run budget) and --days <N> (deadline). A goal that hit its cost cap resumes only by raising that cap, from the same sidebar control.

Dispatch. Works iteratively until complete. Accepts a bound: /loop 10, /loop 30m, /loop 1h30m, /loop 10 minutes fix the tests.

A token that looks like a limit (starts with a digit or a sign) and fails to parse is a hard error. Prose is just prose, so /loop keep going until the tests pass is an unbounded loop with an inline prompt rather than a misparse.

Dispatch. Turns the session into a director: its own tools drop to read plus five worker verbs, and background workers do the editing. See Direct background workers.

Workers never outlive the mode — exiting kills every one of them.


Local → server. Folds older history into an anchored summary and continues on the compacted context. No model-facing argument: the command never travels as a message, and the compaction pass does not take a focus hint.

Local → server. Drops heavy content without summarizing: no model call, every word kept, only the bulk nobody was going to re-read is blanked.

Target Drops
tool_output Uneventful older tool results (default)
images Old screenshots, keeping their text
all Both

This is the escape hatch for “my context is fat but I do not want a summary”.

Local. Opens the context explorer for this conversation’s agent in a tab of its own: every segment and part of its context window — system prompt, skills, context files, tool schemas, history and images — with what each is costing and the verbatim content behind it.

The tab is keyed on the (space, agent) pair, so running it twice refocuses one tab rather than stacking copies of the same breakdown.

In a space with more than one agent, a bare /context opens the window the header’s context meter is reading — whichever agent last worked here, which is the one whose message is at the bottom of the trail — and the tab is labelled Context · <name> so it says whose it is. Name another to switch: /context qa (the @ is optional). A typed name resolves exactly, never fuzzily: two agents hold two different windows, so a near-miss that opened the other one would be a plausible-looking answer to a question you did not ask.

The same explorer is behind the context meter chip in the space header, which follows that same agent — the command and the chip can never disagree about what “the context” means here.


These spend one model call and never change the conversation. The agent’s next real turn sees exactly what it would have seen anyway, which is the entire value of asking.

Side. Writes a handoff document for whoever picks the work up cold: what the task is, what was learned, what remains.

Side. Answers a question about the work so far without adding the question or the answer to the transcript.


Local. Opens the branch navigator: where the conversation forked, which path it is currently on, and how to get back to one you left. See Branch a conversation.

Local. Writes the conversation to a self-contained HTML file — collapsible tool cards, no stylesheet, no script, no image host. Lands in Documents/ControlCenter/exports/ on desktop and downloads on web.

Local. Copies the transcript to the clipboard as markdown, with tool calls in collapsible blocks. Reasoning is deliberately excluded: a transcript pasted into a bug report is read by a person.


Local. Views and edits the conversation’s persisted checklist. A bare /todo opens the editor. Subcommands: append, start, done, drop (alias rm), edit, copy, export, import.

Dispatch. Applies an installed skill. Skills live under their own skill: prefix so they share no namespace with the built-ins — without that, a skill called plan would be permanently unreachable.

Dispatch. Any markdown file under .agents/commands, .agent/commands, .claude/commands, .codex/commands or .opencode/commands in the repo. A nested foo/bar.md is also reachable as foo:bar.

Templating: $1, $@, $@[start:length] and $ARGUMENTS. Frontmatter may set description (composer autocomplete). allowed-tools and model are parsed from the file but a user-command invocation currently only substitutes arguments into the body — they do not change the run’s model or tool surface.

A user-authored command wins over a skill of the same name — it is a shortcut a human invoked deliberately, with arguments.


Not commands. A standalone lowercase word anywhere in a prompt attaches a hidden instruction for that turn.

Word Effect
ultrathink Maximum reasoning effort for the turn
orchestrate Delegate independent work in parallel and verify each phase

The matcher is deliberately strict about boundaries. orchestrate, matches; orchestrated, orchestrate.ts, foo::orchestrate and orchestrate() do not, and fenced code blocks, inline spans and XML sections are masked out first. Without that, pasting a stack trace would change how the agent behaves.