Node Reference

Complete catalog of every node available in Loom (297 nodes across 27 modules). Exec ports (Execute/Done) are omitted from the table since they appear on all statement nodes.

Core (30 nodes)

Framework-agnostic nodes shared across all modules: flow control, math, comparison, logic, and property access.

NodeTypeInputsOutputs
Entryexpression--
BranchstatementCondition (bool)-
Sequencestatement--
For EachstatementCollection (list<any>)Item (T), Index (int)
GatestatementCondition (bool)-
AddexpressionA (float), B (float)Result (float)
SubtractexpressionA (float), B (float)Result (float)
MultiplyexpressionA (float), B (float)Result (float)
DivideexpressionA (float), B (float)Result (float)
ModuloexpressionA (int), B (int)Result (int)
PowerexpressionBase (float), Exponent (float)Result (float)
MinexpressionA (float), B (float)Result (float)
MaxexpressionA (float), B (float)Result (float)
AbsexpressionA (float)Result (float)
RoundexpressionA (float)Result (int)
EqualexpressionA (any), B (any)Result (bool)
Not EqualexpressionA (any), B (any)Result (bool)
Less ThanexpressionA (float), B (float)Result (bool)
Less Or EqualexpressionA (float), B (float)Result (bool)
Greater ThanexpressionA (float), B (float)Result (bool)
Greater Or EqualexpressionA (float), B (float)Result (bool)
AndexpressionA (bool), B (bool)Result (bool)
OrexpressionA (bool), B (bool)Result (bool)
NotexpressionA (bool)Result (bool)
Literalexpression-Value (any)
Get Propertyexpression-Value (any)
Set PropertystatementValue (any)-
Get Variableexpression-Value (any)
Set VariablestatementValue (any)-
PrintstatementValue (any)-

Mesa ABM (31 nodes)

Agent-based modeling with Mesa 3 -- movement, agent management, spatial queries, data collection, random utilities, and simulation control.

NodeTypeInputsOutputs
EvaluateexpressionInput (any)Result (any)
Movestatement--
Spawn Agentstatement-Spawned (mesa.Agent)
Remove Selfstatement--
Do AllstatementAgents (list<any>)-
Set AllstatementAgents (list<any>), Value (any)-
GroupbyexpressionAgents (list<any>)Groups (dict<string, any>)
Get Model Propertyexpression-Value (any)
Get Agent Countexpression-Count (int)
Get NeighborsexpressionPosition (tuple)Neighbors (list<any>)
Get CellexpressionX (int), Y (int)Cell (mesa.Cell), Agents (list<any>)
Get Empty Cellsexpression-Cells (list<any>)
Get Positionexpression-Position (tuple), X (int), Y (int)
Select AgentsexpressionAgents (list<any>), Filter (bool)Selected (list<any>)
Shuffle AgentsexpressionAgents (list<any>)Shuffled (list<any>)
Sort AgentsexpressionAgents (list<any>)Sorted (list<any>)
Get AllexpressionAgents (list<any>)Values (list<any>)
Collect Datastatement--
Model ReporterexpressionValue (any)-
Agent ReporterexpressionValue (any)-
Get Dataexpression-Data (mesa.DataFrame)
Random IntexpressionMin (int), Max (int)Value (int)
Random FloatexpressionMin (float), Max (float)Value (float)
Random ChoiceexpressionItems (list<any>)Choice (any)
Random Boolexpression-Value (bool)
Triggerexpression--
Get Stepexpression-Step (int)
Sim Model Refstatement--
Sim Step Controllerstatement-Step # (int), Is Last (bool)
Sim Data LoggerstatementValue (any), Label (str)-
Sim CouplingexpressionSource (any)Coupled (any)

Weave AI (50 nodes)

MCP servers, agents, and orchestration -- tool/resource/prompt definitions, message building, agent loops, memory, error handling, HTTP, JSON, RAG, and multi-agent patterns.

