HomeWork / Ledger Selected work

Project notes

kylebegeman/ledger

Ledger

Change memory that lives in your repository.

TypeScriptMITv0.9.5Pre-1.0
Ledger overview with record counts, recent changes, activity, releases, and open work.Ledger overview with record counts, recent changes, activity, releases, and open work.
Ledger reading its own repository. Every chart and count leads back to the records.
Watch the reader tour

Overview

A diff shows what changed. Ledger keeps why it changed, what must stay true, and how it was checked. Markdown receipts live beside the code, so the next person or coding agent starts with the evidence. I built the CLI, agent integrations, and reader around that same record, with no account or hosted service required.

Read. Change. Remember.

  1. 01

    Read the context

    Ask for the files and decisions that matter before changing the code.

  2. 02

    Leave a receipt

    Capture the why, the constraints, and the checks alongside the diff.

  3. 03

    Carry it forward

    The next person or agent can pick up where the last change left off.

The reader

From the whole project to a single decision.

Catch up in Overview, narrow the Records list, or follow the Timeline month by month. Open a receipt beside the results and trace its files, symbols, linked decisions, and backlinks. Search, pill filters, and the command palette keep that history within reach.

Browse the records
Ledger Records with a receipt open beside filtered project history, including its rationale, files, and verification.
The list stays in view while you inspect the reasoning behind a change.

Publishing

Share what shipped. Keep the working record.

The full reader is for the repository’s history. A separate public profile publishes released versions and their Public Notes, with release links and an Atom feed. Generate the directory and host it on any static server.

Read the public changelog
Ledger public changelog with a version index and release notes.
The public changelog leaves internal paths, symbols, and invariants out.

Highlights

  • 01

    Context before the edit

    Retrieve history for a file, symbol, or topic within a token budget. Packets bring the relevant decisions, invariants, and verification into the next session.

  • 02

    Receipts while the work is fresh

    Hooks for Claude Code, Codex, and Cursor track edits and draft a receipt. The author finishes the reasoning; the ready check catches unfinished content.

  • 03

    Evidence in the pull request

    CI checks record structure, file coverage, and docs impact. Receipts travel through review with the change they explain.

  • 04

    Your history, your files

    Plain Markdown under .ledger/ is the source of truth. Keep durable guides in docs/ and rebuild the reader, indexes, and reports whenever you need them.

One record, several ways in

CLI and agent hooks
Adopt an existing repository, capture changes, retrieve context, and check the record in CI.
MCP and TypeScript
The same operations through MCP, a typed client, and a local engine API with live events.
The reader
Overview, Records, and Timeline, with keyboard navigation, linked evidence, and light and dark themes.
A public changelog
Publish released versions and their Public Notes with permalinks and an Atom feed.

Documentation & getting started

Quick start
npm install --save-dev @kylebegeman/ledger
npx ledger adopt
npx ledger hooks install --host claude-code --command "npx ledger" --import-agents
npx ledger skills install
npx ledger agents --write
npx ledger serve --watch

Repository snapshot

  • 231Commits
  • Sep 2026Last updated
  • MITLicense
  • Jun 2026Started
  • TypeScript 93.5%
  • JavaScript 3.4%
  • CSS 3.1%

Ledger is open source.

Browse the code and docs, or get in touch if you need a platform or developer tool built.