Documentation/ Node reference

Node catalog

Small pieces for serious workflows.

Knodr ships with 35 executable one-shot nodes. Connect typed ports on the canvas, or use the stable type IDs below when authoring through MCP.

35 executable nodes 1 one-shot runtime 1 shared flow format

01 / HOW TO READ THIS PAGE

Names for humans. Type IDs for tools.

The UI shows a display name such as Run Shell Command. A .knodrflow and the MCP authoring tools use its stable type ID, shell.run. Every node exposes named input and output ports; connections are valid only when those ports are compatible.

One-shot boundary: knodr run, the desktop Run button, and MCP start_run execute one invocation of one flow. Persistent triggers and deployments require the separate Knodr Runtime product.

02 / INPUTS & CONTRACTS

Bind one invocation explicitly

Manual Inputinput.manual

Accepts a value from the UI, CLI, or MCP start_run call.

Valueinput.value

Emits a saved constant or a {{var.NAME}} project variable.

Flow Inputflow.input

Declares the named artifacts accepted by a reusable flow contract.

Flow Resultflow.result

Declares and assembles the official result of a contracted flow.

03 / AI & AGENTS

Call models or delegate a coding task

Agent CLIagent.cli

Runs Codex, Claude, Aider, OpenCode, Gemini, or a custom agent command non-interactively.

Agent Runagent.run

Runs an agent through the in-process provider abstraction with bounded tools and output.

LLMai.llm

Sends system and user prompts to OpenAI, Anthropic, or Ollama.

Custom LLMai.llm.custom

Calls an OpenAI-compatible endpoint at a configurable base URL.

UI Automateui.automate

Runs a Windows desktop automation script and returns structured observations.

04 / CODE & SYSTEM

Run commands with explicit boundaries

Run Shell Commandshell.run

Executes a local program directly and captures stdout, stderr, and exit code.

Run Scriptscript.run

Runs inline Python, Node.js, PowerShell, or Bash code.

Start Processprocess.start

Opens a scope around a long-lived local process.

End Processprocess.kill

Closes the paired process scope and guarantees teardown.

Run Container Flowcontainer.run

Runs a complete flow in an ephemeral Docker or Podman container.

Start Service Containercontainer.service.start

Opens a scope around a service container.

End Service Containercontainer.service.stop

Closes the paired container scope and guarantees teardown.

05 / FILES, NETWORK & GIT

Move data across useful boundaries

Read Filefile.read

Reads UTF-8 text or base64-encoded binary content from disk.

Write Filefile.write

Overwrites, appends, or passes incoming content through without writing.

HTTP Requesthttp.request

Sends an HTTP request and exposes status, body, headers, and parsed JSON.

API Queryapi.query

Builds an authenticated JSON request and extracts a field from the response.

Git Opgit.op

Runs local operations including status, diff, log, add, and commit.

Git Remotegit.remote

Runs clone, fetch, pull, push, checkout, and worktree operations.

JSON to Textjson.text

Renders JSON as text, optionally selecting a value with JSON Pointer.

06 / FLOW & CONTROL

Shape execution and compose results

Ifcontrol.if

Routes one value to a true or false output.

Gatecontrol.gate

Routes a payload using a separate predicate input.

Loopcontrol.loop

Repeats a bounded body a configured number of times.

Delaydelay

Holds a message for a duration, then passes it on.

Splitflow.split

Scatters a JSON array into one message per element.

Mergemerge.join

Joins branches as an ordered list, a forwarder, or gathered scatter parts.

Coalescelogic.coalesce

Selects the first arriving non-empty value across alternative branches.

Assertlogic.assert

Fails the run when an expected condition is not met.

Run Subflowflow.run

Runs another .knodrflow as a separate local Knodr process.

Concatenate Texttext.concat

Joins two text values with a separator.

Format Texttext.format

Composes text from dynamic wired inputs and a template.

Previewoutput.preview

Displays the terminal value and makes it visible as a flow result.

07 / EXACT SCHEMAS

Discover before you author

Parameters and ports are the contract. Inspect the installed version instead of guessing, especially for dynamic nodes such as merge.join and text.format.

PowerShell · CLI catalog
$ knodr list-nodes
$ knodr list-nodes --output-format json
1list_nodesFind type IDs 2get_node_schemaRead ports & parameters 3apply_flowAuthor atomically