[package]
name = "kaizen-cli"
version = "0.1.35"
edition = "2024"
rust-version = "1.95"
authors = ["Lucas Marques <hi@lucasmarques.me>"]
license = "AGPL-3.0-or-later"
description = "Distributable agent observability: real-time-tailable sessions, agile-style retros, and repo-level improvement (Cursor, Claude Code, Codex). SQLite, redact before any sync you enable."
repository = "https://github.com/marquesds/kaizen"
homepage = "https://github.com/marquesds/kaizen"
documentation = "https://docs.rs/kaizen-cli"
readme = "README.md"
keywords = ["agents", "ai", "observability", "retrospective", "telemetry"]
categories = ["command-line-utilities", "development-tools"]
exclude = [
"discoveries/",
".kaizen/",
".cursor/",
".claude/",
"specs/",
"docs/",
"scripts/",
".github/",
"AGENTS.md",
"CLAUDE.md",
"CONTRIBUTING.md",
"CHANGELOG.md",
"CODE_OF_CONDUCT.md",
"SECURITY.md",
".gitignore",
"*.itf.json",
]
[lib]
name = "kaizen"
path = "src/lib.rs"
[[bin]]
name = "kaizen"
path = "src/main.rs"
[[test]]
name = "session_lifecycle"
path = "tests/spec/session_lifecycle.rs"
[[test]]
name = "ingest_idempotency"
path = "tests/spec/ingest_idempotency.rs"
[[test]]
name = "ingest_stub"
path = "tests/ingest_stub/integration_test.rs"
[[test]]
name = "hook_ingest"
path = "tests/spec/hook_ingest.rs"
[[test]]
name = "event_index"
path = "tests/spec/event_index.rs"
[[test]]
name = "redaction_completeness"
path = "tests/spec/redaction_completeness.rs"
[[test]]
name = "sync_backpressure"
path = "tests/spec/sync_backpressure.rs"
[[test]]
name = "retro_pipeline"
path = "tests/spec/retro_pipeline.rs"
[[test]]
name = "doctor_cmd"
path = "tests/spec/doctor_cmd.rs"
[[test]]
name = "doctor_diagnostic"
path = "tests/spec/doctor_diagnostic.rs"
[[test]]
name = "gc_prune"
path = "tests/spec/gc_prune.rs"
[[test]]
name = "observe_pipeline"
path = "tests/spec/observe_pipeline.rs"
[[test]]
name = "summary_cost_rollup"
path = "tests/spec/summary_cost_rollup.rs"
[[test]]
name = "session_lookup"
path = "tests/spec/session_lookup.rs"
[[test]]
name = "session_tree"
path = "tests/spec/session_tree.rs"
[[test]]
name = "metrics_pipeline"
path = "tests/spec/metrics_pipeline.rs"
[[test]]
name = "metrics_report_compact"
path = "tests/spec/metrics_report_compact.rs"
[[test]]
name = "tui_app"
path = "tests/spec/tui_app.rs"
[[test]]
name = "guidance_cmd"
path = "tests/spec/guidance_cmd.rs"
[[test]]
name = "init_setup"
path = "tests/spec/init_setup.rs"
[[test]]
name = "project_lookup"
path = "tests/spec/project_lookup.rs"
[[test]]
name = "experiment_lifecycle"
path = "tests/spec/experiment_lifecycle.rs"
[[test]]
name = "retention"
path = "tests/spec/retention.rs"
[[test]]
name = "mcp_parity"
path = "tests/mcp_parity.rs"
[[test]]
name = "mcp_server"
path = "tests/spec/mcp_server.rs"
[[test]]
name = "telemetry_exporters"
path = "tests/spec/telemetry_exporters.rs"
[[test]]
name = "telemetry_file_metadata"
path = "tests/spec/telemetry_file_metadata.rs"
[[test]]
name = "telemetry_push_replay"
path = "tests/spec/telemetry_push_replay.rs"
[[test]]
name = "llm_proxy"
path = "tests/spec/llm_proxy.rs"
[[test]]
name = "auto_update"
path = "tests/spec/auto_update.rs"
[[test]]
name = "upgrade"
path = "tests/spec/upgrade.rs"
[[test]]
name = "query_duckdb"
path = "tests/spec/query_duckdb.rs"
[[test]]
name = "multi_workspace"
path = "tests/spec/multi_workspace.rs"
[[test]]
name = "modern_scanners"
path = "tests/spec/modern_scanners.rs"
[[test]]
name = "provider_pull_cache"
path = "tests/spec/provider_pull_cache.rs"
[[test]]
name = "workspace_facts_sync"
path = "tests/spec/workspace_facts_sync.rs"
[[test]]
name = "provider_pull_event_keys"
path = "tests/spec/provider_pull_event_keys.rs"
[[test]]
name = "openclaw_ingest_spec"
path = "tests/spec/openclaw_ingest_spec.rs"
[[test]]
name = "openclaw_ingest"
path = "tests/openclaw_ingest.rs"
[[test]]
name = "eval_h15"
path = "tests/spec/eval_h15.rs"
[[test]]
name = "read_report_perf"
path = "tests/spec/read_report_perf.rs"
[[test]]
name = "h33_automation"
path = "tests/spec/h33_automation.rs"
[[test]]
name = "experiment_binding"
path = "tests/spec/experiment_binding.rs"
[[test]]
name = "experiment_sequential"
path = "tests/spec/experiment_sequential.rs"
[[test]]
name = "prompt_tracking_spec"
path = "tests/spec/prompt_tracking_spec.rs"
[[test]]
name = "session_feedback_spec"
path = "tests/spec/session_feedback_spec.rs"
[[test]]
name = "span_hierarchy_spec"
path = "tests/spec/span_hierarchy_spec.rs"
[[test]]
name = "projector_incremental"
path = "tests/spec/projector_incremental.rs"
[[test]]
name = "projector_parity"
path = "tests/spec/projector_parity.rs"
[[test]]
name = "llm_call_quality"
path = "tests/spec/llm_call_quality.rs"
[[test]]
name = "agent_behavior"
path = "tests/spec/agent_behavior.rs"
[[test]]
name = "session_outcome"
path = "tests/spec/session_outcome.rs"
[[test]]
name = "system_sampler"
path = "tests/spec/system_sampler.rs"
[[test]]
name = "search"
path = "tests/spec/search.rs"
[[test]]
name = "daemon_lifecycle"
path = "tests/spec/daemon_lifecycle.rs"
[[test]]
name = "perf_phase0"
path = "tests/perf/phase0.rs"
[[test]]
name = "perf_projector_phase2"
path = "tests/perf/projector_phase2.rs"
[[test]]
name = "perf_migrate_v2"
path = "tests/perf/migrate_v2.rs"
[[test]]
name = "perf_read_report"
path = "tests/perf/read_report.rs"
[features]
default = ["full"]
full = ["analytics-duckdb", "telemetry-prod"]
dev-fast = ["telemetry-prod"]
analytics-duckdb = ["dep:duckdb", "duckdb/bundled", "duckdb/parquet"]
telemetry-dev = []
telemetry-posthog = []
telemetry-datadog = []
telemetry-otlp = []
telemetry-prod = [
"telemetry-posthog",
"telemetry-datadog",
"telemetry-otlp",
]
telemetry-all = [
"telemetry-dev",
"telemetry-prod",
]
[dependencies]
serde_json = "1"
serde = { version = "1", features = ["derive"] }
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
indicatif = "0.18"
arboard = "3"
anyhow = "1"
tempfile = "3"
tar = "0.4"
rusqlite = { version = "0.39", features = ["bundled"] }
rand = { version = "0.10", features = ["std_rng"] }
tokio = { version = "1", features = ["full"] }
notify = "8"
arc-swap = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
toml = "1.1"
ratatui = "0.30"
crossterm = "0.29"
reqwest = { version = "0.13", default-features = false, features = ["json", "gzip", "blocking", "rustls"] }
flate2 = "1"
uuid = { version = "1", features = ["v5", "v7"] }
blake3 = "1"
aho-corasick = "1"
regex = "1"
hex = "0.4"
sha2 = "0.10"
time = { version = "0.3", features = ["formatting", "macros", "local-offset", "parsing"] }
fs4 = { version = "1.0", features = ["sync"] }
graphqlite = "0.4"
tree-sitter = "0.26"
tree-sitter-rust = "0.24"
tree-sitter-javascript = "0.25"
tree-sitter-typescript = "0.23"
tree-sitter-python = "0.25"
tree-sitter-go = "0.25"
tree-sitter-java = "0.23"
rmcp = { version = "1", features = ["server", "transport-io", "schemars", "macros"] }
axum = { version = "0.8", default-features = false, features = ["http1", "json", "tokio", "matched-path"] }
tower = { version = "0.5", features = ["util"] }
tower-http = { version = "0.6", features = ["limit", "set-header"] }
sysinfo = { version = "0.38.4", default-features = false, features = ["system"] }
redb = "4.1"
rkyv = "0.8"
crc32fast = "1.5"
memmap2 = "0.9"
arrow = { version = "58.1", default-features = false }
parquet = { version = "58.1", default-features = false, features = ["arrow", "zstd"] }
duckdb = { version = "1.10502.0", optional = true }
tantivy = "0.26.1"
gethostname = "1"
[dev-dependencies]
quint-connect = "0.1"
itf = "0.4"
proptest = "1"
rmcp = { version = "1", features = ["server", "client", "transport-io", "schemars", "macros"] }
tower = { version = "0.5", features = ["util"] }
[patch.crates-io]
quint-connect = { path = "vendor/quint-connect" }