pipo

pipes + i/o / local / open source / early days

Small pipelines.
Big receipts.

Pipo runs the little glue jobs you keep rewriting: a webhook into SQLite, a folder into ffmpeg, a Telegram bot that answers back. Each one is a tiny YAML file on your machine. Write it yourself, or ask Claude to. Pipo journals every packet and shows you where it landed.

Four pipelines running side by side through Pipo pipo one runner per pipeline
Four pipelines side by side. Click a source on the left to send a packet. 0 delivered

01 · the playground

Pick a pipeline. Poke it.

Send packets, pull the plug mid-flight, break the destination. The file on the left is a real .pipo that passes pipo check; the runner on the right is a toy that copies what the real one does.

heartbeat.pipo

          
runner · running simulated in your browser
    out/heartbeat.jsonl
    journal.dbwhat the runner commits

      02 · agent-first

      Or just ask.

      Pipo ships a Claude Code plugin and an MCP server. Claude writes the file, checks it, dry-runs it on fixtures, then waits. Nothing an agent writes runs until you approve it.

      claude
        dashboard · Agentsnothing yet

        invoice-ping · written by claude-code-pipo · scope author

        
                      

        Approval is tied to a hash of the files. If they change, it's pending again.

        03 · what plugs in

        A short list. On purpose.

        One or more inputs, a few steps, one output. What's here works today; the dashed ones are on the roadmap.

        in

        • http
        • schedule
        • watch
        • telegram
        • push
        • system
        • pipeline
        • mqtt
        • queues

        steps

        • map
        • fn TypeScript
        • filter
        • route
        • loop
        • fan-out
        • tap
        • exec any program
        • agent Claude, Codex, pi, opencode
        • join
        • window

        out

        • sqlite
        • file
        • http
        • telegram
        • stdout
        • pipeline
        • postgres
        • s3

        the same file, four ways in

        • Your editorVS Code schema and highlighting
        • The CLIcheck, test, run, --json everywhere
        • The dashboardbehind your login: live graph, packet inspector, DLQ, a builder that saves the file
        • MCPscoped tokens for agents that operate or author

        What Pipo is and isn't

        pipo is

        • one readable file per pipeline, in Git
        • for personal and small-team glue
        • running on your laptop, or a box you own behind your login
        • happy to be written and run by an agent

        pipo isn't

        • a hosted or multi-user service: one owner, no roles
        • a Kafka, Airflow or BPM replacement
        • exactly-once (it's at-least-once)
        • finished: no packaged release yet

        04 · make it run

        Two commands. Your machine.

        Linux or macOS. The installer checks for Bun ≥ 1.3, Rust and Git, offers to install what's missing, builds the runner and checks the install.

        terminal
        curl -fsSL https://raw.githubusercontent.com/ramigb/pipo/main/install.sh | bash
        pipo ui        # pick your owner login, then the dashboard
        claude code
        /plugin install pipo --marketplace ramigb/pipo

        Then pipo engine start and /mcp. You log in and approve the connection in your browser.