Skip to content

Commands

Type / to open the command picker with fuzzy search. Add your own with Custom commands.

Built-in commands

Command Description
/goal [objective|subcommand] Create, inspect, pause, resume, block, complete, or clear a persistent session goal
/clear, /new Start a new conversation
/rewind Rewind to a previous turn (same as Esc Esc)
/resume Resume a saved session
/diff View staged, unstaged, and untracked local Git changes
/session Show session, worktree, model, usage, and history metadata
/compact [instructions] Summarize older history now and choose what to keep (smelt also does this automatically)
/fork, /branch Fork the current session
/export Export conversation; prompts for clipboard or file
/copy [--role ROLE] [--headers] [N] Copy the newest matching conversation messages to the system clipboard
/yank ... Alias for /copy
/model [provider/model] Switch model (opens picker if no name given)
/fast [on|off|toggle] Toggle accelerated inference when the active model supports it
/theme [name] Preview a bundled UI and syntax theme for this session
/color [name] Set session color
/stats Show token usage statistics
/usage, /cost Show session cost and active-provider usage limits
/thinking [mode] Set thinking block presentation: open, close, peek, toggle
/reasoning [level] Pick a model-supported reasoning effort, or set one explicitly
/permissions Manage saved permissions
/ps Manage background processes
/notify [once|on|off|clear|status] Override turn-end terminal notifications for this session
/history Fuzzy-search prompt history (also Ctrl+R)
/nohl Clear active search highlights
/messages Show recorded errors, warnings, and notices
/skills Show loaded skills and their source locations
/mcp Show MCP servers, lifecycle state, and tool names
/worktree [name] [--base ref] Pick, create, or enter a managed git worktree
/wt [name] [-b ref] Alias for /worktree
/help Show keybindings (also F1)
/docs Open the smelt documentation in your browser
/inspect Open the local session/request inspector when the opt-in plugin is enabled
/btw <question> Ask a side question; answer streams into a dialog
/brief [scope] [focus] Summarize planned or completed changes compactly
/handoff [focus] Write a continuation handoff for another agent
/reflect [focus] Step back and rethink recent changes before moving on
/simplify [focus] Review changed code for reuse, quality, and efficiency
/trust Trust the current project's .smelt/ content
/reload Reload Lua config, prompt inputs, and the active model's context-window limit without restarting (also F5)
/version Show the running build identity as a notification
/changelog Open the release notes for the latest cached build
/upgrade [check] Install the newest smelt build (or refresh the cache with check)
/exit, /quit Exit (also :q, :qa, :wq, :wqa)

Goals

/goal <objective> starts a persistent goal that smelt keeps pursuing across turns. The sub-commands and the auto-continue setting are described under Goals and Auto-Continue.

Local diff viewer

/diff shows your uncommitted Git changes in two panes: a file tree on the left and one continuous, syntax-highlighted diff on the right. The tree has two sections: unstaged (including untracked files, marked ?) and staged. A file with both kinds of changes appears in both. Status letters are colored: green for added, yellow for modified, red for deleted and conflicted, blue for renamed.

Click a file to jump to it, or a folder to fold it. Drag the divider to resize the panes. s, u and - stage and unstage a single file without touching the working tree. If a refresh fails, the previous view stays with a stale - r refresh marker.

Key Action
Tab / Shift-Tab Switch between files and diff
[ / ] Previous/next file
{ / } Previous/next hunk
s / u, - Stage/unstage the selected file; - toggles by section
Enter Expand/collapse unchanged context, or open a file or folder from the tree
v / V, y Visual selection and copy
r Refresh
q, Esc, Ctrl-C Close

Vim motions (j/k, gg/G, w/b, counts, Ctrl-U/Ctrl-D) work in both panes. Ctrl-W >, < and = resize the panes.

The viewer is the bundled smelt.plugins.diff plugin. Disable it by adding smelt.builtins.disable({ plugins = { "diff" } }) to early.lua.

Optional commands

/inspect comes from the opt-in smelt.plugins.inspect plugin. Add require("smelt.plugins.inspect") to init.lua to enable it.

See also Sessions, Managed Worktrees, Copying Conversation Messages and Turn Notifications for the commands in those areas.