Command Palette and @-References
The Workspace composer has two inline mechanisms for reaching engine capabilities: the slash command palette (type /) and @-references (type @ anywhere in a message).
Slash command palette
Section titled “Slash command palette”Type / in the Workspace composer to open the palette overlay. The palette lists every registered command grouped by intent. As you type after the /, the list narrows using fuzzy matching powered by nucleo.
How the fuzzy match works
Section titled “How the fuzzy match works”Each command is matched against both its name and its one-line description, so a query can hit either the slash token (/doc) or a word from the consequence text (rebuild). Results are grouped by intent group and ordered by frecency within each group: commands you have used recently or frequently float to the top of their section. The frecency ranking is persisted across sessions but is never announced in the UI.
Palette controls:
| Key | Action |
|---|---|
Up / Down | Move selection |
Enter | Run the selected command |
Tab | Toggle fuzzy filter on/off |
Esc | Close the palette |
When the query matches nothing exactly, the dispatcher checks Damerau-Levenshtein distance. If exactly one command is within distance 2 of your input, it offers a “did you mean” suggestion. A tie (two equally-close commands) resolves to “unknown” rather than guessing.
/help as the source of truth
Section titled “/help as the source of truth”/help is itself a command in the registry, filed under DIAGNOSTICS. Running it renders the same grouped listing the palette shows, but in the transcript as static text. It always reflects the live registry state, including any runtime extensions from skills.
Runtime extension
Section titled “Runtime extension”Skills can register additional commands into the CommandRegistry at runtime via the register API. A re-registered command replaces the previous entry; it does not duplicate it. The palette and /help both read from this live registry, so installed skills appear immediately without a restart.
Destructive commands
Section titled “Destructive commands”Commands that discard work are tagged destructive in the registry. The palette renders a visual marker on these rows so a file-discarding command is never mistaken for a read-only one. Currently only /rewind (restores files to an earlier snapshot) carries this tag.
Command reference
Section titled “Command reference”The built-in commands are organized into six intent groups.
SESSION
Section titled “SESSION”| Command | What it does |
|---|---|
/resume | Reopen a past session |
/rewind | Restore files to an earlier snapshot (destructive) |
/new | Start fresh, keep this provider |
/compact | Fold context now, keep decisions |
/quit | End this session |
/exit | End this session |
MODEL and PROVIDER
Section titled “MODEL and PROVIDER”| Command | What it does |
|---|---|
/model | Switch model |
/provider | Switch provider |
/profile | Load a saved profile (fast, review) |
CONTEXT and MEMORY
Section titled “CONTEXT and MEMORY”| Command | What it does |
|---|---|
/repomap | Rebuild the codebase symbol index |
/memory | Show what Wayland remembers about you |
/cost | Show tokens and spend for this session |
TOOLS and EXTENSIONS
Section titled “TOOLS and EXTENSIONS”| Command | What it does |
|---|---|
/tools | List tools, toggle permissions |
/mcp | Manage MCP servers |
/auth | Connect a provider via OAuth (google-meet) |
/skills | Browse and run skills |
/plugins | Install or remove plugins |
/hooks | Manage hooks |
/voice | Toggle voice capture (Ctrl+Space) |
WORKFLOW
Section titled “WORKFLOW”| Command | What it does |
|---|---|
/plan | Enter plan mode (read-only tools only) |
/mode | Switch approval mode: Default, Auto-edit, Force |
/theme | Switch color theme: light, dark, or auto |
/config | Open the settings surface |
/setup | Re-run the onboarding flow |
/theme takes an argument: /theme light, /theme dark, or /theme auto. A missing or unrecognized argument defaults to auto. The theme changes on the next render frame; no restart is needed.
DIAGNOSTICS
Section titled “DIAGNOSTICS”| Command | What it does |
|---|---|
/doctor | Check provider connectivity, API keys, and MCP server health |
/replay | Inspect a recorded session trace |
/help | Show keys and commands for the current surface |
Engine slash built-ins
Section titled “Engine slash built-ins”The engine has eight slash commands that work in all three run modes (TUI, REPL, and one-shot). They are intercepted before the engine loop sees the input. They are separate from the TUI command registry above.
| Command | Description |
|---|---|
/help | Print all commands with a one-line description |
/agent [NAME] | Show or set the active agent persona |
/style [OPTION] | Inject a style directive (for example terse) |
/memory show|clear | Show memory partitions or clear session memory |
/plugin list | List loaded plugins |
/skill list|run | Browse and run skills |
/clear | Clear the conversation history and screen |
/exit / /quit | End the session |
@-references
Section titled “@-references”@-references attach content to the next message you send. Where a / command acts on the engine, an @ token attaches something: a file, a directory tree, a symbol definition, a diff, a URL, a past session, or the last shell output.
Autocomplete
Section titled “Autocomplete”When you type @ in the composer and continue typing, an autocomplete popup appears. It lists:
- Filesystem entries (files and directories) that match the partial path, filtered through
.gitignoreand the secret denylist. Secret files (.envand similar credential files) are never offered, even if they are not git-ignored. - Static keyword completions:
@diff,@url,@session,@output.
The popup shows up to 12 candidates. Directories are marked with a folder indicator and a trailing /. Selecting a directory entry and pressing Enter drills into that directory.
Reference types
Section titled “Reference types”| Form | What it attaches |
|---|---|
@path/to/file | The file’s full contents |
@path/to/dir/ | The directory tree (trailing / required) |
@SymbolName | A function or type definition plus call sites, from the repomap symbol index |
@diff | The working tree diff |
@diff <ref> | The diff between the working tree and a git ref |
@url https://… | A fetched, readable-text-extracted web page (http and https only) |
@session <id> | A past session as reference context |
@output | The last shell command’s stdout and stderr |
Path tokens ending in / resolve as directories. Path tokens containing a separator, a . extension, or a leading . resolve as files. Bare identifiers without separators resolve as symbols.
Guardrails
Section titled “Guardrails”Every resolved reference passes two guardrails before it is attached:
Size budget. Large directory trees report an estimated token cost. When a tree would exceed the DIR_TOKEN_WARN_BUDGET, the composer shows an oversized-directory warning and offers a names-only fallback before you send.
Secret denylist. .env and similar credential files are blocked outright. The block is surfaced as an explicit error, not a silent omission. This check runs at both autocomplete time (the popup never offers the file) and at resolution time (attaching it directly by path fails with a clear message).
.gitignore rules. Ignored paths are excluded from autocomplete results and from directory tree resolution. Attempting to attach an ignored path directly returns a GitIgnored error.