skip to content
/docs manual

docs / Usage

Slash commands

Every `/command`, when it appears, and how to write your own.

CommandMenu labelDescription
/modelSelect modelPick the active model
/providerAdd providerAdd a new LLM provider
/decision-providerDecision providerAdd or edit a decision-model connection
/attachAttach filesFuzzy-find a file to attach; optional directory (/attach <dir>)
/manage-attachmentsManage attachmentsAdd, reorder, or remove pending attachments
/sessionsSwitch sessionResume or delete past sessions
/newNew sessionStart a fresh conversation
/newtabNew tabRun another agent in its own workspace (/newtab <path>)
/closetabClose tabStop this tab’s agent and close it
/treeSession treeWalk the tree, fork from a node
/todoTodosShow the session todo list in a read-only popup
/sceneSwitch scenePick the scene the agent runs under (/scene <name>)
/variantSelect variantPick the model’s reasoning effort (/variant HIGH)
/themeThemePick the TUI theme, with live previews (/theme <name>)
/peak-tablePeak periodsShow the model’s peak/off-peak windows; t switches timezone
/codemodeCodemodeOffer the Rhai scripting tool, and how it presents the roster
/titleEdit titleRename the current session (/title My title)
/gen-titleGenerate titleDraft the session title with the LLM
/exportExport sessionWrite the session to a JSON file (optional path)
/undoUndo last turnFork before the last prompt
/replayReplay last turnFork and re-run the last turn
/compactCompact contextSummarize older history; optional focus instruction
/reloadReload skillsRe-discover skills and commands without a restart
/mcpMCP serversShow MCP server connection states
/mcp-reconnectReconnect MCPReconnect an MCP server (/mcp-reconnect <server>)
/sidebarToggle sidebarCollapse or expand the sidebar
/searchSearch chatHighlight text in the chat live (/search <text>)
/assisted-byAssisted byShow the session’s Assisted-By: trailer; Enter copies it
/imagesView imagesBrowse the session’s attached images in a gallery
/screensaverScreensaverPlay the welcome animation fullscreen; any key dismisses it
/quitQuitExit the program

Some commands only appear when they apply: /undo and /replay need messages in the chat; /compact needs messages and no reply streaming; /tree, /title, /gen-title and /export need an active session (/gen-title also needs a first prompt); /scene is hidden while a reply is streaming; /images appears once the session has images; and /peak-table needs a model whose catalog entry bills on a peak/off-peak schedule.

/attach opens the attachment finder on the workspace (or on the directory you named) — see Attachments. /manage-attachments opens one dialog over the composer’s pending strip: a adds another file through the same finder, Delete (or Ctrl+X) removes the selected one, and Ctrl+↑/↓ shifts it in the send order. /newtab [path] and /closetab manage tabs; the last tab stays open — /quit exits.

/todo opens a read-only popup of the list the agent keeps for the session with its todo tool (see Tools); running it again takes a fresh snapshot. ↑/↓ or j/k walk the list, Home/g and End/G jump to the ends, and

Esc or `q` closes it. `/screensaver` plays the onboarding animation fullscreen over a live session until a key is pressed (Ctrl+C still asks to quit).

/peak-table lists the active model’s peak windows for the day — and the exempt day classes the schedule skips — in the schedule’s own timezone, UTC or your local time; t cycles the clock, Esc or q closes it. Typing it for a model without a schedule says so instead of opening an empty table.

/codemode opens the overlay that edits the three switches worth changing mid-session — Offered (on, auto, off), Roster (declared, declare-builtin, only) and Keep state — and reports the limits a script runs under; a change is written back to your config file. The limits themselves (timeout, operation and call caps, inline budget) stay in shuvarie.kdl — see Codemode.

Ctrl+M opens the same commands as a searchable menu.

Custom commands

Commands are also plain files: a directory holding a command.md under commands/ in the workspace .shuvarie/ directory (or in the global config directory) becomes a slash command named after the directory. The optional YAML frontmatter overrides the menu title and the model (<provider>/<model>) used for the turn; the body is the prompt template, and {{arguments}} is replaced by whatever was typed after the command name (the raw arguments are appended after a blank line when the placeholder is missing):

---
title: Commit code
model: anthropic/claude-x
---

Commit {{arguments}} with conventional commits.

A model: that names a provider kind (anthropic/…) resolves through default-providers. Workspace commands win over global ones with the same name, and a name that collides with a built-in command is invoked as custom:<name> (the built-in keeps the plain alias). Custom commands appear in the Ctrl+M menu and are re-read by /reload.

shuvarie

An agentic AI pair-programmer that lives in your terminal — for chivalrous people.

elsewhere github license mail

白き騎士 / コードの闇へ / 光差す — moonshotai/Kimi-K2.6

© 2026 Charles Dong