01 / INSTALLATION
Choose the package for where Knodr will run.
Knodr supports Windows x64, Linux x64, and Apple silicon macOS. Desktop packages include the visual app, CLI, and MCP server; headless packages contain the self-contained CLI and MCP server for terminals and CI.
.knodrflow files. Build a flow on the desktop, commit it to Git, and run it in CI without exporting or converting it.01A / WINDOWS X64
Install Knodr on Windows
The standard setup installs the desktop app, knodr.exe CLI, MCP server, and Windows UI-automation component for the current user. It does not require a separate .NET runtime or administrator-wide install.
-
01
Download the setup
Get Knodr-win-Setup.exe. The early build is unsigned; if SmartScreen appears, choose More info → Run anyway after confirming the file came from
dl.knodr.com. -
02
Run the installer
Open the downloaded file, finish setup, then launch Knodr from the Start menu. The active release is stored under
%LOCALAPPDATA%\Knodr\current. -
03
Enable terminal access
Add
%LOCALAPPDATA%\Knodr\currentto your userPATH, or invokeknodr.exeby its full path.
$ $env:Path += ";$env:LOCALAPPDATA\Knodr\current" $ knodr --version $ knodr doctor
For an unpacked install, download Knodr-win-Portable.zip, extract it to a permanent folder, and run Knodr.App.exe or .\knodr.exe there. The portable build does not configure PATH or automatic updates.
01B / LINUX X64
Install Knodr on Linux
Use the AppImage for the desktop app. For a headless CLI, install the Homebrew Formula or use install.sh on a machine without Homebrew. Every option is self-contained and does not require the .NET runtime.
Desktop AppImage
-
01
Download the app
Get Knodr-linux.AppImage and keep it wherever you store applications.
-
02
Make it executable
Run
chmod +x Knodr-linux.AppImage. Install a FUSE 2 runtime if your distribution does not already provide one:libfuse2t64on Ubuntu 24.04, orfuse/libfuse2on many other distributions. -
03
Launch it
Run
./Knodr-linux.AppImage. If FUSE is unavailable, use./Knodr-linux.AppImage --appimage-extract-and-run.
$ chmod +x Knodr-linux.AppImage $ ./Knodr-linux.AppImage
Headless CLI and MCP server
The same Formula supports Linux x64 and Apple silicon macOS. Homebrew verifies the immutable release checksum, publishes knodr on PATH, and manages upgrades and removal.
$ brew install smurz/tap/knodr $ knodr --version $ knodr doctor
Without Homebrew: the per-user installer verifies the archive, stores immutable versions under ~/.local/share/knodr/, atomically updates the current symlink, and links ~/.local/bin/knodr. Do not run it with sudo.
$ ( set -eu; f=$(mktemp); trap 'rm -f "$f"' EXIT INT TERM; curl -fSL https://dl.knodr.com/install.sh -o "$f"; sh "$f" ) $ export PATH="$HOME/.local/bin:$PATH" $ knodr --version $ knodr doctor
If ~/.local/bin is not already on PATH, add the export to your shell profile. The installer refuses to overwrite an unmanaged file or symlink named knodr at that location.
ui.automate, suspended/scoped-process operations, and container service nodes are unavailable on Linux in this phase. Flows that use those capabilities will not run there.01C / MACOS · APPLE SILICON
Install Knodr on macOS
The macOS package supports Apple silicon Macs and includes the desktop app, CLI, MCP server, Keychain integration, scoped processes, and the Accessibility-based automation component. Intel Macs are not supported yet.
-
01
Download the package
Get Knodr-osx-Setup.pkg and open it. For an unpacked app, use the portable ZIP instead.
-
02
Approve the first launch
The early build is unsigned and not notarized. If Gatekeeper blocks it, open System Settings → Privacy & Security and choose Open Anyway for Knodr.
-
03
Allow automation when needed
Before using
ui.automateor MCP UI inspection, enable the bundled Knodr automation component under Privacy & Security → Accessibility.
Terminal-only install
The Homebrew Formula installs the self-contained Apple silicon CLI, verifies its SHA-256 checksum, and publishes it on PATH:
$ brew install smurz/tap/knodr $ knodr --version $ knodr doctor
Upgrade with brew upgrade knodr and remove it with brew uninstall knodr. The Linux install.sh intentionally rejects macOS.
01D / CI RUNNERS
Connect Knodr to CI
For an ephemeral Linux x64 runner, extract the headless tarball, add its directory to PATH, validate the committed flow, and run it. The binary is self-contained: hosted Ubuntu needs no .NET runtime, desktop packages, libsecret, or keyring.
- uses: actions/checkout@v6
- name: Install knodr CLI
run: |
mkdir -p "$HOME/.local/knodr"
curl -fSL https://dl.knodr.com/knodr-linux-x64.tar.gz | tar xz -C "$HOME/.local/knodr"
echo "$HOME/.local/knodr" >> "$GITHUB_PATH"
- name: Validate and run the flow
env:
KNODR_CREDENTIAL_OPENAI: ${{ secrets.OPENAI_API_KEY }}
run: |
knodr doctor flows/ci.knodrflow --deep --output-format json
knodr validate flows/ci.knodrflow
knodr run flows/ci.knodrflow --timeout 15m --output-format json
knodr_flow:
image: debian:bookworm-slim
variables:
KNODR_CREDENTIAL_OPENAI: $OPENAI_API_KEY
before_script:
- apt-get update && apt-get install -y --no-install-recommends ca-certificates curl tar
- mkdir -p /opt/knodr
- curl -fSL https://dl.knodr.com/knodr-linux-x64.tar.gz | tar xz -C /opt/knodr
- export PATH="/opt/knodr:$PATH"
script:
- knodr doctor flows/ci.knodrflow --deep --output-format json
- knodr validate flows/ci.knodrflow
- knodr run flows/ci.knodrflow --timeout 15m --output-format json
CI requirements and secrets
- Use
KNODR_CREDENTIAL_<UPPER_SNAKE_NAME>for protected CI secrets; never commit a secret or pass it through--var. - The stable tarball URL follows the latest release. For reproducible jobs, pin an immutable artifact such as
https://dl.knodr.com/knodr-<version>-linux-x64.tar.gz. - If a flow uses
agent.cli, install its agent command in the job and use API keys rather than interactive login. If it uses Python, ensure thepythoncommand exists; minimal Debian/Ubuntu images may needpython-is-python3. - On a self-hosted Windows runner, install the standard or portable Windows bundle for the runner service account, add its directory to that account's
PATH, and restart the runner service before executingknodr.
See the small CI flow tutorial for exit-code handling, or the multi-agent CI tutorial for complete GitHub Actions, GitLab CI, and self-hosted Windows examples with reports and SARIF.
02 / DESKTOP UI
Build and debug on the canvas
The desktop app is the quickest way to understand a flow. Its canvas is the graph; the palette adds work; and the inspector shows the selected node and the values produced by a run.
Add and connect nodes
Use the searchable palette to add a node. Configure it in the node editor, then drag from an output port to a compatible input port.
Execute the graph
Select Run. Independent branches run concurrently and each node reports its current state on the canvas.
Follow the data
Select a node to inspect its inputs, outputs, errors, and timing. Double-click a node when you need to edit its parameters.
Pause or replay
Toggle a breakpoint from the node header gutter, step or continue a paused run, and use Replay to rerun a selected node with its previous inputs.
Plaintext project variables
Use Project → Configuration for non-sensitive values referenced as {{var.NAME}}. These values are saved in the flow, so they are suitable for flags, paths, and defaults—not credentials.
03 / SECRETS
Store references in flows, never secret values
Nodes that need credentials use a name such as openai-personal in their credentialRef field. Knodr resolves the value only when the node runs.
Settings → Secrets stores values with Windows DPAPI in %APPDATA%\Knodr\secrets.dat. The settings screen lists names, not values.
Settings → Secrets stores values through the freedesktop Secret Service API (libsecret), backed by whatever keyring is running — GNOME Keyring, KWallet, or similar. At-rest protection depends on that backend and how it is configured; the Secret Service API itself does not guarantee encryption.
A .knodrflow or project bundle contains the credential name only. Secret values are not serialized into flow files or returned through MCP tools.
KNODR_CREDENTIAL_<UPPER_SNAKE_NAME> wins over the stored value, which is useful for CI and per-run environments. On Linux this is also the supported headless path: it works with no keyring running at all, which is what CI runners and containers should use.
Add a secret
- Open Settings → Secrets.
- Enter a memorable name and the secret value, then select Save.
- Enter that same name in the node's
credentialReffield.
$ $env:KNODR_CREDENTIAL_OPENAI_PERSONAL = "your-api-key" $ knodr run .\flows\assistant.knodrflow
--var values are plaintext configuration. Use credentialRef and the secret store or credential environment variables for sensitive values.04 / CLI
Validate, run, and automate from a terminal
The CLI is designed for local scripts and CI. Human-readable output is the default; add --output-format json when another program will consume the result.
Check a flow before running it
$ knodr validate .\flows\main.knodrflow $ knodr doctor .\flows\main.knodrflow
Run with input and variables
$ knodr run .\flows\review.knodrflow ` --input "Review the staged changes" ` --var MODE=strict ` --timeout 2m $ Get-Content .\prompt.txt -Raw | knodr run .\flows\review.knodrflow --output-format json
--input, --input-file, or redirected stdin binds to a flow with exactly one Manual Input node. Repeat --var NAME=value for runtime overrides, or use --vars-file with a KEY=VALUE file.
Useful commands
knodr list-nodesList the node types available in this release.knodr organize flow.knodrflowAuto-arrange a flow and save it in place.knodr doctor [flow]Check agent CLIs, credentials, and optional live authentication.knodr convert flow.knodrflow --to jsonConvert explicitly between canonical YAML and legacy-compatible JSON.knodr run --helpSee every input, concurrency, timeout, and output option.05 / MCP
Give an agent the Knodr toolset
knodr mcp starts a local stdio MCP server. It exposes the node catalog, flow authoring and validation, run control and observability, plus node-level debugging. The --project directory is the base for relative flow paths and run history.
Register the server in an MCP client
Add a server entry to the configuration used by your MCP client. Use absolute paths so the client can start Knodr regardless of its working directory.
{
"mcpServers": {
"knodr": {
"command": "C:\\Users\\you\\AppData\\Local\\Knodr\\current\\knodr.exe",
"args": [
"mcp",
"--project",
"C:\\work\\my-project"
]
}
}
}
Restart the MCP client after changing its configuration. If you use the portable build, point command at the extracted knodr.exe instead.
{
"mcpServers": {
"knodr": {
"command": "/home/you/.local/share/knodr/current/knodr",
"args": [
"mcp",
"--project",
"/home/you/work/my-project"
]
}
}
}
On Linux, point command at ~/.local/share/knodr/current/knodr — the path install.sh maintains — or the knodr binary extracted from the AppImage.
Use the tools as a workflow
- Discover: call
list_nodesandget_node_schemabefore choosing node types and ports. - Author: scaffold a project or flow, then use
add_node,set_node_params, andconnect_nodes. - Check: call
organize_flowandvalidate_flow. Fix validation errors before execution. - Run: call
start_run, then pollget_run_status; use logs and snapshots when a run needs inspection.
“Using the Knodr tools, inspect the node catalog, create a flow that reads a file and summarizes it with an LLM, validate and organize the flow, then run it with a sample path.”
Restrict execution when needed
Add --read-only to the MCP arguments to remove execution and node-debugging tools. Catalog, validation, and flow-authoring tools remain available, so use filesystem permissions as the boundary when the client must not edit flows.
06 / REFERENCE & TUTORIALS
Start small. Scale to production patterns.
Go from a two-node first flow to production-derived multi-agent systems. Every tutorial explains the runtime contract and includes a downloadable .knodrflow.
Available nodes
Inputs, agents, AI, system tools, files, Git, HTTP, control flow, and outputs.
Open node catalog → Tutorial · 2 nodesCI test flow
Put a test command, timeout, failure policy, and output into a versioned flow.
Build the CI flow → Tutorial · 4 nodesAgent tools & skills
Author and run an agent flow through MCP, then wrap it in a reusable AI-client skill.
Build the agent tool → Ready example · 63 nodesDecision panel
Run competing architects, specialist critics, and a bounded rework loop from a Claude skill.
Run the decision panel → CI example · 19 nodesMulti-agent review in CI
Review pull-request diffs with four model vendors, consolidate findings, and publish reports and SARIF from hosted Ubuntu, GitLab, or a self-hosted Windows runner.
Add multi-agent review to CI →More to come
Grow the library with us.
Next topics can expand into flow contracts, UI automation, containers, subflows, and deployment patterns.