NodeTypeInputsOutputs
Tool Defexpression-Input (mcp.ToolInput)
Tool ReturnstatementValue (mcp.ToolOutput)-
Tool ErrorstatementMessage (str)-
Resource Defexpression-URI Params (dict<string, any>)
Resource ReturnstatementContent (mcp.ToolOutput)-
Resource Templateexpression-Params (dict<string, any>)
Prompt Defexpression-Args (dict<string, any>)
Prompt ReturnstatementMessages (list<any>)-
Get Tool ArgexpressionInput (mcp.ToolInput)Value (any)
Build MessageexpressionContent (str)Message (ai.Message)
Build Message ListexpressionMsg 0 (ai.Message), Msg 1 (ai.Message), Msg 2 (ai.Message), Msg 3 (ai.Message), Msg 4 (ai.Message), Msg 5 (ai.Message), Msg 6 (ai.Message), Msg 7 (ai.Message), Msg 8 (ai.Message), Msg 9 (ai.Message)Messages (list<any>)
Format Promptexpression-Text (str)
Agent Startexpression-Input (str)
Agent EndstatementOutput (str)-
User MessageexpressionContent (str)Message (ai.Message)
Assistant MessageexpressionContent (str)Message (ai.Message)
System MessageexpressionContent (str)Message (ai.Message)
Append MessageexpressionMessages (list<any>), Message (ai.Message)Messages (list<any>)
Message HistorystatementMessage (ai.Message)History (list<any>)
On Tool CallstatementResponse (ai.Response)Tool Call (ai.ToolCall), Text (str)
Dispatch ToolstatementTool Call (ai.ToolCall)Result (ai.ToolResult)
Tool Result MessageexpressionTool Call (ai.ToolCall), Result (ai.ToolResult)Message (ai.Message)
Memory WritestatementKey (str), Value (any)-
Memory ReadexpressionKey (str)Value (any), Found (bool)
Loop Backstatement--
Human Inputstatement-Input (str)
Get Persona Propexpression-Value (str)
Try Catchstatement-Error (str)
Retrystatement-Attempt (int), Error (str)
Parallelstatement-Results (list<any>)
Http RequeststatementURL (str), Headers (dict), Body (str)Body (str), Status (int), Headers (dict)
Json ParseexpressionText (str)Data (dict)
Json StringifyexpressionData (dict)Text (str)
Dict GetexpressionData (dict)Value (any)
File ReadstatementPath (str)Content (str), Exists (bool)
File WritestatementPath (str), Content (str)-
Embed TextstatementText (str)Embedding (list<any>), Dims (int)
Chunk TextexpressionText (str)Chunks (list<any>), Count (int)
CachestatementKey (str), Value (any)Value (any), Hit (bool)
Delaystatement--
Agent Refstatement--
Gatewayexpression--
Request RouterstatementRequest (str)-
Response AggregatorstatementData (any)Result (any)
Server LoggerstatementData (any), Label (str)-
Emit EventstatementPayload (any)-
On Eventexpression-Payload (any)
On Agent Completeexpression-Result (any), Agent Name (str)
On Agent Errorexpression-Error (str), Agent Name (str)
On Webhookexpression-Body (dict), Headers (dict), Path (str)

Libraries

Composable library nodes that can be enabled in any framework project.

Anthropic (8 nodes)

Claude AI -- chat completions, streaming, structured output via Anthropic SDK

NodeTypeInputsOutputs
CompletionstatementMessages (list<any>)Response (claude.Response), Text (str)
StreamstatementMessages (list<any>)Chunk (str), Full Text (str)
Parse ResponseexpressionResponse (claude.Response)Text (str), Stop Reason (str), Tool Calls (list<any>), Input Tokens (int), Output Tokens (int)
Structured OutputstatementMessages (list<any>)Data (dict), Response (claude.Response)
Check ResponsestatementText (str)Matched (bool)
Get UsageexpressionResponse (claude.Response)Usage (str)
Model Selectexpression-Model (str)
Vision MessageexpressionText (str), Image URL (str)Message (claude.Message)

Celery (8 nodes)

