/coder mode, inspired by tools like Claude Code and aru. Instead of bordered cards, all operations are displayed as compact inline lines.
Visual Comparison
- Full (default)
- Compact
Activation
Set theCHATCLI_CODER_UI environment variable:
Display Modes
| Mode | Variable | Description |
|---|---|---|
| full | CHATCLI_CODER_UI=full (or empty) | Full cards with borders, streaming output, visible narration |
| minimal | CHATCLI_CODER_UI=minimal | Smaller cards with compact text, no output streaming |
| compact | CHATCLI_CODER_UI=compact | Zero cards. Inline indicators: ✓ Read(main.go) 0.8s |
What Changes in Compact Mode
Tool Calls
| Full | Compact |
|---|---|
Card ╭── 🔨 EXECUTE ACTION (1/3) | ↻ Read(main.go) (cyan spinner) |
Card ╭── ✅ SUCCESS with output | ✓ Read(main.go) 0.8s (green checkmark) |
Card ╭── ❌ FAILED with error | ✗ Patch(file.go) 0.2s (yellow X) |
Smart Labels
Compact mode auto-generates labels from tool call arguments:| Subcommand | Label |
|---|---|
read | Read(main.go) |
write | Write(pkg/handler.go) |
patch | Patch(main.go) |
exec | Exec(go test ./...) |
search | Search(TODO) |
tree | Tree(.) |
Anti-Verbosity Rules
Compact mode includes anti-verbosity rules in the/coder system prompt. These apply to all UI modes:
- The AI does not narrate actions: zero “Let me…”, “I will…”, “Now I’ll…”
- Tool calls are emitted directly after the
<reasoning>block - Text output only appears for the final result (1-3 sentences)
Independence from Function Calling
Compact mode is independent of the function calling method:| Provider | Function Calling | Compact UI |
|---|---|---|
| Claude (Anthropic) | Native (API) | ✓ |
| OpenAI | Native (API) | ✓ |
| Ollama | XML fallback | ✓ |
| GitHub Models | Native (OpenAI-compat) | ✓ |
Next Steps
Coder Mode
Understand the full engineering cycle
Native Tool Use
How native function calling works
Multi-Agent
Parallel orchestration of specialized agents