Skip to main content

Trace any agentic CLI to a unified local store, queryable from the CLI.

Project description

thirdeye

thirdeye

PyPI Homebrew CI codecov Python License

Trace every agent session on your machine — Claude Code, Cursor, Codex, Gemini, Copilot — into one history you and your agents can manage, search, and evaluate.

Install

brew install duncankmckinnon/tap/thirdeye    # macOS / Linux
pipx install thrdi                           # or: uv tool install thrdi

Enable tracing

thirdeye add --claude        # also: --cursor, --codex, --gemini, --copilot

To detach: thirdeye remove --claude.

Read your history

thirdeye list                          # every session, every platform
thirdeye events <id>                   # one session, terse
thirdeye tail <id> -n 5                # last few events
thirdeye event <id> <seq>              # one event, fully expanded
thirdeye search "migration"            # substring across all sessions
thirdeye stats                         # totals

Tag and filter

thirdeye tag <id> <seq> --add bug,review     # tag an event
thirdeye tag <id> --list                     # list tagged events in a session
thirdeye tag <id> <seq> --remove bug         # untag
thirdeye tags                                # global tag inventory
thirdeye search "migration" --tag review --platform claude --since 2026-05-01

Add --json for parseable JSONL, --tree for human-readable, --platform / --cwd / --tag / --since / --until to filter. Session IDs accept any unique prefix. Run thirdeye --help for the full reference.

Per-turn usage

thirdeye captures model name and token counts per turn into an append-only sidecar (usage.jsonl) and a global SQLite index (usage.db). Capture starts automatically on the next agent run after thirdeye add.

thirdeye usage                          # global rollup, sessions by token spend
thirdeye usage <id>                     # per-turn detail for one session
thirdeye usage --top 5 --since 2026-05-01
thirdeye usage <id> --json              # parseable JSONL rows
thirdeye usage reindex                  # rebuild SQLite from sidecars
thirdeye usage errors                   # tail the capture audit log

Filters: --platform / --harness, --model SUBSTR, --since / --until, --top N, --sort total|input|output|ts.

Browse in a browser

For a richer experience than the CLI, install the UI extra and launch:

pip install 'thrdi[ui]'
thirdeye ui

This opens a local browser UI for browsing sessions, visualizing traces as a collapsible tree, tagging events, editing and running evals, and live-tailing in-progress sessions. The server binds loopback only.

See docs/ui.md for full reference.

Evaluations

Grade a recorded session by dispatching one of your installed CLI agents (claude / codex / gemini) as an LLM-as-judge. Eval definitions are named rubrics — directive text shipped with sensible defaults and editable per-user.

thirdeye eval def list                                          # available rubrics
thirdeye eval def show default                                  # see the directive
thirdeye eval def create my-rubric --directive "<text>"         # custom rubric

thirdeye eval run <id> --agent claude                           # foreground
thirdeye eval run <id> --agent gemini --using token-efficiency --background

thirdeye eval show <id>                                         # latest result
thirdeye eval list --since 2026-05-01 --verdict warn            # history
thirdeye eval status                                            # background jobs

Per-turn findings are stored with the event seq they anchor to, and thirdeye events <id> annotates the timeline inline by default (suppress with --no-findings, filter with --eval NAME). The eval invocation itself is a thirdeye-traced session, so every grading run has its own audit trail.

Dispatched agents run in read-only mode (Claude --allowedTools allowlist, Codex --sandbox read-only, Gemini --approval-mode plan). No new Python deps — thirdeye shells out to the agent binaries you already have installed.

Agent skills

Two bundled Claude-Code-format skills:

  • use-thirdeye — basic CLI fluency: enable tracing, search sessions, debug tool calls, analyze token usage.
  • use-thirdeye-evals — eval workflow: create rubrics, dispatch evaluators, view per-turn findings.
thirdeye skill list                                  # show bundled skill names
thirdeye skill install                               # all skills → .agents/skills/
thirdeye skill install .claude/skills                # custom parent dir
thirdeye skill install --only use-thirdeye-evals     # just one
thirdeye skill install --force                       # replace existing entries

Skills install as symlinks, so upgrading thirdeye (brew upgrade thirdeye or pipx upgrade thrdi) automatically refreshes the skill content in every repo where they're installed.

License

MIT.

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

thrdi-0.0.6rc2.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

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

thrdi-0.0.6rc2-py3-none-any.whl (136.3 kB view details)

Uploaded Python 3

File details

Details for the file thrdi-0.0.6rc2.tar.gz.

File metadata

  • Download URL: thrdi-0.0.6rc2.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thrdi-0.0.6rc2.tar.gz
Algorithm Hash digest
SHA256 6046684bf359107b0d092a6eb5f60eb4cddfbf676d873ee491fe44201bfd2497
MD5 a886f9d99001bfaaadfb3741c589c09b
BLAKE2b-256 423a0235635bdbec8541e61b96413ea58e80ff05c63063c86f781db2110a1e86

See more details on using hashes here.

Provenance

The following attestation bundles were made for thrdi-0.0.6rc2.tar.gz:

Publisher: release.yml on duncankmckinnon/thirdeye

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thrdi-0.0.6rc2-py3-none-any.whl.

File metadata

  • Download URL: thrdi-0.0.6rc2-py3-none-any.whl
  • Upload date:
  • Size: 136.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thrdi-0.0.6rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 a7eed04ed5c5832a899d8377c9cee3f2846dbb13ed505c2713a86c3904fc1508
MD5 f9f9da6488a7fa7763cb84717f8960a7
BLAKE2b-256 8650aad2e9bd1ec94831f34c69ecee7fe7b5c03cc254e6d8958570c12fa26c6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for thrdi-0.0.6rc2-py3-none-any.whl:

Publisher: release.yml on duncankmckinnon/thirdeye

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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