Two terminal faces. One harness. Zero mystery meat. 🥩➡️🥗
Pick your fighter: Premium TUI for day-to-day board + live events; Chat REPL for quick prompts and slash-command speedruns.
| Face | Best for |
|---|---|
Premium TUI (slmcode / slmcode tui) |
Day-to-day — board, live events, agents, stats 🕹️ |
Chat REPL (slmcode chat) |
Quick prompts + slash commands 💬 |
slmcode
# or
slmcode tui- Connection / provider health
- Live kanban (columns move as waves complete — ASMR optional)
- Agent stream:
@worker, scope files, truncated outputs - Errors without the doom-scroll
- Diffs and query history
| Command | Effect |
|---|---|
/compact [heuristic|llm|auto] |
Shrink noisy context 🧹 |
/models |
Catalog / search enabled models 🔎 |
/mcp |
MCP server status 🔌 |
/auth |
Show / set provider keys (.slmcode/auth.json) 🔑 |
/schema |
Dump config JSON schema 📐 |
/sessions |
Browse saved runs 📼 |
/stats |
Phase latency + token estimates 📊 |
/permission |
Write / shell policy 🛡️ |
/plan [auto|ask] |
Plan-approve gate before execute 📋 |
/escalate … |
Answer escalate HITL: re_scope | retry | mark_done | abort ⚖️ |
/agents |
List / create / edit / delete agents 🧩 |
/stop |
Checkpoint mid-run 🛑 |
/resume |
Continue from checkpoint |
/help |
Remind your future self 🛟 |
!!! tip "⚖ Escalate banner"
When a task hits max review retries, the TUI shows an ESCALATE banner and the
pipeline pauses that task. Answer with /escalate retry (etc.), or wait for the
timeout — then @escalate (SLM) decides. Same modal exists in Studio, and
slmcode run draws the same card inline and takes a single keystroke.
Before you answer, `slmcode task show <id>` in another terminal prints the scope, the
reviewer's verdict and issues, the gate that refused the task, and the diff of its focus
files. `mark_done` (`[d]one`) **overrides** the gate that refused the work: the task is
recorded as a human override, `slmcode board` marks it `⚑ forced done`, and the run summary
counts it separately from a verified pass.
!!! tip "💪 Keyboard muscle memory"
Ctrl+C mid-run checkpoints board + ReAct history under
.slmcode/queries/<id>/react/. Prefer /resume over “start over and pray”.
/agent new
/agent new id=night-auditor title=Night provider=ollama model=qwen2.5-coder:14b
/agent edit worker model=qwen2.5-coder:14b
/agent show night-auditor
/agent delete night-auditorslmcode chatslm › /help
slm › /permission review
slm › Add validation to the login handler
slm › /board
slm › /diff
slm › /quit
| Command | Effect |
|---|---|
/run <q> |
Explicit full pipeline |
/board /status /diff /skills /doctor |
Inspect |
/permission auto|dry-run|review |
Write policy |
/model <id> |
Switch model (rebuild as needed) |
/quit |
Exit (politely) |
Plain lines (no /) also run the full pipeline. Yes, even typos. Choose carefully. 😅
Still the power tool:
slmcode run -v "…"
slmcode board
slmcode watch
slmcode session listSee ⌨️ CLI reference for every subcommand.
| Situation | Reach for |
|---|---|
| Exploring a new repo | TUI + Studio side-by-side 🥊 |
| Scripted / CI-ish | slmcode run + flags |
| “Just fix this” | chat or run -v |
| Teaching / demos | permission dry-run + TUI 🎭 |
Pro move: run slmcode studio in one pane and slmcode watch in another.
Feel like mission control. Resist the urge to narrate aloud. Or don’t — we can’t hear you.
☀️ Made with ♥ by UnicoLab