Deterministic outputs
Same repo, same state, same risk score.
Ledgerful analyzes Git repositories locally and produces risk, provenance, verification, and SOC 2-style evidence without uploading source code by default.
Four capabilities, all running on your machine. Nothing uploads by default.
On commit, Ledgerful writes a signed, tamper-evident record of what changed and why — an audit trail for code inside the normal git workflow.
Before a commit, Ledgerful analyzes the blast radius of a change — affected files, which tests to run, risk level, and complexity hotspots.
Ledgerful generates offline-verifiable evidence — signed ledger entries and a SOC 2-style evidence export — that an auditor can check without trusting anyone's word.
Ledgerful builds a local knowledge graph of the codebase and answers plain-English questions grounded in the actual code.
Ask is local-model-capable (Ollama). Any cloud model (Gemini/OpenRouter) is strictly opt-in and user-configured — nothing uploads by default.
Sample signed receipt
tx_id: e09f48ab-0afe-4881-833f-8fd80048ea34category: BUGFIXentity: src/invoice.rschange_type: Modifysummary: fix(invoice): [DEMO] fix rounding error in tax calculationreason: Switch tax calculation from f64 to Decimal to eliminate floating-point rounding.committed_at: 2026-07-14T01:47:02.876335722+00:00signed: yessignature: f3e27176…39807
Same repo, same state, same risk score.
Ed25519 signatures verified offline.
Build and test steps planned automatically.
SHA-256 + cosign + SLSA per release.
More commits, more repositories, more evidence rebuilt after the fact.
AI-assisted commits keep raising the volume of change a team produces, while most of it still gets the same diff-sized review it always did.
Once work spans more than one repository, risk collects across all of them at once — and no single diff view shows that picture.
When an audit or incident review happens, evidence is usually rebuilt afterward from commit messages and memory, instead of captured at the time of the change.
Each output is a captured artifact from a real v0.2.8 run.

Verification Steps:• git diff --cached --check (timeout: 400s)• git diff --check (timeout: 400s)• npm run build (timeout: 400s)Dry run mode: verification plan displayed above. No commands were executed.
{"generatedAt": "2026-07-14T01:47:02.982622805+00:00","files": [{ "name": "chain_head.json", "sha256": "3a0555a3cdc06156530aaff441232247bae2c105ea7c199b8c9a77f836cba68f", "size": 431 },{ "name": "ledger.csv", "sha256": "25ca4a8d…2927b63", "size": 3266 },{ "name": "verification_history.csv", "sha256": "56ef6d6a…6ed0e84", "size": 57 }],"entryCount": 7}
Local CLI, dashboard, signed provenance, and SOC 2-style evidence export are implemented now. Team sync is beta. Hosted and enterprise features are planned — see the full breakdown on the editions page.
The engine, ledger, and dashboard run on your machine. Hosted sync is planned, not live — see the architecture page and the trust page.
ledgerful 0.2.8 (c99779aa2b9b)✓ Doctor: ready for publish env · 6 warning(s)Ledgerful Doctor - Environment Health Check==================================================Environment: WslActive Shell: UnknownLEDGERFUL_PLATFORM: os=linux, arch=x86_64, family=unix, target_triple=x86_64-unknown-linux-gnuTools:git Found (/usr/bin/git)gemini NOT FOUNDCurrent Path: /tmp/neutral-repoPath Type: NativeWork root: /tmp/neutral-repoState dir: /tmp/neutral-repo/.ledgerfulActive Ask Backend: Local (127.0.0.1)Native Graph: Ready (CozoDB active, 0 nodes, 0 edges)Index Health:• Gate mode: observe (no ledger transition history yet)• Search index: Empty (0 documents — run 'ledgerful index')• [warn] [graph-empty] Graph state: Empty (never indexed)• [warn] [impact-missing] Impact report: None (run 'ledgerful scan --impact')• [warn] [search-empty] Search index: present but empty (0 documents); full-text search unusable until populatedledgerful index# first search also rebuilds when empty:# ledgerful search "<query>"ledgerful doctor --json• [warn] [sig-pin] no intent.trusted_public_keys pinned; crypto-valid signatures report VALID (unknown key). Pin keys after init or re-sign. Local signing identity not found under ~/.ledgerful/keys; complete init/signing before pinning.ledgerful init# or complete first signing so ~/.ledgerful/keys/public.pem exists, then:ledgerful doctor --json# follow the sig-pin remediation once the public key is readable• [warn] [sig-version] intent.min_sig_version=1 still accepts legacy v1 signatures. All LOCAL rows already have sig_version >= 2; set min_sig_version=2 to close the downgrade path.ledgerful config set intent.min_sig_version=2ledgerful verify --signatures── Optional Accelerators ──────────────────────Embedding Model: unreachable (Local embedding model server at http://127.0.0.1:8083 is unreachable after 1 retries)Completion Model: Not configured9 hygiene finding(s) collapsed — run doctor --fullGPU VRAM: n/a (Windows-only monitoring)
Verification Health CheckChecking verification dependencies...Checking git...[OK] git is available.Checking ledger state...[NOTE] No impact report found. Run 'ledgerful scan --impact' after making changes.[OK] Runner: cargo test (nextest not available)All verification dependencies are available.
Real output from a v0.2.8 run on Linux x86_64. Source files in public/evidence/. Program stdout is reproduced verbatim.
Ledgerful's own development change ledger is published at /ledger — signed for provenance; v1 sample rows verify offline in the browser, with a v2 honesty fence when redacted fields block full re-verify.
Pick the entry point that matches your role.
Install the CLI and run a scan against a real repository on your own machine.
Compare available, beta, and planned editions before committing a team to one.
Read the trust posture: what runs locally, what is opt-in, and what evidence exports contain.
Ledgerful v0.2.8 is installed today. If you want launch announcements and changelog updates, leave your email. Open the full form.
The full install guide has platform-specific binaries and verification steps.