agentic stenographer
Stenographer — a quill writing in gold

Everything your coding agents do, on the record.

Stenographer captures every Claude Code session verbatim, summarizes it, charts it — and then acts on it, while the session is still running. All of it lands in one file on your Mac, and that file is yours.

Coming soon

The difference

Every other Claude tool is a fuel gauge. This one takes the wheel.

The menu-bar meters tell you the tank is emptying. Useful — and Stenographer does it too, in more detail than most. But a number you have to notice is a job you still have to do.

A usage meter

Tells you what already happened.

  • A percentage in the menu bar
  • A reset countdown
  • Numbers you have to be looking at
  • No idea which session burned them

Stenographer

Reads the live session and acts on it.

  • Trigger→response rules over sessions as they run
  • An optional model judgment step — is now a good moment?
  • Types /compact into the live terminal at a safe breakpoint
  • Every AI call logged with its result, so it is auditable
AI Oversight

An AI that watches your AI — and steps in.

Trigger→response rules run over live sessions, matching on any field, with an optional judgment step that asks a model whether now is a good moment to act. Then it acts. Every AI call the app makes is logged with its result, so oversight is auditable rather than magic.

When
a session has been idle since its last Stop event
And
its context is close to the compaction threshold
Ask
a model: is this a safe moment to interrupt?
Then
type /compact into the terminal running it
Log
the prompt, the judgment, the action, the result
AI Oversight
Screenshot pendingTrigger rules, AI judgment, and the actions taken
Sessions

Every session, every line — and one click back to it.

Twenty terminals deep and no idea which one is the session you care about. Click its row in Stenographer and that terminal comes forward: iTerm2 down to the exact tab and pane, Terminal.app to the window.

Stenographer — Sessions
Screenshot pendingSession list with per-project grouping and live status

Verbatim capture

Full JSONL, byte-for-byte, including system entries and sidechains. Nothing paraphrased, nothing summarized away.

Summaries per session

An AI-written summary on every session, so a list of forty sessions reads as forty sentences instead of forty UUIDs.

Idempotent by design

Backfilling all your history and recording live are the same code path — nothing dropped, nothing doubled, run it as many times as you like.

Attributed per account

Sessions are tied to the account that ran them, so a work login and a personal one never blur into one pile.

Usage

Know exactly how much runway you have left.

5-hour and 7-day quotas with live per-second countdowns. Per-model cost calibration turns dollars into Claude’s own rate-limit percentages, so the number on screen is the number that runs out.

5h & 7d
Quota windows, counted down per second
Projected
Daily average, days left, burn ahead
1 line
Always-on-top HUD, out of the way

Window positions persist per monitor setup, so nothing drifts between desks when you undock.

Claude Usage Details
Screenshot pending5-hour and 7-day quota with live countdowns
Insights

Your work, in aggregate.

Events per day stacked by type; top tools; new sessions per day; top projects; four summary cards.

Charts that survive a purge

Daily rollups are written alongside the raw events and outlive retention purges, so a trend line keeps its history after the events behind it age out.

Where the time went

Top tools and top projects, ranked — the two questions you actually have at the end of a week.

Insights
Screenshot pendingEvents per day, stacked by event type
Visualization

Watch it think.

A real-time 3D force-directed graph of everything happening right now. Sessions, tools and projects as nodes; particles running the edges as tool calls fire.

Visualization
Screenshot pendingLive 3D force-directed graph of sessions, tools and projects
Where it all lives

Your whole history, in a file you own.

You run Claude Code all day, and it leaves behind a trail of JSONL files you will never read. Stenographer is a menubar app and a background daemon that captures every hook event and every transcript line into a SQLite database on your own machine — then turns that pile into telemetry, dashboards, summaries and oversight.

One SQLite file

Your database, on your disk, in a format you can open with any tool that speaks SQL. There is no export step because there is nothing to export it out of.

Works with no network

Capture, storage, charts, search and the 3D graph need nothing but your Mac. Install it and it works — there is no sign-in standing between you and the app doing its job.

No telemetry

No analytics, no crash pings, no usage beacons. Every call the app makes off this machine is one you configured — starting with the model provider behind summaries and oversight.

Every LLM

Sixteen providers ship configured. And a blank one.

The summaries, the oversight judgments — every AI call the app makes runs on a model you pick, with a key you supply. Ollama and the local Claude CLI keep it on the machine entirely; the custom endpoint takes anything that speaks the OpenAI API, so the answer to “do you support X?” does not depend on this list.

