Skip to content

🎨 Studio

Offline cockpit: kanban, live feed, markdown memory, settings. No CDN at runtime β€” React/Babel are vendored. Cafe Wi‑Fi can implode; Studio will not. ✈️

πŸ•ΉοΈ

Mission control vibes: start a run, watch agents stream, drag cards mid-flight, edit CONTEXT while the loop is still thinking. Feel powerful. Use responsibly.

slmcode studio
# β†’ http://127.0.0.1:7420
slmcode studio --listen 127.0.0.1:7421

✈️ Airplane mode

Cafe Wi‑Fi can implode. Studio will not. Bring snacks either way.


Layout πŸ—ΊοΈ

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Brand Β· Query Β· Run/Stop Β· Model                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Pipeline: init β†’ skills β†’ … β†’ execute β†’ learn           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Nav     β”‚  Kanban / Live / Pipeline  β”‚  Docs / Settings β”‚
β”‚  Agents  β”‚  Task inspector            β”‚  CONTEXT/MEMORY  β”‚
β”‚  Skills  β”‚  Phase Β· slots editor      β”‚                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Zone Job
🎯 Query bar Start / stop
🏭 Pipeline strip Dynamic phases from .slmcode/pipeline.yaml
🧩 Pipeline tab Bind agents per phase, insert slots, loop roles
πŸ“‘ Live @agent, scope, patches, slots, output
πŸ“‹ Kanban Drag, promote, edit mid-run (any agent role)
πŸ’Ύ Docs Live markdown memory
βš™οΈ Settings Provider, knobs, safety

Mid-run editing ✏️

While agents run you can drag cards, promote columns, edit CONTEXT/MEMORY, and add notes. The loop reloads board.json each wave. Chaos, but structured chaos.


Human-in-the-loop modals βœ‹

Studio blocks the relevant step with a modal (pipeline header shows Awaiting you):

Modal When Options Timeout default
Clarify vague PRD interview pick options 2m β†’ recommended
Plan approve before execute approve / replan 2m β†’ approve
Escalate task hits max review retries re-scope / retry / mark done / abort 30s β†’ @escalate SLM decides
Continue QA/retries exhausted continue / stop / flag 2m β†’ stop
Shell shell_permission=ask approve / deny 2m

Config (Settings β†’ Planning / scope, or YAML):

escalate_ask: ask              # ask | auto | off
escalate_ask_timeout: 30s      # then @escalate (or escalate_timeout_agent) decides
escalate_timeout_agent: ""     # empty = @escalate β†’ @reviewer β†’ @coordinator
continue_ask: ask

TUI: /escalate re_scope|retry|mark_done|abort while the banner shows escalate pending. On timeout the dedicated @escalate arbitrator picks retry / re-scope / abort / mark_done.

API: GET /api/escalate/pending Β· POST /api/escalate/answer {"action":"retry"}.


Live events (SSE) πŸ“‘

Same stream as slmcode run -v:

Field Example
agent @worker
kind agent_start / coord / learn / output
task_id T1
scope focus files
output truncated specialist text
curl -N http://127.0.0.1:7420/api/events

HTTP API πŸ”Œ

Method Path
GET /api/health
GET/PUT /api/config
GET/PUT /api/pipeline Β· POST /api/pipeline/reset
GET/PUT /api/docs, /api/docs/{name}
GET/POST/PATCH/DELETE board / tasks
GET/POST/PUT/DELETE /api/agents (custom + overrides)
GET /api/skills /api/models
POST /api/runs /api/runs/stop
GET /api/runs/latest /api/events
GET/POST /api/escalate/pending Β· /api/escalate/answer
GET/POST /api/continue/pending Β· /api/continue/answer
GET / SPA

β†’ Full pipeline schema: Pipeline

curl -s http://127.0.0.1:7420/api/health | jq .
curl -s -X POST http://127.0.0.1:7420/api/runs \
  -H 'Content-Type: application/json' \
  -d '{"query":"Add a doc comment to Hello()"}'

Pair with the TUI πŸ₯Š

# A
slmcode studio
# B
slmcode watch

β†’ πŸ–₯️ TUI Β· πŸ§ͺ Recipes

β˜€οΈ Made with β™₯ by UnicoLab