cairn
An open-source control plane for governed ModelOps.
Fine-tune, evaluate, promote, and serve models as single governed commands —
cost-capped before the GPU spins up, policy-gated, and audited end to end.
Docs · Install · ModelOps lifecycle · Governance · Waitlist
What is cairn?
cairn runs the work behind AI as governed commands. You declare an outcome — gate a dataset, fine-tune a model, evaluate it against a baseline, promote it, serve it — and cairn drives the tools underneath, enforces the guardrails, and records exactly what ran.
The engine is domain-neutral. Everything that knows about a domain lives in a pack; everything that touches a tool is an operator. The engine never imports a pack — that one-way dependency is what lets the same machinery run fine-tuning, dataset checks, model evaluation, or incident response, and lets any operator inherit the budget, policy gate, and audit for free.
cairn is open source (Apache 2.0) and self-hosted by default: your keys, your GPUs, your logs — nothing leaves your perimeter. A managed cloud is in private beta for teams who would rather not run it themselves; the engine is the same either way.
Why governed?
This is what separates cairn from a bare agent loop or a black-box tool — the work runs behind deterministic guardrails you can inspect afterward:
- Hard budget — every run accrues cost in a scope; over the cap it raises
BudgetExceeded, so a fine-tune can't quietly overspend. - Policy + human approval — proposed actions pass declarative policy rules before any executor runs; high-risk ones (promote a model, destroy a resource) pause for a human and resume durably from a checkpoint.
- Reproducible runs — every run stores its validated inputs, a content- addressed schema hash, and the exact operators it resolved to. Replay any run; explain any result.
- Tamper-evident audit — every model call, tool call, and approval lands in a hash-chained, append-only log: what ran, what it cost, who approved it.
- Citation validation — for synthesized answers, every identifier the model cites is exact-string-matched against its context; unmatched citations are stripped.
Quickstart
The engine ships as the cairndev distribution (import name cairn). The cairndev wheel
carries the builtin operator packs (14) and the core contracts (13); their sources live under
packages/ in this repository. The public release is five wheels: cairndev, cairn-client,
the optional Metaflow and SkyPilot engines, and the example pack cairn-pack-hello.
git clone https://github.com/cairndev-sh/cairn && cd cairn
uv sync --extra dev
uv run cairn --help
A domain pack is a data wheel the engine discovers through an entry point; the example pack shows the shape, and a governed run is a declared pipeline:
CAIRN_PACK_PATH=examples/hello-cairn uv run cairn pipeline ls
CAIRN_PACK_PATH=examples/hello-cairn uv run cairn pipeline explain hello-cairn/profile-and-publish
Those are the commands the public CI job runs on every change. The container image is
built from Dockerfile.engine, the Helm chart lives under deploy/helm/cairn, and the
optional extras are auth, dataflow-engine, dev, hello, infisical, kernel, metaflow, nats, oauth, optuna, pii, rag, rag-pgvector, rag-pinecone, rag-qdrant, rag-sqlite-vec, rerank-cohere, rerank-cross-encoder, runtime-dbos, runtime-postgres, runtime-sqlite, runtime-temporal, skypilot, ssh, storage-postgres, telemetry, train.
Full setup: Installation ·
CLI reference.
The ModelOps lifecycle
Each stage is a normal governed run; chained together they form one auditable spine — as a template's subgraphs, or as an explicit pipeline.
flowchart LR
D[Gate dataset] --> P[Prep · scrub · split]
P --> T[Train · local or remote GPU]
T --> E[Evaluate · deterministic gates]
E --> H{{Human approval}}
H --> R[Register · MLflow]
R --> S[Serve · vLLM]
Deterministic gates decide pass/fail; LLM judges are advisory and off by default. Promotion pauses for a human. Read the walkthrough in the ModelOps docs.
One engine, many surfaces
The same governed core is driven from two places in this repository:
- CLI — the full control surface: run, preflight, replay, approve, deploy. → CLI reference
- HTTP + SSE API — every control-plane action is an endpoint, including live run streaming. → HTTP API
Documentation
| Overview | What cairn is and the governance thesis |
| Architecture | Engine, packs, profiles, request lifecycle |
| Packs · Operators | The pack contract and the operator contract |
| Governance | Policies, HITL gates, budget, audit |
| Pipelines | Chain governed workflows with gates and events |
| Deployment | The compose stack: one .env, profile toggles |
| Operators catalog | Every shipped operator, by domain |
Status & license
cairn is in early access and under active development. The API and command
surface may still change between releases; see CHANGELOG.md.
Licensed under the Apache License 2.0 — see LICENSE.
Contributions are welcome: read CONTRIBUTING.md first.
Interested in the managed cloud or a say in what ships next?
Join the waitlist.
Metadata
Release files for cairndev 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cairndev-0.1.4.tar.gz | 2.0 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cairndev-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.9 MB
Release files / cairndev-0.1.4.tar.gz
| Download URL | cairndev-0.1.4.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
81720ae01d4caa4590e8534c5e1739636c072b984704aaa42d9f79ba4e5a7c33
|
|
BLAKE2b-256 checksum How to use checksums |
6ad4a3668711a583ae5f904478f691e582f120de3656a763c29f6f896cf5899c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / cairndev-0.1.4-py3-none-any.whl
| Download URL | cairndev-0.1.4-py3-none-any.whl |
|---|---|
| Size | 1.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
631a88d680ede6bb19ccfa02e594ce6500f1ae62ceaa690b8c37526ddc1237c0
|
|
BLAKE2b-256 checksum How to use checksums |
944d93181be7770df005c5b0c3ce15ae2aa9ee03c05203ab51ffa4f105c03c73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for cairndev 0.1.4
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.