TUI slash commands
Built-in terminal commands, grouped by source module. Type /help <command> in the TUI for live availability; some commands require daemon methods or UI hooks. Aliases accept the same arguments as their command. — means no arguments or aliases.
Project-defined prompt commands are covered in file slash commands. See the TUI guide for keyboard shortcuts and client setup.
Regenerate from the repository root with bun clients/tui/scripts/generate-commands-doc.ts.
approvals
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /approvals | — | — | list pending approvals and the standing policy |
| /approve | — | [n] [once|session|agent|global] | approve a pending request |
| /deny | — | [n] | deny a pending request |
blueprints
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /blueprints | — | [bundle-id filter] | browse portable automation blueprints |
| /blueprint | — | [help|list|inspect|validate|preview|activate] … | inspect, validate, preview, or activate a portable blueprint |
context
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /context | /ctx | — | show what fills the focused session's context window |
copy
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /copy | — | [prompt | code [n]] | Copy the last reply, a fenced code block, or the last user prompt |
core
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /help | /? | [command] | list commands, or explain one |
| /quit | /exit | — | leave the client (the daemon keeps running) |
| /clear | — | — | clear the transcript and the terminal scrollback |
| /clear-history | — | — | forget remembered prompts (↑ recall) and clear saved prompt history |
| /mode | — | [queue|steer|redirect|interrupt] | how a prompt submitted during a run is handled |
| /theme | — | [dark|light|auto] | switch the color theme (auto follows the terminal background) |
| /editor | — | — | edit the draft in $EDITOR (also Ctrl+G) |
| /reconnect | — | — | drop the control-plane socket and dial again |
| /debug | — | [count] | show the last protocol frames |
cron
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /cron | — | [list [--failing] [--json] | pause|resume|run <id|name> | remove <id|name>] | list, pause, resume, trigger, or remove scheduled jobs |
diagnostics
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /status | — | — | daemon status and health |
| /usage | — | — | token and quota usage |
| /cost | — | [range] [--by day|provider|model|session] | spend breakdown |
| /logs | — | [count] [level] | tail the daemon log |
fork
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /fork | — | — | branch this session (opens a Tern split when available) |
hermes
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /commands | — | [command] | browse commands advertised by the daemon |
| /compress | /compact | [focus instructions…] | compact the current session context |
| /heartbeat | /hb | [every <interval> <prompt> | status | pause | resume | clear] | schedule this agent's recurring check-in; results reach your paired Telegram chat and HEARTBEAT_OK replies are suppressed |
| /bg | — | <prompt> | start <prompt> | list [status] | status <id> | result <id> | cancel <id> | start and manage background tasks |
| /btw | — | <question> | ask a quick side question without changing the main turn |
| /agents | — | — | list agents known to Lemon |
| /tasks | — | [count] | list active and recent subagent tasks |
model
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /model | — | [id] | show, pick or set the session model |
| /think | /reasoning | [off|minimal|low|medium|high|xhigh|auto] | set the reasoning effort for this session |
| /toolpolicy | /tools | <full_access|minimal_core|read_only|safe_mode|…> | set the tool-policy profile for this session |
omp
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /omp | — | [run <prompt> | status] | watch, steer and start omp delegate sessions (alt+m opens the panel) |
plan
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /plan | — | [request…] | toggle plan mode (agent plans read-only, then asks to execute) |
profiles
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /profiles | — | — | browse profiles and open their canonical chats |
| /profile | — | [help|list|current|show|open|chat|create|clone|rename|export|delete] … | open, chat with, or manage a Lemon profile |
run
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /abort | /stop | — | stop the run in flight |
| /queue | /q | [prompt] | queue a prompt, or show prompts waiting for the current run |
| /steer | — | <prompt> | send guidance into the active run |
| /redirect | — | <prompt> | replace the active run's pending direction |
| /retry | — | [--force] | retry the last failed or aborted turn (history-only rewind, then resend) |
| /runs | — | [count | runId] | list active and recent runs, or show a run timeline |
| /goal | — | <set <text> | status | pause | resume | clear> | standing objective for this session |
session
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /sessions | — | [query…] [--pinned|--unpinned] [--archived|--active] [--agent <id>] [--limit <n>] | browse or safely search durable sessions (also Ctrl+X) |
| /session | — | [help|current|show|search|open|resume|title|pin|unpin|archive|unarchive|preview|export|prune|delete|new|reset] … | inspect, resume, annotate, export, or safely remove sessions |
| /name | — | <title…> | --clear | name the current session for later search and resume |
| /reset | — | — | reset the current session and clear its visible transcript |
| /resume | — | [key] [count] | replay a session's stored history into the transcript |
| /history | — | [count] | summarize recent messages without replaying them |
session-tree
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /tree | — | [label <entryId> <text> | unlabel <entryId>] | browse this session's message tree: switch branch, label entries, fork from one |
| /rewind | — | [--files] | rewind before an earlier prompt after an exact preview and confirmation |
skills
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /skills | — | [search] | browse and import official Hermes skills |
views
| Command | Aliases | Arguments | Description |
|---|---|---|---|
| /palette | — | [query] | search commands, local skills and prompt templates |
| /tasktree | — | — | show or hide the live subagent tree |
| /output | — | — | browse complete tool output receipts |
| /diff | — | — | inspect the latest edit diff without card truncation |
Prompt history
The ↑ / ↓ prompt recall persists across sessions in ~/.lemon/tui-history/history.sqlite3 (SQLite, mode 0600, private 0700 directory). Transactions retain at most 100 prompts and 256 KiB of encoded prompt content; SQLite pages and its temporary rollback journal need additional disk space.
/clear-historyforgets remembered prompts, clears saved rows and removes legacy sources.- Set
prompt_history = falseunder[tui]in user or project config to stop saving and loading history. Existing history remains until/clear-history.
Only submitted prompts are saved; discarded drafts stay in memory for this session. Prompts may contain secrets. See TUI prompt history for storage bounds, migration, concurrent clear semantics and backup considerations.
Configurable keybindings
Set quoted action IDs under [tui.keys] in ~/.lemon/config.toml or the project .lemon/config.toml. Values replace the defaults: a key string, an array of keys, or [] / "none" to unbind. See TUI configuration. Overlays own their keys; picker-local shortcuts are not configurable here.
| Action ID | Default keys | Description |
|---|---|---|
| lemon.picker.model | ctrl+o | Pick a model |
| lemon.picker.thinking | shift+tab | Pick the session thinking level |
| lemon.sessions.switch | ctrl+x | Switch session |
| lemon.editor.external | ctrl+g | Edit the draft in $EDITOR |
| lemon.transcript.clear | ctrl+l | Clear the transcript |
| lemon.queue.focus | ctrl+q | Edit the queued prompts |
| lemon.transcript.toggleLatest | ctrl+r | Expand/collapse the latest tool card or thinking block |
| lemon.transcript.cycleDetail | ctrl+t | Cycle detail for every card: collapsed → expanded → default |
| lemon.palette.open | ctrl+p | Search commands, skills and prompts |
| lemon.tasks.toggle | alt+a | Show/hide live subagent tree |
| lemon.omp.toggle | alt+m | Show/hide omp delegate sessions |
| lemon.tools.toggle | alt+o | Collapse/expand all tool output |
| lemon.tools.diff | alt+d | Inspect the latest edit diff |
| lemon.clipboard.copyLast | alt+shift+c | Copy the last assistant reply |
| lemon.plan.toggle | unbound | Toggle plan mode |
| lemon.model.cycle | unbound | Cycle to the next model |
| tui.editor.cursorUp | up | Move cursor up |
| tui.editor.cursorDown | down | Move cursor down |
| tui.editor.cursorLeft | left, ctrl+b | Move cursor left |
| tui.editor.cursorRight | right, ctrl+f | Move cursor right |
| tui.editor.cursorWordLeft | alt+left, ctrl+left, alt+b | Move cursor word left |
| tui.editor.cursorWordRight | alt+right, ctrl+right, alt+f | Move cursor word right |
| tui.editor.cursorLineStart | home, ctrl+a | Move to line start |
| tui.editor.cursorLineEnd | end, ctrl+e | Move to line end |
| tui.editor.jumpForward | ctrl+] | Jump forward to character |
| tui.editor.jumpBackward | ctrl+alt+] | Jump backward to character |
| tui.editor.pageUp | pageUp | Page up |
| tui.editor.pageDown | pageDown | Page down |
| tui.editor.deleteCharBackward | backspace | Delete character backward |
| tui.editor.deleteCharForward | delete, ctrl+d | Delete character forward |
| tui.editor.deleteWordBackward | ctrl+w, alt+backspace, ctrl+backspace, super+alt+backspace | Delete word backward |
| tui.editor.deleteWordForward | alt+delete, alt+d, ctrl+delete, super+alt+delete, super+alt+d | Delete word forward |
| tui.editor.deleteToLineStart | ctrl+u | Delete to line start |
| tui.editor.deleteToLineEnd | ctrl+k | Delete to line end |
| tui.editor.yank | ctrl+y | Yank |
| tui.editor.yankPop | alt+y | Yank pop |
| tui.editor.undo | ctrl+-, ctrl+_ | Undo |
| tui.editor.spellingSuggestions | ctrl+. | Show spelling replacements |
| tui.input.newLine | shift+enter, ctrl+j | Insert newline |
| tui.input.submit | enter | Submit input |
| tui.input.tab | tab | Tab / autocomplete |
| tui.input.copy | ctrl+c | Copy selection |
| tui.select.up | up | Move selection up |
| tui.select.down | down | Move selection down |
| tui.select.pageUp | pageUp | Selection page up |
| tui.select.pageDown | pageDown | Selection page down |
| tui.select.confirm | enter | Confirm selection |
| tui.select.cancel | escape, ctrl+c | Cancel selection |