Skip to content

Nodes overview

Eighteen node types. Drop them from the palette, or drag a wire off a handle and pick from the wire-drop menu.


Nodes that start a lane.

GlyphNodeRole
PromptFree text out · {{param:}} · typed value (text/int/float/bool/json)
SessionAn existing provider session — continue it, or extract from it
Subagent runA child run under a session (inert; a handle for wiring)

Prompt has no input handle at all.

Files and session slices pushed onto the text lane.

GlyphNodeRole
SkillInjects a SKILL.md
§RulesInjects CLAUDE.md / AGENTS.md / .cursorrules / .cursor/rules/*
Context · distilled summaryAI-condensed brief of a session
Context · transcript excerptFiltered raw conversation
Context · filesManifest of files the session touched

Skill and rules nodes are pure sources. The three context glyphs are one node type in three kinds.

GlyphNodeRole
⟨/⟩AgentRuns a provider CLI agent; emits its reply and its session
Text → PromptWraps inbound text in a {{input}} template
DelayWall-clock pause on the text lane (no agent) — 1 in · 1 out; good for detached-job demos
CustomYour own node from ~/.config/threadle/nodes — text in, text out · named ports + maxConnections

Custom node manifests may override the glyph and declare named typed ports.

GlyphNodeRole
IteratorSplits text into items; the downstream agent runs once per item
KnotExplicit fan-in — concat / first / majority / synthesize
TripwireCircuit breaker — abort / skip / park
ApprovalHuman gate; edit the text (splice) and continue
Live handoffChat with an agent until Ready, then distill or excerpt and continue
GlyphNodeRole
OutputCaptures result text · render auto/text/markdown/html/svg · resizable

Output also re-emits its text, so sinks can chain.

GlyphNodeRole
Group frameVisual frame; links to a saved sub-workflow when extracted
NoteSticky annotation

The runner skips note, group and subagent-run outright — they never have a status beyond idle. A linked group frame is still inert itself, but its wires resolve onto its member nodes before the run.

Everything else executes. Two per-node overrides change that:

OverrideEffect
muteSkipped entirely; downstream nodes starve and are skipped too
bypassInbound text passes straight through without executing

Per-node retry (0–10 extra attempts, with backoff) and continue-on-error control what a failure does to the run.


These are flagged before a run if nothing is wired in: output, Text → Prompt, Delay, approval, iterator, knot, tripwire, agent, custom (plus each required named port on a custom node).

Other readiness rules:

NodeNeeds
Agenta model set in the inspector (required for detached runs)
Live handoffan agent on the node, or an inbound session
Contexta materialized payload, or a wired session source
Skill / Rulesa picked artifact

All of it surfaces continuously in loose ends.


Edges carry text, session or context, and the canvas colors them accordingly. Invalid node pairs are refused at connect time, as are mismatched value types — a source type must equal the target type, widen int → float, or feed a text target. Handles also have a connection capacity (e.g. Delay is 1 in · 1 out; Knot is multi-in · 1 out; custom named ports default to 1 — see Params & named ports).

A few text-looking pairs are forbidden on purpose: prompt → output, skill → output, rules → output, context → output. Output is for results; convert or run through an agent first.