Skip to main content

Analyze local Codex, Claude Code, and OpenCode sessions

Project description

agentrecap

Generate a local, metadata-only HTML report from your Codex, Claude Code, and OpenCode sessions.

uvx agentrecap
# or
pipx run agentrecap

If you do not have uvx or pipx installed, clone the repository and run it with Python:

git clone https://github.com/bansalarnav/agentrecap.git
cd agentrecap
python3 -m venv .venv && .venv/bin/pip install .
.venv/bin/python -m agentrecap.cli

The local virtual environment keeps agentrecap and its dependencies separate from your existing Python installation.

Overview

agentrecap only reads your session data and writes its report to a separate output directory. It will not modify your existing environment or any existing session data.

By default, agentrecap reads active and archived sessions from ~/.codex, Claude Code sessions from ~/.claude/projects, and OpenCode sessions from ~/.local/share/opencode, then writes the report to ~/.agentrecap/reports/<timestamp>/index.html. When it finishes, it asks whether you want to open the report in your browser. Use --open to open it immediately without the prompt.

agentrecap \
  --codex-input /path/to/codex/home \
  --claude-input /path/to/claude/projects \
  --opencode-input /path/to/opencode/data \
  --output-dir /path/to/report \
  --title "My agent usage report"

The report includes:

  • Headline recent, month-to-date, and all-time estimated API costs alongside usage metrics.
  • Codex, Claude, and OpenCode comparisons.
  • Model usage, cache ratios, reasoning-token metrics, and monthly estimated API costs.
  • Run-duration, response-gap, thread-length, token, cache, and tool-call charts.
  • Human-readable, metadata-only CSV files under the report's data/ directory.

The generated report does not include transcript contents, only metadata. Thread, run, event, agent, and tool-call identifiers are hashed before they are written.

Cost estimates

For cost estimation, agentrecap uses the pricing catalog from models.dev.

Every request is priced before model and month totals are aggregated. Estimates distinguish uncached input, cache reads, five-minute cache writes, one-hour cache writes, unclassified cache creation, output, and separately priced reasoning when available. Generic models.dev context tiers are selected from each request's complete input footprint, so model-specific 200K, 256K, 272K, and future thresholds can be honored. A bounded fallback supplies the former Anthropic long-context rates for logged Sonnet 4 and 4.5 calls over 200K before Anthropic retired that 1M-context beta on April 30, 2026.

Explicit historical fast/priority metadata uses the provider's fast-mode price from models.dev; default is treated as standard. When a historical record has no speed metadata, it remains unknown and is estimated at the standard API rate as a clearly marked fallback—today's local configuration is never applied retroactively. Claude's raw top-level costUSD, when present, is retained only as reported_cost_usd provenance. All report cards, tables, monthly totals, and displayed exports use the independently calculated estimated_cost_usd.

These are API-equivalent token estimates, not ChatGPT, Codex, Claude, or Claude Code subscription spend or credit consumption. They do not include negotiated discounts, batch pricing, or provider/platform charges not represented in the logs. Unknown model IDs and fast modes without an explicit catalog price remain unpriced rather than receiving a guessed rate.

Development

The project requires Python 3.10 or newer and uses uv for dependency and environment management.

uv sync
uv run agentrecap --help

To generate a report from local session data while developing:

uv run agentrecap --output-dir ./report

Build the source distribution and wheel with:

uv build

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentrecap-0.3.0.tar.gz (125.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentrecap-0.3.0-py3-none-any.whl (48.4 kB view details)

Uploaded Python 3

File details

Details for the file agentrecap-0.3.0.tar.gz.

File metadata

  • Download URL: agentrecap-0.3.0.tar.gz
  • Upload date:
  • Size: 125.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for agentrecap-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cf18a129c49e4e9d4f3c3b5a1291f6e27ada01999e36dc270175143445bf361b
MD5 0f62d86f7b1005df5254d80c15fdf942
BLAKE2b-256 398b2d3ebe80d126881c6bc0a0f04e4039954b2ed2e125b52f34b725c073fae0

See more details on using hashes here.

File details

Details for the file agentrecap-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: agentrecap-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 48.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.13

File hashes

Hashes for agentrecap-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a505cc0d203946821f5312cec6eed27600c5aae3153052e8533c039d05862f6f
MD5 99b78d394e280ceb03cabaa04b3e606a
BLAKE2b-256 3c06b537846687fb84aa28c5725db26da5f60dfd4acf9a6d4ec33ecc547ff54f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page