DuckPipe

A serverless-first, DuckDB-native pipeline orchestrator.

View the Project on GitHub woozyking/duckpipe

AGENTS.md

Guidance for AI coding agents working in this repository. Humans: see README.md (usage, mental model) and DESIGN.md (rationale, prior-art check) instead — this file exists so an agent doesn’t have to re-derive the below from scratch, not to duplicate either of those.

What this is

duckpipe: a serverless-first, DuckDB-native pipeline orchestrator (a library, not a platform). A uv workspace: duckpipe itself at repo root, duckpipe-tuning (a genuinely separate, optional package) under packages/.

Setup, test, lint

uv sync --group dev
uv run pytest                                        # duckpipe
uv run --directory packages/duckpipe-tuning pytest   # duckpipe-tuning
uv run ruff check .

Two tests in tests/test_examples.py skip themselves automatically when their prerequisite isn’t available — not a failure, no extra config needed to get a green run without them:

examples/08_browser_wasm/’s own runnable bundle (duckpipe_src/, sample_data/) is generated by prepare_bundle.py and gitignored, not committed — run that script before trying to serve or test that example directly.

Repo layout

Conventions already in force here — match them, don’t relitigate them

Before proposing a change

Read DESIGN.md first — most “why not just do X instead” questions are already answered there (it explicitly tracks open questions too, in case yours is one of them). Run ruff check . and the full test suite before considering a change done.