Claude Observatory

Coding agents now change code faster than anyone can read it. On established codebases and infrastructure you are accountable for, the hard part is no longer making a change but knowing what each one did — and being able to reverse any single one without unwinding the rest. Claude Observatory keeps that record as the agent works: a per-edit history, in your terminal and editor, that you review and reverse one change at a time. It is built for engineers accountable for the code they ship, not for throwaway prototypes.

git-free · zero extra Claude tokens · terminal + VS Code + JetBrains

src/features.py
Observations
Overview
Stats🔬 demo-session
0
pending
0
accepted
0
reverted
0 of 0 reviewed
The gap

One change at a time

A change accepted without being understood is a liability. A large diff reviewed only at the end of a session is understood too late to steer — by then the code is already in.

Existing tools address parts of this: Usage meters count tokens; log viewers replay a session; editor assistants and Claude Code's own /rewind roll back to a checkpoint; orchestrators launch fleets of agents and review each branch as a diff to merge. A checkpoint is coarse, though: it reverts a whole turn rather than one edit, does not track the files a shell command changed, and clears when the session does. None keeps a finer, longer-lived record you can act on one change at a time — accept or reverse any single edit while the rest stand, including the files a Bash command touched, from the terminal or either editor. That is the record Claude Observatory keeps.

How it runs

Outside the model loop

Capture runs in local hooks, outside the model loop: it costs no tokens and changes nothing about what the agent sees or the decisions it makes. The record builds itself as the agent works, so it is there before you need it — not something you reconstruct after the context is gone. Everything stays on your machine; nothing is sent anywhere.

What sets it apart

From one edit to the whole trace

Terminal, VS Code, JetBrains

The same review in every editor

One backend serves the CLI, VS Code, and JetBrains, so a review can start in the terminal and finish in either editor with nothing to reconcile. A Claude Edits sidebar holds Edits, Diffs, File History, and the Actions timeline; a bottom Observatory panel holds Observations, the multi-agent Overview, and Stats. A navigation bar steps through pending edits from the status bar, the editor’s title bar, a bubble over the change, or the Overview panel — where it opens as two rows, session-wide controls above and, below, four axes that step the edits by diff, file, folder, and chapter. The Actions timeline records every tool call Claude made, not just the edits: it flags risky commands, maps where a session reached off-machine, nests each subagent's timeline with per-agent metrics, and lists the fleet of agents at work across the repo's worktrees — all at zero extra tokens.

The observatory in VS Code: sidebar edits, inline review, and the bottom dashboards
Feature tour

Everything it does, on every surface

Every surface, one slide at a time: inline, in the panel, in the terminal, and in both editors.

Overview

Every agent and its changes in one panel

A master-detail panel. The left nav lists every running agent across the repo's worktrees under the Fleet tab, plus every multi-agent Workflows run and a Tasks pane; each pane opens with a one-line description of what it holds, and its tabs and change-map sections carry hover descriptions. Fleet and Workflows rows each show a live phase and an activity sparkline; an interrupted run that never completed is not shown as running. Selecting one fills the right side with its change map, three labeled sections top to bottom: Chapters, a ribbon of subtask chips taken from Claude's own to-dos, each chip showing its lines, edits, and pending count; Folders, a proportional strip of tiles, one per changed directory, each tile's width set by the lines it changed and its color by review status; and Files, a churn-ranked ledger of every changed file. Clicking a Folder tile or a Chapter chip steps the matching nav-bar axis to that folder's or chapter's first pending edit; clicking a file opens its diff. A summary bar along the bottom reports the pending, accepted, and reverted edit counts with the file and folder totals for whatever is in scope, and names the current chapter or folder filter.

The master-detail Overview: Fleet, Workflows, and Tasks in the left nav; the selected session's change map — the Chapters ribbon, the Folders strip, and the churn-ranked Files ledger — on the right, with a scope summary bar below
The fleet

Multitasking across worktrees

Every running Claude session appears in one live board, including sessions in separate git worktrees of one repo, correlated without the git binary. Each row carries a live phase (working · awaiting-input · awaiting-permission · idle · done, with heuristic phases marked ~), its worktree and branch, a sparkline, ±lines, tokens · time, risk, and live file conflicts (in the Actions view) flagging any file two agents are touching. Tracking is path-only, at zero tokens.

Multitasking: one row per running agent across the repo's git worktrees — live phase, branch, sparkline, ±lines, risk, nested subagents, and live cross-agent file conflicts leading the Actions view
Task chapters

Review organized by Claude's to-dos

Every edit belongs to a named chapter; work outside any to-do lands in a session chapter titled from the session's goal. A chapter can be accepted, rejected, or cleared at once — the buttons act on exactly the edits the row shows.

Task chapters: the chapter ribbon — Claude's own to-dos as named chapters with per-chapter review actions
Inline review

Review directly in the editor

Claude's pending edits appear in the editor itself: a tinted line, a gutter star, and Keep / Undo / Diff / Chat on hover.

Inline review: a tinted pending edit with a ✨ marker and Keep/Undo actions
Per-edit diffs

A dedicated diff for each edit

Every entry opens as its own diff rather than one session-wide diff to untangle.

Per-edit diff: one edit's before and after, side by side
Surgical undo & file history

Surgical undo

A single change can be reverted without touching later edits, and File History lists every revision a file has been through.

File History: the active file's edits, newest first
Observations

A change feed with Claude's reasoning

The session appears as a feed of files ordered by most-recent activity; adjacent edits to the same file coalesce into one ×N run. Each entry is paired with Claude's reasoning, parsed from the transcript it already wrote, at zero extra tokens.

