Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

kiri-cli

Kiri is the command-line interface for Kirimana — a source-available, AI-driven, platform-agnostic data-platform automation tool. FSL-1.1-ALv2 (converts to Apache-2.0 after two years).

This package ships a single kiri binary that drives the full data-contract lifecycle: scaffold a new data warehouse project, declare sources + contracts, generate dbt models, apply against DuckDB / Databricks / Fabric / Trino / Iceberg, govern with RBAC + audit + AI policy, ship to production with multi-environment release manifests.

The internal package mappers (packages/cli/kiri_cli/, kiri_core, etc.) and ODCS customProperties (kiri.classification, etc.) are named kiri.* — those are stable de-facto contracts. Kiri is the user-facing surface; Kirimana is the implementation namespace. See the deployment docs for the full taxonomy.

Install

pip install kiri-cli                   # base + localduckdb adapter
pip install kiri-cli[databricks]       # + Databricks (most common pilot)
pip install kiri-cli[trino]            # + Trino (OSS lake stack)
pip install kiri-cli[iceberg]          # + Apache Iceberg
pip install kiri-cli[all]              # all of the above

Recommended: install via uv so the binary lands in ~/.local/bin/:

uv tool install kiri-cli

Or via pipx:

pipx install kiri-cli

Both isolate the install in its own venv so it doesn't collide with your project's Python environment.

Quickstart

Build a real, populated warehouse table — no cloud account, no credentials, nothing to author:

kiri --version
kiri init my_warehouse --with-sample-data --silver-technique flat
cd my_warehouse
kiri plan                           # preview what will be built
kiri apply                          # ingests the bundled sample into bronze

--with-sample-data drops a small CSV plus its data contract into the fresh project, so apply has something real to ingest and you end up with a queryable DuckDB table on the first run. Drop the flag when you point it at your own sources.

Two things worth knowing:

  • --silver-technique is required and has no default. It is an expensive choice to reverse, so the CLI makes you state it rather than guessing (flat is the right answer while you are exploring).
  • If your machine has no git identity yet, init still creates and activates the project — it stages every file, skips the initial commit, and prints the git config commands to finish it.

Next: kiri doctor for a health punch-list, kiri onboard to brief your LLM assistant on the whole product, and kiri --help for every command group (kiri <group> --help drills in).

Top-level command groups

Source of truth: packages/cli/kiri_cli/main.py and the per-group modules. Listed in alphabetical order.

Group Purpose ADR
attr Attribute review-state machine — list, set, history 0029
audit Read the apply-log + AI-call audit; join across systems 0017 / 0049
azure Azure-specific helpers (storage credential, external location) 0033
catalog Read/write the governance catalog; pull from external catalogs 0009 / 0035
compliance Compliance reports (DORA / EU AI Act / GDPR) 0032
contract Contract lifecycle: new / scaffold / lint / show / emit / promote / approval-count / codeowners 0002 / 0004 / 0057
cost Cost estimation per contract / target —
databricks Databricks setup wizard + health probes —
dv Data Vault quality reports + zone migration 0047 / 0048
flows List, run, and inspect compiled multi-task workflows 0052
governance Governance maturity and policy commands 0044
incident Incident lifecycle: list, create, dispatch, redact 0038
incident-api Incidents REST surface helpers 0038
ingest Run ingest stages, Airbyte connectors, list ingestion modes 0027 / 0028 / 0057
kpi KPI workbench — plan, run, drift 0036
lineage Column-level + cross-system lineage queries 0045
maturity BI maturity assessment + recommendations 0036
migrate Source-system migration: analyze / sp / verify 0054
pack Federated pack library: install / publish / validate —
project Project lifecycle: status / validate / patch / probe / scaffold / commit / checksum 0057
rbac Role-based access control: capability matrix, decide_access 0030
reconcile Post-migration data validation (source vs target) 0054
release Release manifest, status, promote 0017 / 0041
schema Schema-drift detector + drift report 0029
semantic Semantic-layer exports for BI tools 0036
sla Data SLA definitions and breaches 0036
source Source-YAML lifecycle: validate / commit / scaffold / patch / tables / table / group 0057
vault Resolve ${vault:...} references; rotate credentials 0011 / 0050

Top-level commands without a group: init, plan, apply, doctor, onboard, use, targets, adapters, diff, lint, verify, explain, eject, discover, fetch, optimize, vacuum, history, reload, design, timetravel, map-source, graduate, upgrade.

The table above is not exhaustive — run kiri --help for the authoritative list of every group and command in the version you have installed.

Also installed by this package: kiri-mcp (the MCP server — see Use Kiri via MCP from your IDE) and kiri-job (a scheduler-safe entry point used by compiled platform jobs).

Conventions

  • Commands resolve a target profile from kiri.yml via --target / -t and a project directory via --project / -p.
  • Every long-running command writes a row to the apply-log — see _start_apply_log / _finish_apply_log in kiri_cli.main.
  • Output defaults to JSON for machine consumers; pass --format markdown (or --format text) where supported for a human-readable rendering.
  • AI calls go through kiri_ai_gateway; never directly to an SDK. Every call is audit-logged with prompt, response, model, cost, caller.

Documentation

Offline, with no network and no browser — the CLI documents itself:

kiri --help                  # every command group
kiri <group> --help          # drill into one
kiri onboard                 # write llms.txt: brief any LLM on the whole CLI
kiri onboard --agent claude  # or a CLAUDE.md for Claude Code
kiri doctor                  # ranked, fix-hinted health punch-list

License

FSL-1.1-ALv2 — source-available; each release converts to Apache-2.0 two years after it ships. The full text ships inside this package (kiri_cli/LICENSE), and the ODCS spec sliver stays Apache-2.0 forever (kiri_odcs/LICENSE).

Support

Kirimana is in beta and the repository is invitation-gated. For help, bug reports, or feature requests: https://kirimana.io/contact.

Metadata

Release files for kiri-cli 1.0.0b5

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

Built distribution (wheel)

Table of built distributions (wheels) for kiri-cli 1.0.0b5
File Interpreter ABI Platform
kiri_cli-1.0.0b5-py3-none-any.whl Python 3 none any Details

Release files / kiri_cli-1.0.0b5-py3-none-any.whl

Download URL kiri_cli-1.0.0b5-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
fd7915fba7811fd977eb97fd6911183a7f82c8e0372c41dc98875780ea418f84
BLAKE2b-256 checksum
How to use checksums
d90239f32f6d10f128659b9ba1429e2b016e1e6a1563e2e76042404c790a1599
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log
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