<!-- Markdown mirror. Canonical: https://empryo.com/docs/reference/commands -->

# Command reference

> Every Empryo slash command and keybinding in one page, grouped by session, git, models, intelligence, editor, tabs, and system, with what each one does.

Around 200 slash commands. Type `/` in chat for autocomplete, or press `Ctrl+K` for the command palette. The palette and the autocomplete read the same manifest as this page, so anything listed here is reachable by typing it.

Sub-commands (like `/proxy login`) work when typed directly but are grouped under their parent in the palette. Rows marked **TUI** or **Desktop** exist on that surface only, and appear in that surface's palette alone.

## Keybindings

| Key | Action |
|-----|--------|
| `Ctrl+K` | Command palette - search all commands |
| `Ctrl+L` | Switch LLM model |
| `Ctrl+E` | Toggle editor panel |
| `Ctrl+G` | Git menu |
| `Ctrl+P` | Browse sessions |
| `Ctrl+S` | Browse skills |
| `Ctrl+N` | New session (saves current, starts fresh) |
| `Ctrl+T` | New tab |
| `Ctrl+W` | Close tab |
| `Ctrl+D` | Cycle forge mode |
| `Ctrl+B` | Rewind to the previous checkpoint (code + conversation) |
| `Ctrl+F` | Step forward / return to live |
| `Ctrl+X` | Abort generation |
| `Ctrl+C` | Copy selection / exit |
| `Ctrl+Shift+C` | Copy selection (never exits) |
| `Ctrl+O` | Expand/collapse all (code, reasoning) |
| `Ctrl+H` | Command palette (alias) |
| `Ctrl+[` / `]` | Prev / next tab |
| `Ctrl+1-9` | Switch to tab N |
| `Tab` / `Shift+Tab` | Cycle between tabs (from input box) |
| `Meta+R` | Error log (Alt+R on Linux) |

## Session

| Command | Description |
|---------|-------------|
| `/session` | Session - history, clear, export, compact |
| `/session clear` | Clear chat history |
| `/session compact` | Compact conversation context |
| `/session continue` | Continue interrupted generation |
| `/session export` | Export chat - markdown, json, clipboard, all |
| `/session export all` | Full diagnostic export (system prompt, messages, tools) |
| `/session export api` | Toggle per-step API request dump |
| `/session export clipboard` | Copy chat to clipboard (markdown) |
| `/session export json` | Export chat as JSON |
| `/session history` | Browse & restore sessions (Ctrl+P) |
| `/session load` | Desktop. Load a saved session by id |
| `/session bundle` | TUI. Bundle this session to a portable `.tar.gz` (`/session bundle import` reads one back) |
| `/session new` | Start a new session (saves current) |
| `/session rename` | Rename current session |
| `/session plan` | Toggle plan mode (research & plan only) |
| `/plan` | Toggle plan mode (alias) |
| `/stash` | Browse stashed input drafts (alias `/drafts`) |
| `/clear` | Clear chat history (alias of `/session clear`) |
| `/checkpoint` | Browse / undo / redo / save checkpoints (`Ctrl+B` / `Ctrl+F`) |
| `/checkpoint undo` | Revert the files in the last checkpoint |
| `/checkpoint redo` | Redo the last undone checkpoint |
| `/checkpoint save` | Force-save the current state as a git tag |
| `/checkpoint live` | Return to the live view |
| `/images strip` | TUI. Drop image attachments from this conversation's history |
| `/ping` | Keep this lane's prompt cache warm while it is idle (`start` \| `stop`) |
| `/voice` | TUI. Record a [voice prompt](/docs/surfaces/voice-input) (mic → speech-to-text) |
| `/voice setup` | TUI. Download a Whisper model for offline voice, no API key |
| `/compact` | Compact - run, settings, logs |
| `/compact logs` | View compaction events |
| `/compact settings` | Compaction strategy & pruning settings |
| `/goal` | [Goal loop](/docs/agents/goal-loop), coder⟷reviewer rounds until a fresh judge returns PASS (alias `/loop`, `--max=N` caps rounds) |
| `/goal clear` | Drop this tab's goal loop, the reviewer stops, the current turn finishes |
| `/review` | Judge this tab's finished work with a fresh agent (the brief is optional) |
| `/review list` | Past verdicts in this tab, with scope, model and cost |
| `/review apply` | Hand the last verdict's findings to the agent as a real turn |
| `/review pass` | Review, fix, re-review until the verdict is PASS (`Ctrl+X` stops it) |
| `/review stop` | TUI. Stop the review-until-pass loop |
| `/import` | Import sessions from Claude Code / Codex / OpenCode |
| `/routine` | [Routines](/docs/tools/routines), `/routine <prompt> --every 5m` schedules a headless run. `/schedule` and `/cron` reach the same place |
| `/schedule add` | TUI. Add a routine with a 5-field cron: `/schedule add <cron> <prompt>` |

