Quick start
1. Drag a node from the left panel onto the canvas
2. Click an output port ○ then click an input port to connect
3. Click a node to edit its name, model, and system prompt
4. Press ▶ Run to test with a message
Node types
START — Entry point. Every graph needs exactly one.
Receives the initial user message.
Agent — An LLM-powered node.
Configure provider, model, system prompt, and tools. Supports OpenAI, Anthropic, Gemini, Ollama.
Loop — Repeats until an exit condition is met.
Set max iterations as a safety limit. Has two output ports: body (loop continues) and done (exit).
Subgraph — Runs another workflow as a nested step.
Reference any other AgentGraph by name.
Human Input (HITL) — Pauses and waits for approval.
Shows a form with configurable options. Timeout auto-resumes. Each option becomes an output port.
Agent Tool — Wraps another agent as a callable tool.
Use an entire workflow as a tool inside another agent node.
Note — Canvas annotation. Does not execute.
Document your design. Supports Markdown, resizable, collapsible.
END — Exit point. Graph stops here.
Connect any agent to END to terminate the flow.
Connecting nodes
Click an output port (right side), then an input port (left side)
Click an edge to add a condition label (e.g. approved, retry)
Port colors indicate type — cyan = text, purple = variable/subgraph, amber = HITL option
Incompatible port types are blocked and greyed out
Hover over an edge to preview the last output from that connection
Header buttons
File ▼New, Load Example, Templates, Import YAML/Python, Watch File
✨ AIDescribe a workflow in plain English — AI generates it
Export ▼Python / YAML download, Embed Widget <iframe>, Load Trace
▶ RunOpen test panel and send a message to your workflow
▲ CodeExpand the code panel — live Python/YAML updates as you build
Testing & debugging
Output tabStreaming response from the workflow, with tool call trace
History tabAll previous runs — search, replay, export as JSONL
AI tabChat with AI copilot to modify the workflow on the canvas
📊 TimelineGantt chart with per-node timing, token count, cost on hover
ScrubberClick any step to highlight the node — ▶ to re-run from that point
Right-click a nodeRe-run in isolation, pin last output, freeze/unfreeze
Freeze nodeSkips re-execution and reuses cached output — great for debugging
Export → Load TracePaste trace_to_json(result.trace) to replay a production run
Keyboard shortcuts
Undo / RedoCtrl+Z / Ctrl+Y
Copy / Paste nodeCtrl+C / Ctrl+V
Delete selectedDel or Backspace
Cancel / deselectEsc
Search nodesCmd+K
Zoom in / out+ / -
Reset zoomCtrl+0
Pan canvasSpace + drag or middle mouse
Mouse wheelZoom toward cursor
Open this help?
Auth & deployment
Start with token authselectools serve --builder --auth-token TOKEN
Or set environment variableBUILDER_AUTH_TOKEN=TOKEN
Or save to dotfile~/.selectools/auth_token
Docker Composedocker-compose up — see docker-compose.yml