2 · Intermediate
Goal: stop writing straight lines. Split work across branches, bring it back together deliberately, loop over lists, put limits on what a run may do, and watch long server jobs from the terminal.
Every example at this level runs without an agent except where noted.
2.1 Detached jobs — close the browser
Section titled “2.1 Detached jobs — close the browser”A server job keeps running after you close the tab. The agent-free teaching graph is a ◷ Delay for about a minute:
threadle --no-openthreadle run detached-delay --detachthreadle jobsthreadle attach <jobId>Reopen the workflow later — statuses and the output sync from the job.
▶ Example: Detached delay
See Detached runs · CLI.
2.2 Branching is just more wires
Section titled “2.2 Branching is just more wires”One node can feed several. Wire a prompt into two different converters and both fire — the graph is a DAG, not a line.
What bites people is the other direction: several wires into one node. By default those texts are joined with blank lines, silently. That’s fine for two short strings and terrible for anything you care about. Which brings us to the knot.
2.3 ⋈ Knot — merging on purpose
Section titled “2.3 ⋈ Knot — merging on purpose”A Knot node makes fan-in an explicit decision:
| Strategy | Behavior |
|---|---|
concat | Join candidates with a separator |
first | Take the first inbound text |
majority | Most common answer wins |
synthesize | Build a labeled merge prompt — optionally run a model on the node to write the synthesis |
majority and synthesize are what turn “ask three agents” into “ask three agents and get one answer”.
▶ Examples: Knot concat, Knot first-wins
See Knot.
2.4 ∀ Iterator — one graph, many items
Section titled “2.4 ∀ Iterator — one graph, many items”An Iterator splits inbound text into items — by lines, by blank-line-separated blocks, or by parsing a JSON array — with an optional cap. A downstream agent then runs once per item, sequentially in one session, and the outputs are collected.
This is how a checklist becomes N runs without N copies of the graph.
▶ Example: Iterator lines
See Iterator.
2.5 Mute and bypass — editing a graph without rewiring
Section titled “2.5 Mute and bypass — editing a graph without rewiring”Two per-node toggles, borrowed from ComfyUI:
| Toggle | Effect |
|---|---|
| Mute | Node is skipped entirely; downstream starves |
| Bypass | Node doesn’t execute; its inbound text passes straight through |
Bypass is how you A/B a converter or take an agent out of a chain for a moment without deleting anything.
▶ Example: Mute & bypass
2.6 ‡ Tripwire — automatic circuit breakers
Section titled “2.6 ‡ Tripwire — automatic circuit breakers”A tripwire watches a wire and fires when a condition is met. Two of the five modes matter most at this level:
| Mode | Trips when |
|---|---|
content | Text is empty, shorter than a minimum, or matches (or fails to match) a regex |
spend | Run spend crosses a dollar threshold |
And three possible reactions:
| Action | Effect |
|---|---|
abort | Stop the run |
skip | Fail this node, starve the branch, let the rest continue |
park | Pause for a human — same editable dock as an approval gate |
A content tripwire that parks on /ERROR/ is the cheapest quality gate you will ever build.
There’s also a graph-wide spend ceiling in ≔ params, checked between waves — a seatbelt independent of any node.
▶ Examples: Content tripwire, Min-chars tripwire, Spend tripwire
See Tripwire.
2.7 Read the dock
Section titled “2.7 Read the dock”The bottom dock has three tabs:
- Run log — what happened, in order, with per-node timing and cost lines
- ✗ Issues — hard readiness problems that block ▶ / ≫ (missing model, unwired required ports, …)
- ⌀ Loose ends — always-on soft lint: dangling outputs, unreachable nodes, unused params, muted nodes
Issues block a run. Loose ends never do — they’re a map of everything you probably didn’t mean.
See Bottom dock and Loose ends.
You’re done when…
Section titled “You’re done when…”- you can start a detached run and inspect it with
threadle attach/jobs - you reach for a knot instead of letting wires silently concatenate
- you can fan a prompt to two agents and merge by majority
- you can explain the difference between mute and bypass without thinking
- every unattended graph you build has a ceiling or a tripwire on it
3 · Advanced — parallelism, pipelines, and headless runs.