## Git

| Command | Description |
|---------|-------------|
| `/git` | Git menu (Ctrl+G) |
| `/git branch` | Show/create branch |
| `/git co-author` | Toggle co-author trailer |
| `/git commit` | Git commit with message |
| `/git diff` | Open diff in editor |
| `/git init` | Initialize git repo |
| `/git lazygit` | Launch lazygit |
| `/git log` | Show recent commits |
| `/git pull` | Pull from remote |
| `/git push` | Push to remote |
| `/git stash` | Stash changes - pop to restore |
| `/git stash pop` | Pop latest stash |
| `/git status` | Git status |

## Models & providers

| Command | Description |
|---------|-------------|
| `/keys` | Manage LLM provider API keys |
| `/model-scope` | Set model scope (project/global) |
| `/models` | Switch LLM model (Ctrl+L) |
| `/effort` | Reasoning effort for the current model, per tab, slider or `/effort <level>` |
| `/provider-settings` | Provider options - thinking, effort, speed, context |
| `/providers` | Providers & models overview |
| `/login` | Sign in to a subscription or gateway account (opens the account picker) |
| `/login claude` | Sign in with your Claude Pro/Max subscription |
| `/login codex` | Sign in with your ChatGPT Plus/Pro/Team subscription |
| `/login codex-device` | Sign in to ChatGPT with a device code (no local callback) |
| `/login copilot` | Sign in with your [GitHub Copilot](/docs/providers/copilot) subscription |
| `/login copilot <host>` | Copilot on an enterprise GitHub, `/login copilot octocorp.ghe.com` |
| `/login copilot-enterprise` | Same, but asks for the host (alias `/login copilot enterprise`) |
| `/login grok` | Sign in with your Grok subscription (alias `xai-oauth`) |
| `/login grok-device` | Sign in to Grok with a device code |
| `/login cursor` | Sign in with your Cursor account |
| `/login devin` | Sign in with your Devin account |
| `/login google-gemini-cli` | Sign in with Google Cloud Code Assist (Gemini CLI) |
| `/login google-antigravity` | Sign in with Google Antigravity |
| `/login kimi-code` | Sign in to Kimi Code (Moonshot) with a device code |
| `/login firepass` | Fire Pass (`fpk_…`); opens masked key entry, no browser |
| `/login ollama-cloud` | Ollama Cloud; opens masked key entry, no browser |
| `/login openrouter` | Sign in to OpenRouter with your browser (no key to paste) |
| `/login kilo` | Sign in to Kilo Gateway with a device code |
| `/login zai-coding-plan` | Sign in to the Z.AI GLM coding plan (mints a durable key) |
| `/login alibaba-coding-plan` | Qwen coding plan; opens masked key entry, then checks the key against both regions |
| `/login alibaba-token-plan` | Qwen token plan; opens masked key entry, then checks the key against both regions |
| `/login xiaomi` | Xiaomi MiMo; opens masked key entry, then checks the key against every regional host |
| `/proxy` | Reach a Codex, Copilot or Grok plan through the proxy addon (alias `/subs`) |
| `/proxy install` | Reinstall the proxy addon |
| `/proxy login` | Sign in to a proxy subscription account |
| `/proxy logout` | Sign out of a proxy subscription account |
| `/proxy quota` | [Proxy subscription limits](/docs/providers/proxy) per account, live refresh |
| `/proxy restart` | Restart the proxy addon |
| `/proxy start` | Start the proxy addon |
| `/proxy status` | Which accounts are connected |
| `/proxy stop` | Stop the proxy addon |
| `/proxy upgrade` | Upgrade the proxy addon |
| `/login llmgateway` | Sign in to LLM Gateway with your browser (account credits) |
| `/login llmgateway-devpass` | Sign in to LLM Gateway DevPass, the coding subscription |
| `/grok` | Grok subscription status (alias `/grok status`) |
| `/grok login` | Sign in with your SuperGrok / X Premium subscription |
| `/grok switch` | Switch to a different Grok account |
| `/grok logout` | Sign out of every Grok account |
| `/router` | Route models per task (code, explore, plan, verify) |
| `/web-search` | Web search keys & settings |
| `/mcp` | MCP servers - status, tools, reconnect |