Observations: files by recent activity with same-file edits coalesced into ×N runs, each with Claude's own reasoning
Action timeline

A timeline of every tool call

Every read, grep, shell command, web fetch, and subagent spawn is grouped by kind in the Claude Edits sidebar, with each category collapsed by default and errors always surfaced. Edit rows link directly to their review.

Actions · sidebar
▸ Commands (229) · 2 errors
▾ Edits (185)
  src/features.py → review
▸ To-dos (30)
Subagent tracking

Per-subagent timelines

Each agent Claude spawned appears nested with its own actions and per-agent metrics: duration, tokens, and tool calls.

Subagents
code-reviewer 68 actions · 12m47s · 45k tok
  Read src/features.py
  Grep "def scale(" ✕ error
doc-writer 21 actions · 3m02s
Risk & egress

Risk and egress audits

Risk flags the shell commands that were destructive or privileged; egress lists everywhere the session reached off-machine.

Risk · Egress
⚠ HIGH  rm -rf build/ recursive delete
⚠ med   curl api.example.com network
⇅ 3 destinations · 3 remote
Chat handoff

Context-preloaded chat prompts

One click assembles the before/after diff, Claude's reasoning, and the command and its result into a ready-to-paste prompt on your clipboard, for your own Claude session. The observatory never calls a model, so this costs zero extra tokens.

Chat handoff: a context-preloaded prompt about one edit, ready to paste into your own Claude
Metrics

Session metrics

Line deltas, action and error counts, per-subagent duration and tokens, and how long Claude's tools took.

Metrics
edits     185  +1220 −40 · 20 pending
actions   229  2 errors
latency   median 214ms · p95 1.2s
subagents 3 · 68 actions · 12m47s
Stats

Progress, tokens, and usage

A live scoreboard of pending / accepted / reverted edits, token plots by session and window, and context and plan usage. The session is identified by name rather than its raw id, and the 5-hour and weekly usage rows show an estimated used of total — the 100% figure inferred from the tokens spent divided by the percent reported.

Stats: review scoreboard, token plots, and usage bars
Navigation bar

Review controls on four surfaces

One review bar appears on four surfaces: the status bar, the editor's title bar, a floating bubble over the live edit, and the Overview panel. On the Overview it opens as two rows. The top row holds the session controls: a selector that names the current session — its title or first prompt, with the raw id in the tooltip — then the session-wide Accept All, Revert All, Clear Resolved, and Export actions, and, on the right, Search, Active only, Spotlight, and Refresh. The bottom row holds four review axes that step the pending edits at four granularities. The Diff axis steps the open file's edits and carries Keep, Undo, Chat, View diff — which opens a real side-by-side diff editor — and the edit's relative time. The File axis steps changed files, showing each file's name and edit count with Accept File and Reject File. The Folder axis steps changed directories, showing a folder with its file and edit totals and acting on only that folder's edits. The Chapter axis steps the session's subtasks, showing each chapter's folder, file, and edit totals with Review, Accept Chapter, Reject Chapter, and Chat.

Overview review bar · two rows
demo-session · Accept All · Revert All · Clear Resolved · Export · Search · Active only · Spotlight · Refresh
▲ Diff 1/2 ▼ · ◀ File 1/3 ▶ · ◀ Folder 1/2 ▶ · ◀ Chapter 1/3 ▶
Also on the status bar, editor title, and review bubble
Spotlight

A focused view of changed lines

Spotlight dims every line Claude did not touch, so the changes read at full contrast.

Heatmap: unmodified lines dimmed so Claude's edits stand out
Conflict resolution

Conflict handling

If you edited the same lines, the undo stops and shows the conflict instead of overwriting your work.

Conflict: undo halts and surfaces the clash rather than guessing
Live demo

The built-in demo

claude-observatory demo replays a scripted session through the real pipeline — a real transcript, captured edits, a subagent, and a workflow — in an isolated demo session. Every panel fills in live and review works normally; demo --clean removes every trace. The recording below shows the Overview during a demo run.

The demo recorded live: the Overview's chapter ribbon, module strip, and file ledger filling in beat by beat — a fleet agent with its subagent appears, then a workflow run
The CLI backend

Review from the terminal

One backend serves every surface. Decisions made in the terminal match either editor, and every view is available as a --json command.

The CLI: reviewing Claude's edits from the terminal
Cross-editor parity

The same tool in both editors

VS Code and JetBrains render the same model from the same backend, so a review can start in one editor and finish in the other.

The observatory in VS Code: sidebar edits, inline review, and the bottom dashboards
01 / 19
Install

One-command install

Install once, run Claude Code, and every edit is captured for review.

$curl -fsSL https://raw.githubusercontent.com/cell-observatory/claude-observatory/main/scripts/bootstrap.sh | bash
— or install via Claude Code —

Paste this into a Claude Code session to install everything.

Install Claude Observatory for me — run its bootstrap installer, then `claude-observatory doctor`. The capture hooks only take effect on a fresh session, so afterward have me quit, run `claude-observatory init` in a plain terminal, and relaunch.

To update an existing install, re-run the command above or run claude-observatory update; add --check to preview what's new.

Open source

License & credits

Claude Observatory is developed in the open by the Cell Observatory project, licensed under Apache-2.0, with a Contributor Covenant code of conduct. It is built with and for Claude Code. Adjacent work informed its direction: claude-devtools on reading the on-disk transcript, ccusage and sniffly on local-first analytics, and the worktree-fleet tools (Conductor, claude-squad, vibe-kanban) on running agents in parallel — where Observatory adds the layer that observes them.