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 Databricks or DuckDB — the two supported runtimes today — govern with RBAC + audit + AI policy, ship to production with multi-environment release manifests. The adapter architecture is platform-agnostic by design; additional runtimes (Fabric, Trino, Iceberg) are declared surface on the roadmap, not shipped yet.

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 + DuckDB adapter (local)
pip install kiri-cli[databricks]       # + Databricks (the cloud runtime)

Databricks and DuckDB are the supported runtimes today. Other extras you may spot in the package metadata install client libraries only — those runtimes are not shipped yet.

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.0b6

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.0b6
File Interpreter ABI Platform
kiri_cli-1.0.0b6-py3-none-any.whl Python 3 none any Details

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

Download URL kiri_cli-1.0.0b6-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f82d6b8d83a20100de11f13d498e39df9ed4b94b269bb7e362c98b2ec9e5a114
BLAKE2b-256 checksum
How to use checksums
8f3824155db51c0e9df4c7f5cf8f3e1388ede1a0466fe80bc826eefed2ae41aa
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