Your coding agent forgets every incident. Hindsight remembers.¶
A self-hosted, git-backed memory layer for your team's coding agents. Hindsight captures what an agent learned on call, redacts it, puts it through a human review queue, and serves the approved runbooks and clues back to Claude Code, Cursor, Codex and Gemini CLI over MCP.

See it in action¶
A real Claude Code session running Opus 5.5 against a local Hindsight server: the agent recalls the team's runbook and an approved fix, saves a new fix with the secret redacted, a teammate approves and promotes it, and the next engineer's agent has it on the first question. Long model pauses are shortened.
Give your coding agent the on-call experience your team already paid for¶
Every incident teaches someone something: which dashboard lies, which alert means the credential mount is stale, which step in the runbook actually fixed it. Today that knowledge dies in a chat transcript. Hindsight keeps it, without turning into another agent you have to run.
Typed SRE knowledge, not notes¶
Services, runbooks, clues, skills, incidents and outcomes. Each is a Markdown file with frontmatter, cross-linked by service and alert name.
Review is the product¶
Proposed clues stay labelled unreviewed until a human approves them. Approving a clue never edits a runbook; promotion is a separate, diffed commit.
Redaction before write¶
Tokens, keys, IPs, emails and customer IDs become [REDACTED:type] before anything is committed or indexed. There is no raw transcript store.
Works with the agent you already use¶
One MCP server for Claude Code, Cursor, Codex, Gemini CLI or any MCP client. Lifecycle hooks capture learnings without relying on the model to remember; support varies by client.
Git is the only store¶
Any git remote: GitHub, GitLab, Gitea or a bare repo. Every write is a commit with the real engineer as author. Works offline.
No model required, no telemetry¶
Capture, review and full-text recall work with no LLM key. Optional extraction and embeddings use your own endpoint. MIT licensed.
How it works¶
- Recall. Before investigating, the agent calls
recallwith a service, an alert or free text. One call returns the runbook, approved clues, open incidents and the owner, with unreviewed and stale results clearly labelled. - Capture. At session end, or on
/clue, a hook sends a summarised, locally redacted transcript topropose_clue. The server redacts again and commits it as a proposed clue. - Review. A teammate inspects the evidence, edits the fact, then approves or rejects it. Repeated clues can be promoted into a runbook step after previewing the exact diff.
- Reuse. The next engineer's agent, whichever one they use, gets the approved knowledge on its first
recall.
Try it locally¶
mkdir hindsight && cd hindsight
curl -fsSLO https://raw.githubusercontent.com/DrDroidLab/hindsight/main/compose.yaml -O https://raw.githubusercontent.com/DrDroidLab/hindsight/main/compose.demo.yaml
docker compose -f compose.yaml -f compose.demo.yaml up -d
docker compose exec hindsight hindsight admin bootstrap
Open http://localhost:8080/setup, paste the enrollment token, and review the seeded sample clue. The demo needs no git credentials, no model provider and no network once the image is pulled. See the quickstart for connecting your agent.
What Hindsight is not¶
Hindsight is not an AI SRE agent. It does not get paged, run commands against production, or host your data. It is the knowledge layer underneath the agent each engineer already uses. If you want an agent that investigates incidents for you, look at projects like OpenSRE; Hindsight is complementary, and such an agent could be a client of it. See how it compares.