Skip to main content

Local-first reliability ledger for AI coding-agent work

Project description

chimera-memory

Local-first reliability ledger for AI coding-agent work.

Records what an agent tried, which command verified it, what happened, and what receipt proves it. Everything stays on your machine — no cloud, no sync, no account required.

Install

pip install chimera-memory

Requires Python 3.12+. Installs chimera-memory-types, pydantic, and filelock automatically.

Try it in 60 seconds

chimera-memory demo

This runs a safe local demo in a temp directory — no project mutation, no network. It shows the full flow: init → wrap → verify → receipt bundle → inspect.

Project check suites

Define your verification commands once, run them repeatedly:

chimera-memory init
chimera-memory checks init --preset python
chimera-memory checks run --bundle --output-dir ./run-output

This creates report.md, report.json, and a receipt/ bundle. Inspect the result:

chimera-memory bundle inspect ./run-output/receipt

Compare two runs:

chimera-memory bundle diff ./old-run/receipt ./new-run/receipt

Claude Code hooks (automatic evidence)

Install Chimera hooks for automatic claim-locked evidence in Claude Code sessions:

chimera-memory hooks install

Then before starting a task in Claude Code:

export CHIMERA_INTENT="fix checkout null dereference"
export CHIMERA_SCOPE_PATH="packages/cart"
export CHIMERA_FALSIFIERS_JSON='[["uv","run","pytest","packages/cart/tests/"]]'
chimera-memory claim lock --auto --json

When Claude finishes a turn, the Stop hook automatically settles the claim and generates PR_EVIDENCE.md. See docs/examples/claude-hooks-setup.md.

Local MCP tools for coding agents

chimera-memory mcp serve starts a local stdio MCP server. MCP-capable agents (Claude, Codex, Cursor, etc.) can call Chimera's claim and X-Ray tools directly:

{
  "mcpServers": {
    "chimera-memory": {
      "command": "chimera-memory",
      "args": ["mcp", "serve", "--allow-write"]
    }
  }
}

Tools: chimera_claim_validate, chimera_claim_lock_auto, chimera_claim_show, chimera_claim_list, chimera_claim_settle (requires --allow-execute), chimera_xray_generate.

See docs/examples/mcp-local-tools.md.

AI PR Evidence / Merge X-Ray

Agent-seam auto-lock (v0.23)

Agents and hooks can create sealed claims without writing a claim.toml file:

CHIMERA_INTENT="fix checkout null dereference" \
CHIMERA_SCOPE_PATH="packages/cart" \
CHIMERA_FALSIFIERS_JSON='[["uv","run","pytest","tests/test_checkout.py::test_empty_cart"]]' \
CHIMERA_MUST_NOT_BREAK_JSON='[["uv","run","pytest","tests/test_cart.py"]]' \
chimera-memory claim lock --auto --json

This is the stable primitive that future MCP/hooks integrations will call. Preview without locking: chimera-memory claim lock --auto --dry-run --json. See docs/examples/agent-seam-auto-lock.md.

Chimera can now produce local PR evidence reports for AI-assisted coding work.

A claim can be locked before edits with an intent, scope, falsifier, and must-not-break checks. After the work, Chimera settles that claim against the pre-committed checks and generates a Merge X-Ray showing which changed files have settled evidence and which remain evidence-dark.

# 1. Lock a claim BEFORE editing (sealed, scope-bound)
chimera-memory claim lock --from-file claim.toml

# 2. Do the work, then settle against the pre-committed checks only
chimera-memory claim settle <claim_id>

# 3. Generate the PR evidence report
chimera-memory xray generate --output PR_EVIDENCE.md

Example claim.toml:

intent = "fix checkout null dereference"
scope_path = "packages/cart"
predicted_outcome = "all pass"

[[falsifiers]]
command = ["pytest", "tests/test_checkout.py::test_empty_cart"]

[[must_not_break]]
command = ["pytest", "tests/test_cart.py"]

The Merge X-Ray (PR_EVIDENCE.md) shows the verdict, settled claims, evidence-dark changes, scope drift, and a reviewer-focus list. It reports settled evidence, not proof of correctness — coverage is path-based ("covered by declared claim scope"), never a guarantee that code is tested or correct. See docs/examples/claim-locked-coding.md and docs/examples/pr-evidence-example.md.

Quickstart (5 commands)

# 1. Initialise the local ledger (also adds .chimera-memory/ to .gitignore)
chimera-memory init

# 2. Start a session
chimera-memory session start \
  --branch feat/my-branch \
  --task-label "fix type errors" \
  --agent kiro \
  --model claude-sonnet-4.6 \
  --harness-id kiro-cli

# 3. Wrap a verification command (test, lint, typecheck, …)
chimera-memory wrap \
  --failure-origin organic_real \
  --scope-path . \
  --verification-scope package \
  -- pytest tests/ -q

# 4. End the session
chimera-memory session end --status PASSED

# 5. View the receipt
chimera-memory receipt latest

Onboard an agent in 90 seconds

Get the full session/wrap/repair-loop protocol for your agent:

chimera-memory agent-guide --agent generic   # or: kiro, codex

Generate a copy-paste session scaffold for your package:

chimera-memory template dogfood --scope-path packages/chimera-memory

Prompt templates for sustained use are in docs/prompts/ in the source repo:

  • kiro-dogfood.md — Kiro agent session discipline
  • generic-agent-dogfood.md — Any agent
  • release-closeout.md — Release closeout checklist

Health check

chimera-memory doctor
chimera-memory doctor --json

doctor is read-only. It checks:

  • Is .chimera-memory/ initialized?
  • Is .chimera-memory/ in .gitignore?
  • Is there an active session?
  • Claim count and integrity status
  • M2B readiness level