Task queues — background jobs, scheduling, workers

NodeTypeInputsOutputs
Create Appstatement-App (celery.App)
TaskstatementApp (celery.App)Task (celery.Task)
Send TaskstatementTask (celery.Task), Args (list<any>)Result (celery.AsyncResult)
Get ResultstatementAsyncResult (celery.AsyncResult)Value (any)
SchedulestatementApp (celery.App), Task (celery.Task)-
Crontabexpression-Schedule (object)
Task IdexpressionAsyncResult (celery.AsyncResult)Task ID (str)
Task StatusexpressionAsyncResult (celery.AsyncResult)Status (str)

ChromaDB (8 nodes)

Vector database for AI applications

NodeTypeInputsOutputs
Create Clientstatement-Client (chroma.Client)
Get CollectionstatementClient (chroma.Client)Collection (chroma.Collection)
Add DocumentsstatementCollection (chroma.Collection), Documents (list<any>), IDs (list<any>), Metadatas (list<any>)-
QuerystatementCollection (chroma.Collection), Query Texts (list<any>)Results (chroma.QueryResult)
DeletestatementCollection (chroma.Collection), IDs (list<any>)-
UpsertstatementCollection (chroma.Collection), Documents (list<any>), IDs (list<any>), Metadatas (list<any>)-
CountexpressionCollection (chroma.Collection)Count (int)
Get FieldexpressionResults (chroma.QueryResult)Result (list<any>)

Discord (6 nodes)

Discord webhooks — messages, embeds, formatting

NodeTypeInputsOutputs
Send MessagestatementWebhook URL (str), Content (str)-
Send EmbedstatementWebhook URL (str), Description (str)-
Set WebhookstatementWebhook URL (str)Webhook URL (str)
Build EmbedexpressionDescription (str)Embed (discord.Embed)
Mention Roleexpression-Mention (str)
Format CodeexpressionText (str)Formatted (str)

ElevenLabs (4 nodes)

Text-to-speech — generate natural voice audio

NodeTypeInputsOutputs
GeneratestatementText (str), API Key (str)Audio Path (str)
Set Api KeystatementAPI Key (str)-
Voice Idexpression-Voice ID (str)
Model Idexpression-Model ID (str)

Email (5 nodes)

Send emails via SMTP — Gmail, Outlook, custom servers

NodeTypeInputsOutputs
SendstatementUsername (str), Password (str), To (list<any>), Subject (str), Body (str)-
Send HtmlstatementUsername (str), Password (str), To (list<any>), Subject (str), HTML Body (str)-
Build Addressexpression-Formatted (str)
Build RecipientsexpressionTo 1 (str), To 2 (str), To 3 (str)Recipients (list<any>)
Smtp Configexpression-Config (object)

GitHub (8 nodes)

GitHub API — issues, PRs, files, comments

NodeTypeInputsOutputs
Set TokenstatementToken (str)-
Create IssuestatementToken (str), Repo (str), Title (str), Body (str)Issue URL (str)
Create CommentstatementToken (str), Repo (str), Issue # (int), Body (str)-
Get Pr DiffstatementToken (str), Repo (str), PR # (int)Diff (str)
Repo Nameexpression-Repo (str)
Get FileexpressionToken (str), Repo (str), Path (str)Content (str)
List IssuesexpressionToken (str), Repo (str)Issues (list<any>)
List PrsexpressionToken (str), Repo (str)PRs (list<any>)

Google AI (6 nodes)

Generate content with Google Gemini models via the google-genai SDK

NodeTypeInputsOutputs
GeneratestatementPrompt (str), System Prompt (str)Response (gemini.Response)
StreamstatementPrompt (str), System Prompt (str)Chunk Text (str), Full Text (str)
Set Api KeystatementAPI Key (str)-
Model Selectexpression-Model (str)
Get TextexpressionResponse (gemini.Response)Text (str)
Get UsageexpressionResponse (gemini.Response)Usage (str)

HTTPX (8 nodes)

