Skip to content

Nodes overview

Twenty-two 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, or invokes /{name} on a provider CLI
§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 sources (skills also accept inbound text for invoke mode). The three context glyphs are one node type in three kinds.

GlyphNodeRole
⟨/⟩AgentRuns a provider CLI agent. Emits reply on out, failure text on red out:err after retries. May emit a session
⇄Text → PromptWraps inbound text in a {{input}} template
◇DataTyped value on the card (string · int · float · bool · json), or coerce an inbound wire. E.g. Data(json) → custom or agent → Data(int) → …
◷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
◈MCP toolCall one tool on a discovered MCP server (stdio · HTTP · SSE). MCP tool · MCP manual

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

GlyphNodeRole
∀IteratorSplits text into items. Agent runs once per item (serial or parallel map)
⋈MergeCombine inbound wires. Concat / first / majority / synthesize
?JudgeRoute by regex / contains. Pass · fail · unsure
↻UntilCounted re-entry. Reenter · exhausted (max N)
‡Circuit breakerAbort / skip / park on spend, tokens, time, content, retries
✓ApprovalHuman gate. Edit the text and continue
⇄Live handoffChat with an agent until Ready, then distill or excerpt and continue
◌Wait for idlePark until inbound session is not generating
GlyphNodeRole
⇤OutputCaptures result text · render auto/text/markdown/html/svg · resizable · ❐ copy · ⌫ clear · cleared on run when wired. 1 in · multi out

Output also re-emits its text, so you can fan it out to several downstream nodes.

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, merge, circuit breaker, agent, custom (plus each required named port on a custom node). Data can run from the value typed on the card alone.

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 graph lint.


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. Merge 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.