Exit code: 0 = healthy, 1 = warnings (e.g. no active session), 2 = critical (e.g. not initialized).

Is my ledger healthy?

doctor also audits whether the ledger is being used correctly:

chimera-memory doctor        # shows Evidence Hygiene section
chimera-memory doctor --json # machine-readable, includes evidence_hygiene + next_actions

Evidence hygiene checks:

  • Scoped claim ratio (claims with --scope-path set)
  • Unknown failure_origin count (claims missing classification)
  • Repair-loop completeness (loops with same_scope_after_fix)
  • Orphaned repair phases (--repair-phase without --repair-loop-id)
  • Test/synthetic and invocation-artifact claim counts

If issues are found, doctor prints actionable next steps.

Preflight Intelligence (v0.6)

Before starting work, surface historical failures, repair-loop lessons, and hygiene warnings:

chimera-memory preflight --from-git
chimera-memory preflight --scope-path packages/chimera-memory

Shows:

  • Historical failures in the relevant scope (organic_real + controlled_real)
  • Repair-loop lessons (what failed, was it fixed?)
  • Hygiene warnings (invocation_artifact issues — not product defects)
  • Recommended verification commands

Not M2B scoring or model ranking. Advisory only.

CI receipt bundle

Produce a full CI-ready artifact bundle (receipt, failures, reliability, preflight, GitHub summary):

chimera-memory receipt bundle \
  --output-dir ./ci-bundle \
  --include-preflight \
  --from-git

Upload ci-bundle/ as a CI artifact to preserve receipts across runs.

Evidence dry-run

Export claims as a portable evidence bundle and inspect what a merge would do:

chimera-memory evidence bundle --output-dir ./evidence
chimera-memory evidence import ./evidence --dry-run --json

Write-import is not available. Dry-run only.

M2B readiness

chimera-memory m2b-readiness

Shows whether the local ledger has accumulated sufficient repair-loop evidence to consider M2B (model-to-baseline) comparison. This is a local readiness gate, not a scoring system.

Run chimera-memory m2b-readiness --explain to see what evidence is missing before scoring can be trusted.

What is not built

Capability Status
M2B drift scoring Not built
Model ranking / routing Not built
Hosted / cloud sync Not built
Remote team ledger Not built
Evidence write-import Not built (dry-run only)
Dashboard or UI Not built

Platform support

Platform Status
macOS ✅ Tested
Linux ✅ Tested (CI and Docker)
Windows ⚠️ Not officially tested in 0.1.x

No intentional Windows lockout is known. If you encounter a Windows-specific issue, please open an issue.

Troubleshooting

preflight --from-git shows source: none

This is expected when the working tree is clean (no modified files). Use --scope-path <dir> to specify a target directory explicitly:

chimera-memory preflight --scope-path src/

receipt latest shows "No closed sessions"

You need to complete a session first:

chimera-memory session start --branch <branch> --task-label <label> --agent <agent> --model <model> --harness-id <id>
# ... run chimera-memory wrap commands ...
chimera-memory session end --status PASSED

m2b-readiness shows BLOCKED

The ledger needs at least 5 genuine organic_real failures followed by fixes to clear the gate. Run real verification cycles — do not manufacture failures.

verify shows LEGACY_UNSIGNED

Claims recorded before the integrity chain was introduced show as LEGACY_UNSIGNED. This is informational. Zero Broken records is the signal that matters.

Security note

chimera-memory wrap records the command string and bounded stdout/stderr. Built-in redaction removes tokens matching common secret patterns. However:

  • Do not pass secrets, passwords, or API keys as literal command arguments.
  • The .chimera-memory/ directory contains your local ledger. Do not commit it to version control.

Add to .gitignore (done automatically by chimera-memory init):

.chimera-memory/

Test fixture isolation

When writing tests that call chimera-memory wrap as a fixture, set CHIMERA_DQ_NO_WRITE=1 to prevent test runs from writing to the real local ledger:

CHIMERA_DQ_NO_WRITE=1 chimera-memory wrap --failure-origin organic_real -- pytest tests/

The wrapped command runs normally and the exit code is preserved. No claims are written. A notice is printed.

Do not set CHIMERA_DQ_NO_WRITE=1 for real dogfood verification sessions. It is for test fixtures only.

License

MIT — see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chimera_memory-0.25.0.tar.gz (196.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chimera_memory-0.25.0-py3-none-any.whl (128.0 kB view details)

Uploaded Python 3

File details

Details for the file chimera_memory-0.25.0.tar.gz.

File metadata

  • Download URL: chimera_memory-0.25.0.tar.gz
  • Upload date:
  • Size: 196.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for chimera_memory-0.25.0.tar.gz
Algorithm Hash digest
SHA256 4cd0d7f886f67ca0e3bc97b984c998e1d33dbbbbd7180353b4c7e209d26b4b20
MD5 8164b1320ebc20da0d9c09cb3ea7ab03
BLAKE2b-256 1179f237be1477280b44a726450723f1db6124b7b11d504da8ac54f6b0a266f6

See more details on using hashes here.

File details

Details for the file chimera_memory-0.25.0-py3-none-any.whl.

File metadata

  • Download URL: chimera_memory-0.25.0-py3-none-any.whl
  • Upload date:
  • Size: 128.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for chimera_memory-0.25.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ace064ab12fd5b0268ebdfcc34b14768aa7a11bb7ae5becf0ad7e3aafe245a5
MD5 f6cf9f086d0fad7482d7c2af9220c593
BLAKE2b-256 1716326556064ab8d3ac9c0d90a0da0406a1549a4c3b9dcbc7c406ba7d1eecff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page