HTTP client — GET, POST, PUT, DELETE with JSON parsing

NodeTypeInputsOutputs
GetstatementURL (str), Headers (any)Response (http.Response)
PoststatementURL (str), Body (any), Headers (any)Response (http.Response)
PutstatementURL (str), Body (any), Headers (any)Response (http.Response)
Delete ReqstatementURL (str), Headers (any)Response (http.Response)
Build HeadersexpressionKey (str), Value (str), Key 2 (str), Value 2 (str)Headers (any)
Get JsonexpressionResponse (http.Response)Data (any)
Get TextexpressionResponse (http.Response)Text (str)
Get StatusexpressionResponse (http.Response)Status (int)

Jinja2 (4 nodes)

Template engine — generate formatted text, emails, reports

NodeTypeInputsOutputs
RenderstatementTemplate (str), Variables (object)Result (str)
Render FilestatementFile Path (str), Variables (object)Result (str)
Templateexpression-Template (str)
Build VarsexpressionKey 1 (str), Value 1 (any), Key 2 (str), Value 2 (any)Variables (object)

LiteLLM (10 nodes)

Provider-agnostic LLM calls -- OpenAI, Anthropic, Ollama, Groq, Mistral

NodeTypeInputsOutputs
CompletionstatementMessages (list<any>), System Prompt (str)Response (litellm.Response)
StreamstatementMessages (list<any>), System Prompt (str)Chunk Text (str), Full Text (str)
Set Api KeystatementAPI Key (str)-
Model Selectexpression-Model (str)
FallbackexpressionPrimary (str), Fallback (str)Models (list<any>)
EmbedstatementText (str)Embedding (litellm.Embedding)
Get TextexpressionResponse (litellm.Response)Text (str)
Get UsageexpressionResponse (litellm.Response)Tokens (int)
Build MessageexpressionContent (str)Message (litellm.Message)
Build MessagesexpressionMsg 0 (litellm.Message), Msg 1 (litellm.Message), Msg 2 (litellm.Message), Msg 3 (litellm.Message)Messages (list<any>)

MarkItDown (6 nodes)

Convert documents, URLs, and text to Markdown

NodeTypeInputsOutputs
Create Converterstatement-Converter (md.Converter)
Convert FilestatementConverter (md.Converter), Path (str)Text (str), Title (str)
Convert URLstatementConverter (md.Converter), URL (str)Text (str), Title (str)
Convert TextstatementConverter (md.Converter), Content (str)Markdown (str)
Get TextexpressionResult (md.Result)Text (str), Title (str)
Get MarkdownexpressionResult (md.Result)Markdown (str)

Neo4j (10 nodes)

Graph database — Cypher queries, nodes, relationships

NodeTypeInputsOutputs
Connectstatement-Driver (neo4j.Driver), Session (neo4j.Session)
ClosestatementDriver (neo4j.Driver)-
Run CypherstatementSession (neo4j.Session), Query (str), Params (object)Result (neo4j.Result)
Build Cypherexpression-Query (str)
Create NodestatementSession (neo4j.Session), Properties (object)Node ID (int)
Create RelationshipstatementSession (neo4j.Session), From ID (int), To ID (int), Properties (object)-
DeletestatementSession (neo4j.Session), Query (str)-
Get RecordsexpressionResult (neo4j.Result)Records (list<any>)
Get ValuesexpressionRecords (list<any>)Values (list<any>)
Record CountexpressionRecords (list<any>)Count (int)

NetworkX (20 nodes)

Graph analysis and network science