These three take no key on the command line. `/login <id>` opens masked entry (the keys panel on the TUI, a password field in the desktop dialog), and the key is only stored after it is accepted by one of the vendor's regional hosts. The host that accepted it is remembered, so inference and model discovery both target the right region without you picking one.

`/subs` is the short form. `/subscriptions` now opens the `/login` account picker instead: it names the native lanes, not the relay.

## Intelligence

| Command | Description |
|---------|-------------|
| `/context` | Context & system dashboard |
| `/diagnose` | Health check - LSP, tree-sitter, semantic indexing |
| `/lsp` | Manage LSP servers - install, disable, enable |
| `/lsp install` | Install & manage LSP servers (Mason registry) |
| `/lsp restart` | Restart LSP servers (all or specific) |
| `/lsp status` | LSP status dashboard |
| `/memory` | Manage memory scopes, view & clear |
| `/genome` | Genome settings (AST index) |
| `/skills` | Browse & install skills (Ctrl+S) |
| `/tools` | Enable/disable tools for the agent |
| `/marionette` | Compile ONE prompt into a repo map, `/marionette <prompt>` (on/off = always-on, `none\|fast\|assist\|deep` = lane) |
| `/agents` | Custom agents from project & global scopes |
| `/subagents` | Inspect live subagents & background agents |
| `/background` | Background agents, live status, results, verdicts |
| `/search` | Search the workspace (fff index) |
| `/fff` | Fast file search (fff), status |
| `/fff on` | Enable fff (append `global` for every project) |
| `/fff off` | Disable fff, falling back to rg/fd (append `global`) |
| `/morphs` | Desktop. [Cells & Morphs](/docs/tools/morphs), panels, boards, timers and live feeds you work directly |
| `/canvas` | Desktop. Give a morph's board the whole workspace in place of the transcript |
| `/cells` | TUI. A morph's agent layer, rules, lookups, guards |
| `/cells approve` | Approve a cell's agent layer as it is declared now: `/cells approve <id>` |
| `/cells revoke` | Revoke a cell's agent layer: `/cells revoke <id>` |
| `/languages` | Syntax-highlighting languages, status & toggles |

## Settings

| Command | Description |
|---------|-------------|
| `/agent-features` | Toggle agent features (de-sloppify, tier routing) |
| `/chat-style` | Toggle chat layout style |
| `/diff-style` | Change diff display style |
| `/zen` | Toggle zen mode (hide header & footer) |
| `/font` | Terminal font - show, set, nerd |
| `/font nerd` | Toggle Nerd Font icons |
| `/font set` | Set terminal font |
| `/instructions` | Toggle instruction files (EMPRYO.md, CLAUDE.md, etc.) |
| `/verbose-tab` | Toggle verbose render for this tab - off folds tools into a rail, on shows raw stream |
| `/mode` | Switch forge mode |
| `/nvim-config` | Switch neovim config mode |
| `/presentation` | Transcript presentation, minimal strand, normal, zen |
| `/motion` | TUI. Arrival fades, landing cues and focus glides, on or off |
| `/rail` | TUI. Changed files, tasks and agents docked beside the chat |
| `/reasoning` | Show or hide reasoning content |
| `/settings` | Settings hub - all options in one place |
| `/theme` | Switch color theme (live preview) |
| `/verbose` | Toggle verbose tool output |
| `/vim-hints` | Toggle vim keybinding hints |

## Editor

| Command | Description |
|---------|-------------|
| `/editor` | Editor - toggle, open, settings, split |
| `/editor open` | Open file in editor |
| `/editor settings` | Toggle editor/LSP integrations |
| `/editor split` | Cycle editor/chat split (40/50/60/70) |

## Tabs & terminals

