CLI and TUI
Chat with an agent in the full-screen terminal UI, its keys and commands, approvals at the keyboard, plain line-by-line chat, and one-shot runs from scripts.
The terminal UI#
habakkuk chat # the terminal UI on a terminal; line by line when piped
habakkuk chat -agent research # another agent
habakkuk chat -resume # pick a recent session
habakkuk chat -session ID # continue a given session
habakkuk tui # always the full-screen UIhabakkuk chat runs turns in the terminal while it is open; it does not need habakkuk serve. Tool calls show as cards you can expand, and the model's thinking can be shown or hidden. The first conversation with a new agent opens with its welcome.
Keys#
| Key | What it does |
|---|---|
| Enter | Send |
| Alt+Enter, Shift+Enter or Ctrl+J | New line |
| Tab | Complete a command or its argument |
| Up / Down | Recall earlier messages |
| Esc Esc | Edit and resend the last message |
| Ctrl+C | Stop the running turn; twice to quit |
| PgUp / PgDn, mouse wheel | Scroll; click a tool card or thinking to expand it |
| Ctrl+O | Expand all tool output |
| Ctrl+T | Show all thinking |
Start a message with // to send it literally when it begins with /.
Commands#
| Command | What it does |
|---|---|
/help |
Commands and keys |
/new |
Start a fresh session with this agent |
/clear |
Clear the screen (the session is kept) |
/sessions |
Switch to a recent session |
/agent [name], /agents |
Talk to another agent in a fresh session; list the agents |
/model [provider/model|default] |
Show or switch this session's model |
/usage, /status |
Tokens and cost; agent, model, session and usage |
/retry, /stop |
Run your last message again; stop the running turn |
/btw, /steer, /queue |
A side question; guidance for the task in progress; a message for after it |
/think [level], /personality [name|off] |
Thinking effort and persona for this session |
/compact, /undo |
Summarize older messages; put back the files the last turn changed |
/export [path] |
Write this session as a Markdown file |
/quit, /exit |
Leave (a running turn finishes on the next start) |
Approvals#
When a call needs approval, the UI shows the request with three choices: allow once (a or y), allow for this session (s), or deny (d, n or Esc). Arrow keys and Enter work too.
Plain chat#
habakkuk chat -plain (or any habakkuk chat whose input is piped) is a line-by-line chat with no full-screen UI, which suits scripts and dumb terminals.
One-shot runs#
habakkuk run "summarise the files in my workspace" # one turn, print the answer, exit
habakkuk run -agent research "compare these two papers"
habakkuk run -skill weekly-report # follow a skillhabakkuk run prints the answer and exits, so it fits scripts and cron jobs. Nobody is there to approve, so calls that need approval are denied unless the agent has an approval reviewer.
Everything else#
The CLI reference lists every command and flag. habakkuk with no arguments prints the same list.