NodeTypeInputsOutputs
Create Graphstatement-Graph (nx.Graph)
Add NodestatementGraph (nx.Graph), Node (any)-
Add EdgestatementGraph (nx.Graph), From (any), To (any), Weight (float)-
Has NodeexpressionGraph (nx.Graph), Node (any)Exists (bool)
Has EdgeexpressionGraph (nx.Graph), From (any), To (any)Exists (bool)
NeighborsexpressionGraph (nx.Graph), Node (any)Neighbors (list<any>)
DegreeexpressionGraph (nx.Graph), Node (any)Degree (int)
Node CountexpressionGraph (nx.Graph)Count (int)
Complete GraphexpressionNodes (int)Graph (nx.Graph)
Random GraphexpressionNodes (int), Probability (float)Graph (nx.Graph)
Barabasi AlbertexpressionNodes (int), Edges/Node (int)Graph (nx.Graph)
Grid 2dexpressionRows (int), Cols (int)Graph (nx.Graph)
Shortest PathexpressionGraph (nx.Graph), Source (any), Target (any)Path (list<any>)
Shortest Path LengthexpressionGraph (nx.Graph), Source (any), Target (any)Length (int)
Has PathexpressionGraph (nx.Graph), Source (any), Target (any)Connected (bool)
Degree CentralityexpressionGraph (nx.Graph)Centrality (dict<string, any>)
Betweenness CentralityexpressionGraph (nx.Graph)Centrality (dict<string, any>)
PagerankexpressionGraph (nx.Graph)Ranks (dict<string, any>)
Connected ComponentsexpressionGraph (nx.Graph)Components (list<any>), Count (int)
Is ConnectedexpressionGraph (nx.Graph)Connected (bool)

OpenAI (9 nodes)

Official OpenAI SDK -- chat completions, streaming, embeddings

NodeTypeInputsOutputs
CompletionstatementMessages (list<any>), System Prompt (str)Response (openai.Response)
StreamstatementMessages (list<any>), System Prompt (str)Chunk Text (str), Full Text (str)
Set Api KeystatementAPI Key (str)-
Model Selectexpression-Model (str)
EmbedstatementText (str)Embedding (openai.Embedding)
Get TextexpressionResponse (openai.Response)Text (str)
Get UsageexpressionResponse (openai.Response)Usage (str)
Build MessageexpressionContent (str)Message (openai.Message)
Build MessagesexpressionMsg 0 (openai.Message), Msg 1 (openai.Message), Msg 2 (openai.Message), Msg 3 (openai.Message)Messages (list<any>)

Playwright (10 nodes)

Browser automation — navigate, click, extract, screenshot

NodeTypeInputsOutputs
Launchstatement-Browser (pw.Browser)
New PagestatementBrowser (pw.Browser)Page (pw.Page)
ClosestatementBrowser (pw.Browser)-
NavigatestatementPage (pw.Page), URL (str)-
ClickstatementPage (pw.Page), Selector (str)-
FillstatementPage (pw.Page), Selector (str), Value (str)-
ScreenshotstatementPage (pw.Page)Image Path (str)
Get TextexpressionPage (pw.Page), Selector (str)Text (str)
Get AttributeexpressionPage (pw.Page), Selector (str)Value (str)
Get UrlexpressionPage (pw.Page)URL (str)

Pydantic (6 nodes)

Data validation and schema definition

NodeTypeInputsOutputs
Define Schemaexpression-Schema (pydantic.Schema)
ValidatestatementSchema (pydantic.Schema), Data (dict<string, any>)Validated (dict<string, any>), Errors (str)
Parse JsonstatementSchema (pydantic.Schema), JSON String (str)Result (dict<string, any>), Errors (str)
To DictexpressionModel (dict<string, any>)Data (dict<string, any>)
To JsonexpressionModel (dict<string, any>)JSON (str)
Get FieldexpressionModel (dict<string, any>)Value (any)

Slack (6 nodes)

Slack bot — send messages, upload files, format blocks

NodeTypeInputsOutputs
Send MessagestatementToken (str), Channel (str), Text (str)Response (slack.Response)
Set TokenstatementToken (str)-
Upload FilestatementToken (str), Channel (str), File Path (str), Title (str)-
Format BlocksexpressionText (str)Blocks (slack.Blocks)
Mention Userexpression-Mention (str)
Channel Idexpression-Channel ID (str)

SQLAlchemy (10 nodes)

Database access — SQLite, PostgreSQL, MySQL

