dira

dira

Never explain the same decision twice.

Your coding agent has amnesia. You keep re-explaining decisions you already made — and it keeps suggesting the thing you rejected in July. dira is a git-native ledger of the intents, decisions, rejected alternatives, and open questions behind your codebase, captured by the agent, pushed back before you ask.

See it catch a contradiction

$ dira check "add a background daemon to track run state"
✗ conflicts with dec-0060 (accepted 3 Jul 2026)
    rejected alternative: "a daemon"
    why_not: violates the single-binary intent (int-0002)
    revisit_if: cold-start latency stops being the binding constraint

→ supersede dec-0060, or revise the plan

The full transcript. Nothing cut, nothing staged for this page — this is the same output dira check prints in a terminal.

dec- a decision, with the alternatives it ruled outint- an intent — a direction the work serves

Three inversions

You write the record.The agent writes it. Your whole job is confirm or ignore.
You go read the record.The record comes to you one screen, every session start, capped forever.
The record is a document.The record is an enforcer it blocks contradictions before work is planned.

What that costs you

Zero clerical work

Hooks capture it; you press confirm. If it needed discipline, you'd have kept using ADRs.

It argues back

The only check that stops a plan by citing your own past reasoning, not a linter rule.

Objections

I already have ADRs.
So does the author — 83 of them, unread. Whether indexing an existing pile produces a useful ledger or just a second pile is an open question the project is still working through, not a shipped feature yet.
Another tool to maintain?
It replaces tools rather than adding one, and you don't maintain it — the agent writes it.
Why not just a bigger CLAUDE.md?
A context file has no lifecycle, no supersession, no rejected alternatives, and cannot enforce anything. It also grows until it stops being read — which is the original failure.
Is this lock-in?
Plain markdown in your own repo. Delete the binary; the record is still readable. Apache 2.0.

Status

Pre-release, buildable from source today. There is nobrew install yet — seethe docs page for the full command tour, generated from this build so it cannot go stale.

git clone https://github.com/kazi-org/dira
cd dira
go build ./cmd/dira

Nothing to install yet. Watching the repo is the whole ask while this ships.

★ Star kazi-org/dira →