bar181/bar-observatory

17 stars · Last commit 2026-08-14

Deterministic, local-only audit reports for Claude Code AI agent sessions. Rust + SQLite. Zero network calls. MCP server for agents.

README preview

# BAR Observatory — Deterministic Audit Reports for Claude Code AI Agent Sessions

[![crates.io](https://img.shields.io/crates/v/bar-observatory.svg)](https://crates.io/crates/bar-observatory)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Rust](https://img.shields.io/badge/built%20with-Rust-000000.svg?logo=rust)](https://www.rust-lang.org/)
[![Primary path — zero egress](https://img.shields.io/badge/network%20calls-0-brightgreen.svg)](#does-bar-observatory-send-my-code-anywhere)
[![MCP server](https://img.shields.io/badge/MCP-12%20read--only%20tools-blueviolet.svg)](#for-ai-agents-read-your-own-session-over-mcp)

![BAR Observatory's landing page: "Your AI agent tells you what it meant to do. This tells you what it did." next to a torn-paper session receipt showing real tool-call counts, 60 errors observed, and a REPRODUCIBLE / NO MODEL IN PATH stamp.](assets/site-hero.png)

**BAR Observatory (Base Agentic Reporter) is a free, open-source, local-only flight recorder and
audit tool for Claude Code sessions.** It reads what your AI coding agent actually did — every
tool call, task, sub-agent dispatch, rework loop, and error — stores it in a local SQLite
database, and renders a **deterministic report** in JSON, HTML, and Markdown. Same database in,
byte-identical report out, every time. No LLM in the render path. No network calls. No API key.
No account. *(The optional `bar interpret` command is the one exception — it uses your own
Claude Code session to write a plain-English summary. The deterministic report never depends on
it and never calls a model itself.)*

> **Don't ask the agent what happened. Check the record.**

View full repository on GitHub →