Skip to content
Sponsor

Typed pipes

Every port has a type, and the type is the colour of its dot and of the wires it takes: red for event, blue for text, and so on. A wire only lands where the types fit, which catches most wiring mistakes while you drag. The server checks every wire again before a graph turns On.

  • The same type fits. text into text, event into event.
  • any fits both ways. A port of type any takes every type, and an any output can go into every input. The Template’s tags, Preview, Router and the HTTP Request tags are any.
  • A subtype fits into its parent, not the other way round. An int output goes into a number input, and a list into a json input, but a plain json value does not go where a list is expected. The column Also fits into below names each type’s parent.

Some ports change type with the node’s settings. An HTTP Request’s body is text, or an image or audio data: URL, depending on its response knob. The LLM grows an image input when its model reads images. Wireless Out ports take the type of what was wired into the matching Wireless In.

TypeCarriesAlso fits intoUsed by
eventa signal to run; its value is whatever the sender attachedAgenda, Append File, Audio Input, Changed, Chat, Chat Input, DB, Delete File and 23 more
texta stringAppend File, Chat, Chat Input, Chunk, Delete File, Embed, Foreground Window, Format List and 21 more
numbera numberMeter
inta whole numbernumberDB, HTTP Request, Integer, Queue, Vectors
floata decimal numbernumberFloat
booltrue or falseBoolean, KV
jsonstructured data: an object, a list, a numberAgenda, Build JSON, DB, Foreground Window, Format List, Get, KV, List Dir and 5 more
lista list of valuesjsonChunk, List, Sentences
imagean image as a URL or a data: URLImage, Screen Capture, Window Capture
audioan audio clip as a data: URLAudio, Audio Input, STT, TTS
pcm-audioraw audio samplesno core node yet
embeddinga vector of numbers, or a list of vectorsEmbed, Vectors
memory-setsearch hits: text, score, ref and metadata for eachRerank, Vectors
statethe state of an agentno core node yet
messageone chat messageno core node yet
toola tool offered to a modelLLM
tool-calla Tool's call: offers the tool and carries the argumentstoolTool, Tool Args
tool-resultwhat a tool returnedno core node yet
mooda mood name, from Tag ParseTag Parse
actionan action name, from Tag ParseTag Parse
langa language code such as en or pt-BRtextAudio Input, STT, TTS
schedulea due reminderno core node yet
observationnotes as markdown bulletsno core node yet
secreta masked credentialno core node yet
dba handle to a Database storeAgenda, Database, DB
kva handle to a KV StoreKV, KV Store
vectorsa handle to a Vector StoredbVector Store, Vectors
anyanything: the wildcardBuild JSON, Changed, Compute, DB, For-each, Get, HTTP Request, KV and 10 more

A node pack can register types of its own. It cannot change the colour or the parent of a type that already exists, so a pack never rewires anyone else’s graph. See Build a node pack.