Chat Mode
Chat mode is the default interactive experience in Caboose. You type messages, the agent responds with streaming text and tool calls, and the conversation persists automatically.
Sessions
Section titled “Sessions”Every conversation is a session, persisted to SQLite in real time. Sessions survive crashes and restarts.
| Action | How |
|---|---|
| Start a new session | /new or launch caboose |
| Resume a session | Ctrl+O to open the session picker |
| Search sessions | Type in the session picker — full-text search across all past sessions |
| Rename a session | /title <name> |
| List sessions | /sessions |
Sessions are titled automatically from your first message (3–6 words, generated by the LLM). Non-interactive mode (--prompt) also creates sessions you can resume later.
Shell shortcuts
Section titled “Shell shortcuts”Prefix any message with ! to run a shell command directly without involving the LLM:
!git log --oneline -10!ls -la src/!cargo test 2>&1 | tail -20Output is shown as a system message in chat. Supports pipes, redirects, and shell builtins. Truncates at 200 lines, and shows the exit code on failure. Works even without an API key configured.
Image attachments
Section titled “Image attachments”Attach images to any message in three ways:
- Drag and drop a file onto the TUI
@path.png— reference a file by path in your message- Clipboard paste — images on your clipboard are detected automatically
Images are auto-compressed before sending: Caboose tries passthrough first, then resizes, then re-encodes as JPEG if needed. PNG and WebP images with transparency skip JPEG re-encoding.
Hover-to-copy
Section titled “Hover-to-copy”Mouse over any assistant message to reveal a [ y copy ] badge in the top-right corner of that message. Press y or click the badge to copy the full message text to clipboard. A confirmation appears as a system message.
Message queuing
Section titled “Message queuing”You can send up to 3 messages while the agent is still responding. Queued messages are processed in order after the current turn completes. This lets you steer the agent without waiting for it to finish.
Permission modes
Section titled “Permission modes”The permission mode controls what the agent can do without asking. Cycle through modes with Tab:
| Mode | Reads | Writes | Shell | MCP |
|---|---|---|---|---|
| Plan | Auto | Blocked | Blocked | Blocked |
| Create | Auto | Approval | Approval | Approval |
| AutoEdit | Auto | Auto | Approval | Approval |
| Chug | Auto | Auto | Auto | Auto |
The current mode is always visible in the footer status bar.
Thinking / reasoning
Section titled “Thinking / reasoning”Models that support extended thinking show streaming thinking blocks in chat as collapsible sections. Toggle thinking on/off with Ctrl+T, or set a level with /reasoning:
/reasoning # open level picker (Off / Low / Medium / High)The thinking toggle is hidden for models that don’t support it.
Session status
Section titled “Session status”/statusShows the current provider, model, permission mode, token usage for the current session, and total session cost.
/undoRewinds to the most recent checkpoint. Checkpoints are created automatically before file-modifying tool calls, so /undo restores the previous file state.
Command palette
Section titled “Command palette”Press Ctrl+K to open the command palette, which provides fuzzy search across all commands and skills. You can also type / in the input area to trigger autocomplete.
Memory
Section titled “Memory”Caboose extracts and persists facts across sessions:
- Project memory — stored in
.caboose/memory/MEMORY.md, lives alongside your code - Global memory — stored in
~/.config/caboose/memory/, shared across all projects - Auto-extraction — happens at session end
Manage memories with /memories (view) and /forget (remove entries).
Session budgets
Section titled “Session budgets”Set a maximum spend per session to prevent runaway costs:
- Configure via
/settingsormax_session_costin config - Warning at 80% of the budget in the footer
- Pause at 100% — you can continue, raise the limit, or stop
- Default: off (no limit)
Sidebar
Section titled “Sidebar”Toggle the sidebar with Ctrl+B. It shows files modified (collapsible), MCP server status, stored memories, and session metadata. Drag the sidebar border to resize — clamped between 20 and 80 columns.
Embedded terminal
Section titled “Embedded terminal”Press Ctrl+= to toggle a full PTY-backed terminal panel inside the TUI. Run tests, check git status, or execute anything you want to handle yourself without leaving Caboose.