NodeTypeInputsOutputs
Connectstatement-Engine (sql.Engine), Connection (sql.Connection)
TransactionstatementConnection (sql.Connection)-
ExecutestatementConnection (sql.Connection), Query (str), Params (dict<string, any>)Result (sql.Result)
QuerystatementConnection (sql.Connection), Query (str)Rows (list<any>)
InsertstatementConnection (sql.Connection), Data (dict<string, any>)-
Create TablestatementConnection (sql.Connection), SQL (str)-
Row CountexpressionResult (sql.Result)Count (int)
Get ColumnexpressionRows (list<any>)Values (list<any>)
Build Queryexpression-Query (str)
Build ParamsexpressionKey 0 (str), Value 0 (any), Key 1 (str), Value 1 (any)Params (dict<string, any>)

Tavily (6 nodes)

Web search and content extraction for AI agents

NodeTypeInputsOutputs
SearchstatementQuery (str)Results (tavily.SearchResult)
ExtractstatementURL (str)Content (str)
Set Api KeystatementAPI Key (str)-
Get AnswerexpressionResults (tavily.SearchResult)Answer (str)
Get UrlsexpressionResults (tavily.SearchResult)URLs (list<any>)
Get ContentsexpressionResults (tavily.SearchResult)Contents (list<any>)

Twitch (8 nodes)

Twitch API — chat, streams, clips, viewer data

NodeTypeInputsOutputs
Send ChatstatementToken (str), Broadcaster ID (str), Message (str)-
Set CredentialsstatementAccess Token (str), Client ID (str)-
Get StreamstatementToken (str), Client ID (str), User Login (str)Stream (twitch.Stream)
Create ClipstatementToken (str), Broadcaster ID (str)Clip URL (str)
Get Viewer CountexpressionStream (twitch.Stream)Count (int)
Get GameexpressionStream (twitch.Stream)Game (str)
Is LiveexpressionStream (twitch.Stream)Live (bool)
Channel Urlexpression-URL (str)

Unstructured (8 nodes)

Document ingestion — PDF, DOCX, HTML, images to text

NodeTypeInputsOutputs
PartitionstatementFile Path (str)Elements (unstruct.Elements)
Partition PdfstatementFile Path (str)Elements (unstruct.Elements)
ChunkstatementElements (unstruct.Elements)Chunks (unstruct.Elements)
Filter CategorystatementElements (unstruct.Elements)Filtered (unstruct.Elements)
To TextsexpressionElements (unstruct.Elements)Texts (list<any>)
To DictsexpressionElements (unstruct.Elements)Dicts (list<any>)
Element CountexpressionElements (unstruct.Elements)Count (int)
Get MetadataexpressionElements (unstruct.Elements)Metadata (list<any>)

Whisper (4 nodes)

Speech-to-text — transcribe audio with OpenAI Whisper

NodeTypeInputsOutputs
TranscribestatementAudio Path (str), Model (whisper.Model)Text (str), Result (whisper.Transcript), Segments (list<any>)
Load Modelstatement-Model (whisper.Model)
Get LanguageexpressionResult (whisper.Transcript)Language (str)
Get TimestampsexpressionResult (whisper.Transcript)Timestamps (list<any>)

X (Twitter) (8 nodes)

X/Twitter API — post tweets, search, reply, threads

NodeTypeInputsOutputs
Post TweetstatementToken (str), Text (str), Media IDs (list<any>)Tweet ID (str)
ReplystatementToken (str), Tweet ID (str), Text (str)-
Set CredentialsstatementBearer Token (str)-
Search TweetsstatementToken (str), Query (str)Tweets (x.SearchResult)
Get Tweet TextexpressionTweet (x.SearchResult)Text (str)
Get Tweet AuthorexpressionTweet (x.SearchResult)Author (str)
Get Tweet MetricsexpressionTweet (x.SearchResult)Metrics (any)
Build ThreadexpressionTweet 0 (str), Tweet 1 (str), Tweet 2 (str)Thread (list<any>)