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.1

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.1
File Size Uploaded Provenance
kpipeliner-1.13.1.tar.gz 258.8 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 527.3 kB

Release files / kpipeliner-1.13.1.tar.gz

Download URL kpipeliner-1.13.1.tar.gz
Size 258.8 kB
Tags Source
SHA-256 checksum
How to use checksums
3aba1417fb7436786079c96fe0c184ac1ee014c9a2491144d9e5264c428308a5
BLAKE2b-256 checksum
How to use checksums
a4a1fea05338b72bb6f2ecbf8b65b7cbadab2e478eaa839c3b521fcf98b2511a
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.1-py3-none-any.whl

Download URL kpipeliner-1.13.1-py3-none-any.whl
Size 268.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ddd3fe15eca6ad42674c05153768b94bb4a9238149860fe84015071e279e688
BLAKE2b-256 checksum
How to use checksums
ddc23174a93e6c6d16ef4ebb9161bb8a2e1bb0afc9fc8a4edb459e3d24921afa
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.1

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