| Command | Description |
|---------|-------------|
| `/changes` | Toggle files changed this session |
| `/claim` | Show active file claims across tabs |
| `/claim force` | Steal a file claim from another tab |
| `/claim release` | Release a file claim from current tab |
| `/claim release-all` | Release all claims from current tab |
| `/tab` | Tabs - switch, new, close, rename |
| `/tab close` | Close current tab (Ctrl+W) |
| `/tab new` | Open new tab (Ctrl+T) |
| `/tab rename` | Rename current tab |
| `/terminals` | Terminal manager - new, close, show, hide, rename |
| `/terminals close` | Close a terminal |
| `/terminals hide` | Hide terminal panel |
| `/terminals new` | Spawn a new terminal |
| `/terminals rename` | Rename a terminal |
| `/terminals show` | Show terminal panel |
| `/tabsplit` | TUI. Show two tabs side by side, or fold them back to one |
| `/duck` | [Rubber duck](/docs/tools/side-agents), a repo-blind side chat on a fresh tab; `/duck <question>` asks it now |
| `/advise` | Ask the [advisor](/docs/tools/side-agents), a second opinion over this conversation from a tool-less model |
| `/advice` | Advice ledger, every advisor consult this session |
| `/council` | Convene a [council](/docs/tools/side-agents), 2, 4 seats debate one topic in a room and return a verdict |
| `/orchestrate` | Run an orchestration graph (saved id or `.json`), agents, judges, loops, gates |
| `/runs` | Orchestration runs, every run's nodes, agents, tokens and gates, live |
| `/jobs` | Background shell jobs, running, exited, adopted, with log sizes |
| `/link` | Agent link, rooms, councils and messages between tabs and agents |
| `/workbench` | The engine's cockpit: runs, jobs, link, routines and advice in one place |
| `/background stop` | Abort a running background agent |

## System

| Command | Description |
|---------|-------------|
| `/errors` | Browse error log |
| `/feedback` | Send feedback, a bug, an idea, or just what you think |
| `/developer` | Developer data, exactly what the anonymous usage ping sends, and the details toggle |
| `/retry` | How hard a failing turn tries, attempts and backoff |
| `/shortcuts` | TUI. Keyboard reference, every shortcut, grouped |
| `/help` | Command palette (Ctrl+K) |
| `/hooks` | View active hooks (PreToolUse, PostToolUse, etc.) |
| `/model-events` | Inspect raw model-call events (requests, timings, retries) |
| `/privacy` | Manage forbidden file patterns |
| `/trust` | Trust this repo, an untrusted checkout keeps its inert config (theme, model) but its `mcpServers`, `providers`, `extraBody` and presets are withheld until you trust it |
| `/trust revoke` | Revoke trust for this repo |
| `/trust list` | List trusted repos |
| `/quit` | Exit Empryo (aliases `/exit`, `/q`) |
| `/restart` | Full restart |
| `/setup` | Check & install prerequisites |
| `/status` | System status dashboard |
| `/computer` | TUI. [Computer use](/docs/tools/computer-use), targets, OS permissions, live sessions |
| `/computer lanes` | TUI. Which lane drives the screen, best first |
| `/computer stop` | TUI. Stop all computer use and release input |
| `/computer teach` | TUI. Teach a workflow by demonstrating it (`/computer teach stop` saves it) |
| `/computer workflows` | TUI. List taught workflows the agent can run |
| `/storage` | View & manage storage usage |
| `/usage` | Spend & usage, today/week/month, per model, cache hit rate, subscription windows |
| `/hearth` | [experimental] [Hearth](/docs/tools/hearth), surfaces, daemon, pairings, logs |
| `/hearth status` | [experimental] Daemon and surface health |
| `/hearth settings` | [experimental] Open the Hearth settings dashboard |
| `/hearth login` | [experimental] Store a Hearth bot token in the keychain |
| `/hearth pair` | [experimental] Mint a pairing code for a surface |
| `/hearth bind` | [experimental] Bind the active tab to a Telegram/Discord chat |
| `/hearth unbind` | [experimental] Clear every active tab ↔ chat binding |
| `/hearth docs` | [experimental] Open the Hearth docs in your browser |
| `/about` | About Empryo, version, lineage, support |
| `/timeouts` | Set tool call timeout (shell, project, agents) |
| `/update` | Check for Empryo updates |
| `/wizard` | Re-run the first-run setup wizard |
