Interactive mode
hipmmcode (or hipmmcode chat) opens the interactive REPL. By default it runs in a fullscreen managed viewport — an alternate-screen TUI with mouse support, a pinned bottom bar, and in-viewport streaming. Prefer the classic scrollback renderer? hipmmcode config set tui=inline (or /tui inline live).
hipmmcode # fullscreen TUI REPL
hipmmcode chat -p deepseek-anthropic -m deepseek-v4-flash
hipmmcode chat -p xai-oauth -m grok-4.5
hipmmcode chat --legion my-team # activate a legion for this session only
hipmmcode chat --as team-designer # adopt an agent profile as the lead persona
hipmmcode -c # continue the most recent sessionThe screen
- Transcript area — streaming markdown (headers, lists, bold, code, tables, clickable links) rendered line-by-line as the model responds. Tool calls render as collapsible cards.
- In-turn task tree — while the agent works, a live tree shows the current tool, todo progress, and spawned teammates, with an animated spinner.
- Background tasks bar (v0.16.0+) — consecutive background status lines (e.g.
bash-7 · running…, teammate notices) collapse into a single⏺ Background tasks (N)row. Click it or pressCtrl+Oto expand the individual lines. The header no longer uses "Team" wording. - Input box — multi-line editor with history, completion, and optional vim bindings.
- Status bar (HUD) — pinned bottom row(s): model, cwd, context pressure gauge (
[████░░░░] 42% 85k/200k, model-aware), session tool counts. Style it with/hud(native rows / compact bar), or plug an external command viastatusLineCommand.
Keyboard
Everyday
| Key | Action |
|---|---|
Enter | Send |
Shift+Enter / Alt+Enter | Insert newline (run /terminal-setup once to enable Shift+Enter in your terminal) |
Esc | Interrupt the running turn (when input is empty) · clear the draft (when not) |
Ctrl+C | Interrupt turn / clear input; twice to exit |
Ctrl+O | Fullscreen transcript view (scroll, expand, select); also expands/collapses the Background tasks bar when that row is focused |
Ctrl+B | Send the running foreground Bash / Agent to the background (session-resident completion notice) |
Ctrl+Z / Shift+Ctrl+Z | Undo / redo in the input editor |
Ctrl+X Ctrl+E | Edit the draft in $VISUAL/$EDITOR (/editor does the same) |
Shift+Tab | Cycle permission mode: default → acceptEdits → plan → auto → default (with mode indicator) |
↑ / ↓ | Input history (or move within a multi-line draft) |
Ctrl+R | Reverse-i-search through input history |
!cmd | Run a shell command directly (output lands in the conversation); shell is configurable via defaultShell |
Completion
- Tab — list candidates for any slash command and its arguments (
/model <Tab>showsprovider/modelpairs filtered to channels with a key). - Ghost hint — typing
/moshows a dimdelsuffix; press→orEndto accept. Works for command names and argument values. @mentions — type@for fuzzy completion of files and agents.@lists both file paths and spawnable agents (name (agent) – description). Selecting an agent appends a directed-delegation hint to the model.- Bare
/— opens the searchable command palette (multi-column, arrow keys + Enter). Single keystroke execution — an exact command match runs on first Enter (/status⏎no longer needs a second press). - Slash menu source tags — menu rows show
(user)for custom commands and(mcp)for MCP-provided commands.
Vim mode
/vim (or hipmmcode config set editorMode=vim) enables modal editing in every input surface — the inline editor, the streaming view, and the resting fullscreen composer. Esc → NORMAL, i/a/o/A/I/O → INSERT, with motions (h j k l w b e 0 $), operators (d c y), paste (p), undo (u). The status line shows the current mode. In NORMAL mode with an empty draft, Esc still interrupts a running turn.
Mid-turn team keys
While a turn is running with background teammates: Shift+↑/↓ selects a teammate in the preview, f foregrounds it, k stops it, Enter expands its transcript.
Mid-turn input queue
While a turn is still running you can type the next message. Queued lines show above the composer with a dim [Send now] chip:
| Action | Effect |
|---|---|
Click [Send now] | Abort the current turn and start the queued message immediately |
| Enter twice within ~800ms (empty draft, queue non-empty) | Same as Send now |
| ↑ | Recall / edit the most recent queued line into the draft |
There is no separate cancel/edit chip on the row — edit via ↑, promote via Send now or double Enter.
Mouse
The fullscreen shell captures the mouse:
- Hover a collapsed tool card → highlight; click → expand/collapse.
- Drag-select — character-precise selection that auto-copies on release.
- Wheel — scroll the viewport (3-line steps); scroll back during a streaming turn.
- Cmd+click (macOS) / Ctrl+click paths in tool output — open the file in the editor when the terminal/IDE supports it (VS Code may also handle path open itself).
Attachments — images & video
Multimodal input works three ways:
- Drag a file onto the terminal — its path is inserted and attached.
@-mention a path./paste(aliases/img,/image) — attach an image straight from the clipboard.
Images are analyzed on vision-capable models. Videos are analyzed on video-capable channels (e.g. Gemini, Kimi/Moonshot): the model watches the actual footage — on-screen text, UI actions, timestamps. Models without video support get a clear text placeholder instead. The inline size cap is 32 MB, configurable with HIPMMCODE_VIDEO_MAX_MB.
File paths in file:// form, with spaces, or percent-encoded are resolved cross-platform (POSIX and Windows).
Notifications & terminal integration
notifyOnDone=true/notifyOnInputNeeded=true— beep or send a terminal notification when a turn finishes or a permission prompt opens while the window is unfocused. Channel auto-detected (iTerm2, kitty, ghostty, bell) or pinned vianotifyChannel.terminalTitle/terminalProgress— status in the tab title (OSC 0) and a progress indicator (OSC 9;4) where supported.awayRecap=true(default) — a "welcome back" recap after ≥5 minutes idle.tips=true(default) — rotating keyboard-shortcut hints under the input.reduce motion— calmer animations (accessibility).
Appearance pickers
/color (alias /theme) opens a live-preview picker — the whole screen re-tints as the highlight moves, so you judge each theme in place and Enter keeps it:
› /color Themes — previews live as you move default terminal ANSI palette ❯ tokyo-night icy blues + violet (active) solarized warm classic catppuccin soft pastel monokai high-contrast neon ↑/↓ preview · Enter keep · Esc revert
/hud picks the bottom status-bar style the same way (native rows / compact bar / force-native). The same picker pattern — arrow keys, (active) marker, Esc-safe — is used across /effort, /output-style, /experiments, and /expand.
Output styles
/output-style switches the response style (concise, explanatory, learning, …); custom styles are markdown files. language=<name> pins the response language.