Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Slash Commands

A prompt beginning / is a command to heph rather than a message.

/job-kill ID requests cancellation of a background job without matching tool lock rules. It remains available while a turn or publication waits. The request is not a claim that cleanup has already finished.

CommandDoes
/back [N] [--keep-code]Move the conversation back N turns (1 by default) and its worktree with it; --keep-code leaves the files for /review
/base [<branch>]Show the base, publication branch, and pending rebase; <branch> overrides upstream until /commit publishes it (Branches)
/branch [<name>]Show the branch the conversation publishes to; with <name>, publish there, adopting it if it exists (Branches)
/clear [<prompt>]Clear, then send <prompt> if given; a refused clear sends nothing. Start the model fresh: nothing before the next turn is sent, live token/cache counters restart; persisted spend remains (Session)
/code [--clear] [<prompt>]Leave plan or design mode; turns run as the class the session was started with. --clear starts the model fresh first; <prompt> is sent as the next turn
/code [--clear] --implement [<path>...] [<words>]Leave the mode and build the committed design: the paths given, or the designs this conversation wrote since the last handoff, their text in the first prompt (Design Turns)
/commit [--skip-gates] [--] [<message>]Commit the accepted work to the conversation's own branch, creating it the first time (Committing); with <message>, no draft and no editor; --skip-gates bypasses final gates for this invocation only, not review or Git hooks; -- begins a literal message
/costSession/thread/today category costs and seven local calendar days of cross-project usage, with totals, ranked models, cache rates, and estimates; scroll with Up/Down/PgUp/PgDn or wheel, Esc closes (Costs)
/design [<set>]Enter design mode: plan turns that may write only under [design] paths, reviewed like any change (Design Turns); sticky until /code
/design [--tools <set>] <prompt>Enter design mode and send <prompt> as its first turn
/diff [--stat]What /commit would publish now, with the turns it spans (Forking and Switching)
/diff <turn> [<path>...]One turn's accepted change; a turn is #12, an id, or six or more characters of one
/diff <design>The turns --implement started to build a design document, and what they accepted
/fork <prompt>Branch here, generate a short name through the title role, and start the prompt
/forward [N] [--keep-code]Undo a /back, N turns or all the way
/helpShow the key bindings (same as ?)
/init [--file AGENTS.md|HEPH.md|CLAUDE.md]Create or refine reviewed root instructions using the coding model; idle only (Project Instructions)
/init --offerClear repository-local offer suppression without starting a turn
/init --helpPrint the local bootstrap contract
/instructionsList frozen and next instruction sources and diagnostics, not contents
/new <prompt>Start a root without inherited history; name locally on submission and improve the title asynchronously
/plan [<set>]Enter plan mode: read-only turns, sticky until /code (Plan Turns); with <set>, that tool set
/plan [--tools <set>] <prompt>Enter plan mode and send <prompt> as its first turn; a single word after /plan is taken as a set name
/promptsToggle a user-prompts-only history (same as Ctrl-P); display-only, with permission and review dialogs still available
/quit, /exitSkip the Ctrl-D confirmation, then flush acknowledged drafts
/refsList live conversations, each with its tip and its branch, or (base <branch>) before its first commit
/rename [name]Rename only the active session; without a name, ask the fast title model for a 1-4 word slug from recent user intent
/restore <turn> [<path>...]Put that turn's files back in the worktree for /review, without moving the conversation
/review [--skip-gates]Review what the worktree holds beyond the accepted state, now (Review): no gates, no model round; --skip-gates is an explicit alias, not a sticky setting
/sequence [cancel]Inspect the current publication unit's phase and remaining work; cancel stops sequencing while keeping accepted changes. Waits for turns, review, and publication (Committing)
/sidebar [on|off|auto]Show or hide the skills and cost sidebar for the session; bare /sidebar toggles it, auto returns to [ui] sidebar
/skill <name>Activate a discovered skill with the next prompt; it remains in this conversation's context. Tab completes the name
/skillsList skills by project and user, active and disabled ones, discovery errors, and what is armed or queued (Skills)
/skills --reloadReread [skills] and the skill directories and say what changed (Skills)
/statsFull session UUID, session/thread/daily token and cost breakdowns, today's provider/model totals, and estimated tool request/result-lifetime shares; scroll with Up/Down/PgUp/PgDn or the wheel, Esc closes
/summary [--refresh]Read the cached work summary; regenerate asynchronously with --refresh
/switch <ref>Open an existing conversation by exact name or full UUID while idle
/tiersA window with the conversation's tier and model, its profile's tiers (overrides marked), and the other profiles; any key but Up/Down closes it (Tiers and Profiles)

/summary [--refresh] shows the persisted work summary for the active ref. --refresh defaults to false: a cached read makes no model call. With the flag, heph regenerates from the transcript using the summarize role after the turn ends; the UI stays responsive. See Work summaries.

/rename [name] requires an idle turn with no pending review. Explicit names must be unique lowercase slugs matching [a-z0-9][a-z0-9-]*. Automatic naming uses the latest 3,000 characters of user prompts, asks the model to revise conflicting names up to three requests total, and adds a numeric suffix only as a last resort. See Renaming.

Anything else answers /name: not a command yet (try /help). Background multi-ref runners, search UI, and the turn tree remain future features (What Is Not Here Yet).

A prompt beginning ! is a command you run yourself, not a slash command.