Open source · Apache 2.0 · Runs on your hardware

Tend every coding agent from one bonfire.

See what your AI coding agents are doing right now, and keep a searchable record of what they did, how many tokens they used, and which files they changed. One tool for seven agent CLIs, on one machine or several. Nothing starts and nothing uploads unless you ask.

Everything your agents did, in one place

Each agent keeps its own history, in its own format, in its own folder. Firekeeper reads them all and gives you one view. Use the parts you want.

See what is running

A keyboard-driven terminal UI finds your agent processes, groups each with its children, and shows state, model, working directory, Git branch, and tokens.

  • Live state: ACTIVE, WAITING, NEEDS INPUT
  • Per-session token breakdown
  • Refreshes every two seconds

Jump to the session

Press s to focus the terminal holding a session. Supports Ghostty, Terminal.app, and iTerm2 on macOS, plus Herdr panes.

Read the conversation

Press c on any session to read its prompts and replies right in the terminal. Read locally and read-only, following new messages live.

Understand usage

Codex limits, and token history by model for Codex, Copilot CLI, Kimi, and Claude Code in the terminal. The web dashboard charts daily use by model and project with an estimated cost from published list prices.

Search every transcript

Run a dashboard server you own. Browse every session, read full transcripts, and run full-text search across all of them and all your machines.

Know what changed

Each session shows the commit it started on and a Files changed panel built from Git, or from the agent's edit tool calls outside a repository.

Bring machines together

Link a laptop, desktop, and dev box to one account with a browser approval, not a pasted token. A Machines page shows which are online.

Share a session offline

Export HTML saves a session as one standalone page that loads nothing from the network, with search, role filters, and links to single events.

Import your history

backfill imports the sessions already on your machine in one pass. The daemon keeps the dashboard current from then on.

Install in one line

Prebuilt binaries for macOS (Apple Silicon and Intel) and Linux (amd64 and arm64). No Go toolchain needed.

brew install DanBradbury/tap/firekeeper
firekeeper

Upgrade later with brew upgrade. Firekeeper also offers to update itself when a new release is out.

curl -fsSL https://raw.githubusercontent.com/DanBradbury/firekeeper/main/install.sh | sh
firekeeper

Installs to ~/.local/bin (override with FIREKEEPER_INSTALL_DIR), never uses sudo, and verifies the download against the release's SHA-256 checksums. Pin a release with sh -s -- --version vX.Y.Z.

go install github.com/DanBradbury/firekeeper@latest
firekeeper

Requires Go 1.26 or newer. Builds from source report their version as dev and never check for updates.

# from a checkout of the repository
docker compose up -d
# dashboard at http://127.0.0.1:7777/

Runs the dashboard server only, with data in a named volume. Create an account or token first thing. See self-hosting for TLS and backups.

herdr plugin install DanBradbury/firekeeper
herdr plugin action invoke firekeeper.dashboard.open-dashboard

Runs Firekeeper as a dashboard tab inside Herdr 0.8.0 or newer. The plugin builds locally, so it needs Go 1.26 or newer.

Verifyfirekeeper --version
See every commandfirekeeper --help
Uninstallfirekeeper daemon uninstall, then remove the binary

Use it how you need it

Start with the terminal dashboard. Add a dashboard server when you want history. Every step up is a separate command you run on purpose.

Mode 1

Terminal dashboard

firekeeper

Watch running sessions, read their chat, check usage, and jump to their terminal.

Leaves the machine: no session data. No daemon starts.
Mode 2

Local web dashboard

firekeeper serve

A web UI on 127.0.0.1 with sessions, transcripts, search, and usage charts. Fill it with report, backfill, or the daemon.

Leaves the machine: nothing. Data stays in a SQLite file here.
Mode 3

Self-hosted, many machines

firekeeper login --server https://…

Run serve on a host you control behind HTTPS, then link each machine with a browser approval.

Leaves the machine: redacted transcripts, to your host only.

Seven agent CLIs, one view

Process discovery works without any integration. Each provider also has an adapter that reads its local session data, read-only.

ProviderProcess discoveryState & metadataUsage tabTranscript upload
CodexYesYesLimits and historyYes
GitHub Copilot CLIYesYesLocal history and plan detailsYes
Claude CodeYesYesToken historyYes
Kimi CodeYesMetadataToken historyYes
OpenCodeYesYesNoYes
Gemini CLIYesYes, no NEEDS INPUTNoYes
Cursor CLIYesYes, no NEEDS INPUTNoYes, no timestamps or tokens

States describe the latest event Firekeeper can see, not ground truth. Provider data formats can change between CLI releases, and adapters evolve with them. macOS is the main target; Linux is best effort.

Quick start

From the terminal dashboard to a searchable archive in five steps. Stop at any step.

  1. Open the terminal dashboard

    Start an agent in another terminal and it appears within a couple of seconds.

    firekeeper
    Tab switch views ↑↓ select ⏎ details s switch terminal c chat history ? all keys q quit
  2. Start a local dashboard

    With no account it runs in local mode, with no sign-in, and offers once to start reporting this machine. Anything but y changes nothing.

    firekeeper serve
  3. Preview, then upload

    The dry run reads and redacts transcripts and prints counts without opening a connection. Then name the providers you allow.

    firekeeper report --dry-run
    firekeeper report --provider codex --provider claude
  4. Import past sessions

    Bring in the history already on your machine, in one pass.

    firekeeper backfill --all --dry-run
    firekeeper backfill --all
  5. Keep it flowing

    Install the daemon as a per-user service. It detects your agent CLIs and reports them in the background.

    firekeeper daemon install --dry-run
    firekeeper daemon install

Your transcripts, your rules

Firekeeper is built to run on hardware you control and to do nothing you did not ask for.

Opt-in per provider

An unconfigured report or daemon sends nothing. You name each provider you allow.

Redacted first

Every event passes through redaction before it leaves the machine, and again on HTML export.

Ignore whole repos

A repository containing .firekeeper-ignore, or an excluded directory, is never read.

Read-only on provider data

Firekeeper never changes your agents' databases, logs, or launch commands.

You run the server

On 127.0.0.1 or on a host you control. Accounts, scoped tokens, and per-account isolation are built in.

Plain talk: redaction is best effort, and whoever operates a server can read what is uploaded. Read what is uploaded and what is not caught before you turn uploads on.

The command line

Plain firekeeper opens the dashboard. Everything else is an explicit subcommand.

firekeeperTerminal dashboard: Processes and Usage
firekeeper serveWeb dashboard at http://127.0.0.1:7777/
firekeeper reportUpload the sessions running right now
firekeeper backfill --allImport past sessions from local history
firekeeper daemon installReport in the background from login
firekeeper login --server URLLink this machine with a browser approval
firekeeper whoamiServer, account, and machine this one reports as
firekeeper logoutRevoke and remove this machine's token
firekeeper snapshot --jsonPrint discovered sessions as JSON
firekeeper config showMerged configuration, token masked