Skip to content

Slash commands ​

dsh-cc has two slash-command layers. Preset commands are registered by the CC preset through ctx.commands; they run without a model turn and are available in every surface that dispatches harness commands. TUI-local commands are owned by the terminal surface (packages/ui/tui/src/slash.ts); the TUI handles them without calling ctx.commands, and some names (/resume, /model, /agents, /cost, /provider) exist in both layers — in the TUI the local implementation wins. Every command below executes without a model turn unless noted (/init queues one).

Parity is from docs/cc-parity-matrix.md (Full/Partial). A blank cell means the matrix does not state a status for that command.

Session ​

CommandWhat it doesParity
/resumeList recent sessions (id, title, cwd, availability, start time) so you can pick one to resume. Switching is host-owned (dsh --resume <id>).Partial
/branch [note]Fork the current session into a new child branch and report the child session id. Switching to the child requires a restart.Partial
/compactCompact the session, with optional preservation instructions.Full
/rename <title>Pin an explicit user title on the current session.Full
/exportWrite the current session transcript to a file as markdown (default) or lossless JSON. Pasted credentials are redacted one-way before the file is written (a dsh-cc extension; extra patterns via the cc-secrets namespace). Known gap: on web profiles the native CC /export bypasses this redaction.Partial
/tasksList caller-visible background jobs and their status.Partial
/agentsList, inspect, stop, and release continuable background agents: /agents <id> for detail, /agents stop <id> to interrupt one (it stays resumable), /agents release <id> to evict the child's resident activation and free its capacity slot (not continuable in this session afterwards). /agents attach <id> is a reserved, unimplemented namespace.Partial
/planPlan mode channel (exit via exit_plan_mode).Full
/learn [apply|all|days=N]Distill recurring session failure patterns into workspace memory. Dry-run by default — only apply writes. apply writes the session-learnings memory topic (a managed marker block, regenerated wholesale; content outside the block is untouched) and updates MEMORY.md; all scans every project instead of the current workspace; days=N overrides the recency window (default 14). Scanning walks the durable session store, decompressing recent session.v3.jsonl.zstd logs within the window (with legacy session.jsonl.zstd fallback). Tuned via the cc-learn settings namespace (enabled default true, days 14, min-occurrences 2).Full

Model & provider ​

CommandWhat it doesParity
/providerManage LLM providers and API keys. Subcommands: /provider list prints current routes, /provider add <preset-id> walks a wizard for built-in presets (Moonshot, Z.AI/Zhipu, DeepSeek) or a custom endpoint, /provider remove <route> removes a route. The detail view rotates keys, refreshes the model list, and sets the default. Keys go to the credential store (~/.dsh/.credentials.yaml), never settings.Full
/model <n|provider/id>List or switch the active model.Full
/effort <level|default>Set reasoning effort for the current model. Where this sits in effort precedence: Model routing.—

Configuration ​

CommandWhat it doesParity
/configShow or update effective configuration namespaces (text-only render/patch with an allowlisted key set, not an interactive editor).Partial
/permissions [mode]Inspect or change permission mode/rules (CC rule-engine modes); the bare invocation opens a TUI overlay. In auto mode, suspended allow rules are annotated "suspended in auto mode". /permissions lint reports rule-hygiene findings (malformed rules, exact duplicates, prefix-subsumed rules, bare whole-tool Bash allows, unknown tool names) grouped by source with a proposed before/after diff; --apply cleans the user settings layer only.Full
/auto-modeRead-only introspection of the auto-mode classifier, no model call: /auto-mode defaults prints the built-in slot lists as JSON; /auto-mode config prints the effective trusted-scoped permissions.autoMode slice; /auto-mode review [full] shows the current session's last 20 classifier/probe verdicts (full prints the stored inputs when auditFullText is on). See Permission modes.Partial
/memoryList memdir memory files (name, type, first line) or print one memory's body by name.Full
/skillsList every available skill with description, source, and invocation policy (model, user, or both).Full
/initScan a project and scaffold CLAUDE.md via a queued model turn.Partial
/mcpManage MCP connections: /mcp lists registered servers (name, connection state, tool count, OAuth requirement), /mcp reconnect <name>, /mcp disconnect <name>. /mcp migrate imports servers from Claude Code config files into $DSH_HOME/.mcp.json (raw entries verbatim, atomic write, .bak backup).Full
/pluginManage plugins and marketplaces: list [--enabled|--disabled], install|uninstall|enable|disable|update <plugin[@mkt]> [--scope user|project|local], marketplace list|add <source>|remove <name>|update [name]. Text output only (no interactive menu); a static trust-warning line replaces interactive consent; installs trigger a rescan — restart the session for new agents/hooks. Not implemented: details/eval/init/prune/tag/validate, --config, --sparse, managed scope.Partial
/reload-pluginsRescan the on-disk discovery roots and remount plugins live.Full
/presetShow the agent-preset roster, or switch this session and the saved default (/preset <id>; persisted via vwa-preset.selectedDefault). No Claude Code counterpart — dsh-cc-specific.Full
/output-styleManage output styles.Full

