Skip to main content

kpipeliner

A node-based pipeline manager. A pipeline is a graph of nodes; each node is a standalone Python program (its own subprocess, optionally its own venv/conda/pixi environment) with typed inputs and outputs declared in YAML. Build and run pipelines from the CLI (kpl), a visual web GUI, or hand them over to an LLM through MCP.

kpipeliner GUI

Highlights

  • Graph = YAML. Connections are just strings (nodes.<name>.<output>) — no hidden edge list, easy to read, easy to script.
  • Subprocess isolation. Every node runs on its own, with its own Python environment if it needs one; a crash in one node never takes down another.
  • Caching by default. Node outputs are cached per run-UUID; re-running a pipeline only recomputes what actually changed.
  • CLI + GUI + MCP. Script it, click through it in the browser, or connect an MCP client and let an LLM design/inspect/run it for you.
  • Groups & reusable components. Bundle nodes in the GUI and export them as drag-and-drop components for other pipelines.

Install

kpipeliner is a normal Python package — installing it is the whole installation (dependencies, the prebuilt web GUI and the kpl command; no Node.js, no installer script). With uv:

uv tool install kpipeliner          # `kpl` ends up on your PATH
kpl --help

or into an environment of your own: uv pip install kpipeliner (or pip install kpipeliner).

Optional extras — nothing imports them unless you use the feature, so leaving them out is fine:

uv tool install "kpipeliner[mcp]"    # `kpl mcp` / `kpl gui --mcp` (LLM client access)
uv tool install "kpipeliner[kwui]"   # `kpl run --kwui` (a web UI per node)
uv tool install "kpipeliner[all]"    # both

Configuration lives in a config.yaml that ships with the package; the first run copies it to ~/.config/kpipeliner/config.yaml (or $KPL_HOME/config.yaml) so your edits survive upgrades. kpl config prints its location.

Developing kpipeliner itself: clone the repository and run uv pip install -e . (or uv sync --all-extras) — an editable install; the checkout's own config.yaml is used. To build the package: uv build (rebuild the GUI first with npm run build in kpipeline_gui/frontend if the frontend changed — the built dist/ is what ships).

Quick start

mkdir my_pipeline && cd my_pipeline
kpl init                 # creates graph_config.yaml, data/, cache/
kpl list                 # see available node types
kpl add <node_type>      # add a node instance
kpl tree                 # inspect the graph
kpl run                  # run it (or: kpl gui to do all of this visually)

Commands

Command Description
kpl init Initialize a pipeline in the current directory
kpl gui Launch the web GUI (port 8601+)
kpl gui --mcp GUI + an MCP endpoint at /mcp, same port
kpl mcp Headless MCP server only — no GUI/REST API
kpl list List available node types
kpl add <type> [name] Add a node instance to the graph
kpl run [node] Run the declared outputs (or one node) + dependencies
kpl run_debug [node] Same, with full log output
kpl run --kwui Run behind a per-node web UI (kwebui)
kpl kwui design <node_type> Design a node's web UI visually (kwebui edit mode)
kpl tree Print the graph with dependencies and I/O
kpl status Show cached/frozen state per node
kpl clean [node] Clear cache (all nodes, or one)
kpl kwui init Create workflow.py for kwui mode in this pipeline
kpl base_node create Scaffold a new node type in the current directory
kpl base_node install [--node_name N] Install the current directory as a node type
kpl base_node uninstall <name> Remove an installed node type
kpl node_env install [--node_type T] Install a node's Python environment
kpl uninstall Remove kpl from your PATH

Run any command with --help for its full option list.

Documentation

  • User Guide — the full walkthrough: CLI and GUI workflows, groups, custom nodes, MCP, kwui mode, and the graph_config.yaml/node_config.yaml/config.yaml reference.
  • kpipeliner.md — a self-contained agent guide for building pipelines/nodes (also installed as a Claude Code skill).
  • Readme — version history / changelog.

License

Apache License 2.0 — see LICENSE.

Metadata

Release files for kpipeliner 1.13.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kpipeliner 1.13.0
File Size Uploaded Provenance
kpipeliner-1.13.0.tar.gz 256.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for kpipeliner 1.13.0
File Interpreter ABI Platform
kpipeliner-1.13.0-py3-none-any.whl Python 3 none any Details

Total release size: 522.9 kB

Release files / kpipeliner-1.13.0.tar.gz

Download URL kpipeliner-1.13.0.tar.gz
Size 256.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0e37ed97902acd5242cfffee404ab9fd3798849b2211e224de1ad7536c444a8c
BLAKE2b-256 checksum
How to use checksums
2df3bb355fe3c33af159421c2782050eb7e5f2822d3d0dddb4711c58c24fe73e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / kpipeliner-1.13.0-py3-none-any.whl

Download URL kpipeliner-1.13.0-py3-none-any.whl
Size 266.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a2d2624e261d1bb8438d6b0a9395992bc1c6ffa6b4422cad2067921b38bb227
BLAKE2b-256 checksum
How to use checksums
33056fa0bb131bb1f36a88bc1ea87a619404d9e0ec0bd91e2cfeed23f60f2613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for kpipeliner 1.13.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page