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, how many tokens they used, and what they said. One tool for seven agent CLIs. If you want, it can also send redacted session history to a dashboard server. Nothing starts and nothing uploads unless you ask.

The Firekeeper terminal dashboard: overview, token and provider panels, and a table of Claude, Codex, Copilot and OpenCode sessions with their state, model and token use

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, read from local files.

Send history to a server

Optional. backfill and the daemon read your agents' local history, redact it, and upload it to a dashboard server over an open API. You choose the providers.

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.

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

Use it how you need it

Start with the terminal dashboard. Send sessions to a server only when you want history somewhere else. 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

Upload to a server

firekeeper login --server https://…

Link the machine with a browser approval, then run report, backfill, or the daemon for the providers you allow.

Leaves the machine: redacted transcripts, to the server you named. Its operator can read them.

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 uploading history in four 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. Link this machine to a server

    Optional, and only for a server you have access to. The command prints a URL and a code; open it, sign in, and approve.

    firekeeper login --server https://dash.example.com
  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.

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 pick the server

Uploads go only to the server you name, over HTTPS unless it is on this machine, with a token bound to this machine.

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 login --server URLLink this machine with a browser approval
firekeeper reportUpload the sessions running right now
firekeeper backfill --allImport past sessions from local history
firekeeper daemon installReport in the background from login
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