System & diagnostics ​

CommandWhat it doesParity
/doctorSession health report (--verbose for the verbose rendering, --json for a JSON file under $DSH_HOME).Full
/statusSession status summary: current model, permission preset, session id, working directory.Full
/diffShow git diff summary or a file diff via the shell; also inspects CLAUDE.md / settings differences.Full
/commit-splitAdvisory dry-run: reads the working-tree change (status, staged, unstaged) and asks the blueprint lane for an ordered atomic-commit split plan (message, files, dependency edges). It never commits; lockfiles go to a trailing chore(deps) group. When blueprint is unconfigured, a note reports the inherited main-model route.Full
/costPer-model session usage and cost, folded against the deployment price table. The CC preset ships a starter table of official published list prices (USD per 1M tokens); a runtime id with a route prefix (e.g. llmbox_ant/glm-5.3) matches the bare model row via /-suffix longest-row-wins matching, and there is no * wildcard — unmatched models report "no price configured" instead of a misleading zero cost. Prices live in the preset's modelTable config.Full
/cache-healthShows prompt-cache prefix stability (stable prefix segment count, estimated tokens, changed-since-last-call flag, drift table) joined with provider-metered cache read/write ratios for this session. A passive observer, detector-only: it reports, never rewrites requests. Disabling is composition config (config.enabled in the CC preset's cordis yml), not a settings namespace.Full
/statsSession event statistics: turn and step counts, tool-call distribution, token usage totals.Full
/versionPrint the plugin bundle version and, when the host surfaces one, the harness version.Full
/release-notesPrint the bundled release notes changelog.Full
/helpList every registered slash command, or show one command's detail including its input hint (/help <cmd>).Full

VWA preset commands ​

These commands mount only in the VWA agent preset. They are deliberately excluded from the parity matrix (which does not cover VWA-preset capabilities), so they carry no parity status:

  • /vwa init — initialize the workspace VWA project.
  • /vwa status — inspect the workspace VWA project.
  • /vwa sign — user-only: only the user can run this command.
  • /vwa adjudicate — user-only: only the user can run this command.

TUI-local commands ​

The following names are handled by the TUI itself (descriptions verbatim from packages/ui/tui/src/slash.ts). The preset-side /model and /exit are host-owned by design and out of parity scope; the dsh-native equivalents are these local commands.

CommandWhat it doesParity
/quitExit the TUI session. On a launcher worktree session, offers to keep or remove the worktree.
/exitExit the TUI session.
/clearStart a new conversation (empty context). Previous session stays resumable.
/newAlias of /clear.
/resetAlias of /clear.
/tui-helpShow TUI keyboard and command help.
/resume <sessionId>Switch to a resumed session (picker or by id).
/model <n|provider/id>List or switch the active model.
/effort <level|default>Set reasoning effort for the current model. Where this sits in effort precedence: Model routing.
/agents [<id>|stop <id>|release <id>]List, inspect, stop, or release background agents. release <id> evicts the child's resident activation and frees its capacity slot; it is not continuable in this session afterwards.
/costShow token usage.
/usageOpen the live token and context usage panel.
/export-md <path>Export the transcript to a Markdown file.
/copyCopy the latest assistant reply to the clipboard.
/provider [list | add <preset-id> | remove <route>]Manage LLM provider routes and API keys.Full
/onboardRe-run the first-run setup (clears the onboarding opt-out).

Notes ​

  • Every slash command — preset and TUI-local — accepts a trailing help (or -h / --help) argument that prints its usage, parameters, and subcommands without a model turn; the /help index advertises this.
  • Plugin commands in the colon form plugin:command (e.g. codex:review) dispatch through the ccPlugins service and are treated as local commands by the TUI.
  • Saved workflows (.claude/workflows/<name>.js in the project, shadowing $DSH_HOME/workflows/<name>.js) mount as /<name> commands at session start; new saves mount next session. See Background tasks.
  • A hand-typed unknown /name that no registered command matches falls through to a user prompt, so user-invocable skills reach the model the same way a menu pick would.
  • dsh-cc is not Claude Code and is not a wrapper around Claude Code.

dsh-cc is not Claude Code and is not a wrapper around Claude Code. Not affiliated with or endorsed by Anthropic.