Model choice is live, not hardcoded: capability discovery per model, and memory-fit warnings before you load something your Mac cannot hold.

  • Anthropic API
  • Claude (Max token)
  • Claude (local CLI)
  • OpenAI
  • Gemini
  • xAI
  • DeepSeek
  • Mistral
  • Groq
  • Cerebras
  • Fireworks
  • Together
  • Kimi
  • OpenRouter
  • Ollama
  • Custom (OpenAI-compatible)
Planned agents

Those sixteen are the models the app calls. This is the other list: the coding agents whose sessions it records. That is Claude Code today — the rest are planned, and this page will keep calling them planned until they ship.

  • Codex
  • Kimi
  • More agents to follow
Everything it does

The whole list, in one place.

No asterisks and no coming-soon rows — everything below is in the app. The one thing that is not yet shipped is capture for agents other than Claude Code, and it says so where it belongs.

Capture

  • Full JSONL, byte-for-byte
  • System entries and sidechains included
  • Every hook event, live, from a background daemon
  • Idempotent — backfill and live capture are one code path
  • Your whole history backfilled on first run
  • Sessions attributed per account
  • One SQLite database on your own disk

Sessions window

  • Grouped per project, with live status
  • An AI-written summary on every session
  • Click a row to bring its terminal forward
  • iTerm2 down to the exact tab and pane
  • Terminal.app to the window

Usage & cost

  • 5-hour and 7-day quota windows
  • Live per-second countdowns
  • Weekly window, daily average, days left
  • Projected burn
  • Per-model cost calibration into rate-limit percentages
  • One-line always-on-top HUD
  • Window positions persist per monitor setup

Insights

  • Events per day, stacked by event type
  • Top tools and top projects
  • New sessions per day
  • Four summary cards
  • Daily rollups that outlive retention purges

Oversight

  • Trigger→response rules over live sessions
  • Match on any field
  • Optional model judgment before acting
  • /compact typed into the live terminal at a safe breakpoint
  • Every AI call logged with its result

Models

  • Sixteen provider templates
  • A custom OpenAI-compatible endpoint
  • Live capability discovery per model
  • Memory-fit warnings before loading a local model
  • Ollama and the local Claude CLI, for no third party at all
Questions

The things you were about to ask.

What does it cost?

Nothing. Stenographer is free. There is no trial, no seat, no tier above this one, and nothing to enter a card into.

Where does my data live?

In one SQLite database on your own disk. Capture, storage, charts, search and the 3D graph all run against it locally and need no network at all — there is nothing to sign into before the app works.

The calls it makes off the machine are the ones you configured yourself, for the features that need a model — session summaries and oversight judgments. Point those at Ollama or the local Claude CLI and even they stay on the machine.

Which coding agents does it record?

Claude Code, today — every hook event and every transcript line. Codex and Kimi are next, with more agents behind them. None of that is shipped yet, so nothing on this page counts it as done.

Model selection is already provider-agnostic: sixteen providers ship configured, plus a custom OpenAI-compatible endpoint.

Do I need an API key?

Only for the parts that call a model: the per-session summaries and the optional judgment step in an oversight rule. Capture, usage, insights and the visualization all work without one.

And it does not have to be a key at all — Ollama and the local Claude CLI are two of the sixteen providers, and neither involves a third party.

Which terminals can it bring forward?

iTerm2 and Terminal.app. iTerm2 is resolved down to the exact tab and pane that ran the session; Terminal.app comes forward as a window. Other terminals are not supported for click-through — the app needs a session identifier it can trace back to a window, and not every terminal publishes one.

Does it change how Claude Code behaves?

It reads what Claude Code already writes — the hook events and the transcript files — from a background daemon. It does not sit between you and the model, and it does not touch a running session except where you have written an oversight rule that says to, which is the entire point of that feature.

What happens when the database gets big?

Retention purges age out the raw events. Daily rollups are written alongside them and survive the purge, so the trend charts keep their history after the events behind them are gone.

Is it open source?

Not announced. Free and open source are different questions, and only the first one has an answer today.

When can I get it?

No date announced yet — the app is finished enough to describe honestly and not finished enough to promise a day. macOS 14 or later when it lands. Say hello below and you will hear about it.

Free, local, and on the record.

Stenographer is coming to macOS 14 and later. There is nothing to sign up for yet — but there is somebody on the other end of this address.

hello@fishlamp.com

Stenographer is made by FishLamp Design.
© 2026 fishlamp design