agent-cockpit

skill
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in scripts/build-dist.sh
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Live terminal cockpit for token usage, cost, and speed across your coding agents (Claude Code, Codex, Gemini). Local-only, no upload.

README.md

🛩️ agent-cockpit

CI
Go Report Card
Go Version
License
Platform

A live terminal cockpit for token usage, cost, and speed across your coding agents.

Claude Code, Codex, and Gemini burn tokens all day. agent-cockpit reads their
local logs and turns them into a glass-cockpit dashboard: token burn, USD
estimates, observed throughput, trends, and a GitHub-style year of activity.
No cloud upload. No API keys. No background daemon.

agent-cockpit live terminal dashboard demo


✨ Why agent-cockpit?

  • 🔒 Private by design. It only reads log files already on your disk. Nothing
    is uploaded, no service runs in the background, no keys are required.
  • 🛩️ One cockpit for every agent. Claude Code, Codex, and Gemini in a single
    normalized view, so you can compare engines, models, and projects side by side.
  • 💸 Know the cost. Per-model pricing (derived from the
    LiteLLM dataset and vendored into the
    binary, so it stays accurate with zero network calls) turns raw tokens into USD
    estimates, cache savings, effective $/1M output, and a daily burn rate.
  • ⚡ Live. cockpit live refreshes the instant an agent writes a log, via fsnotify
    (with a polling backstop).
  • 🧰 Zero setup. Sensible defaults discover your logs automatically; a config
    file is optional.
  • 📦 No runtime to install. One static binary. No Node, no Bun, no npx /
    bunx, no Python. brew install and run cockpit.

🚀 Install

Homebrew (macOS & Linux):

brew install nashory/tap/agent-cockpit
cockpit

Or track main with brew install --HEAD nashory/tap/agent-cockpit.

Windows (no Homebrew). Grab the prebuilt binary from the
latest release:
download cockpit-<version>-windows-amd64.zip (or -arm64), unzip it, and run
cockpit.exe. Add its folder to your PATH to call cockpit from any shell.

Or do the whole thing in PowerShell:

$ver = (Invoke-RestMethod https://api.github.com/repos/nashory/agent-cockpit/releases/latest).tag_name
Invoke-WebRequest "https://github.com/nashory/agent-cockpit/releases/download/$ver/cockpit-$ver-windows-amd64.zip" -OutFile cockpit.zip
Expand-Archive cockpit.zip -DestinationPath . -Force
.\cockpit-$ver-windows-amd64\cockpit.exe

macOS/Linux users who skip Homebrew can grab the matching .tar.gz from the
same release page.

With Go (any platform, needs Go installed):

go install github.com/nashory/agent-cockpit/cmd/cockpit@latest

From source:

git clone https://github.com/nashory/agent-cockpit.git
cd agent-cockpit
make build && ./cockpit

⚡ Quick Start

cockpit                       # open the dashboard
cockpit live --refresh 2s     # live mode (refreshes on file changes)

# static, pipeable reports
cockpit today
cockpit trends --days 30
cockpit agents
cockpit speed
cockpit statusline --compact  # one line for tmux / your shell prompt
cockpit statusline --json     # structured statusline payload
cockpit report                # text summary (add --json for JSON)
cockpit report --svg usage.svg  # shareable SVG receipt card
cockpit export --group daily > usage.csv  # CSV: daily/session/model/project/event
cockpit pricing status        # show vendored pricing coverage

# filter by source, project, or model
cockpit monthly --source claude
cockpit trends  --source claude,codex --project myrepo --days 30
cockpit agents  --model sonnet

# JSON for scripts
cockpit today --json

# config helpers
cockpit config init
cockpit doctor                # show detected log locations

🎛️ Features

  • 🛩️ Live TUI: a glass-cockpit dashboard that refreshes the instant an agent writes a log.
  • 📊 Daily / Trends: token usage and cost over time, as tables and braille charts.
  • ⏱️ Blocks: Claude's 5-hour billing windows with a live burn-rate projection.
  • 🤖 Unified view: Claude Code, Codex, and Gemini usage in one normalized cockpit.
  • 💸 Accurate cost: per-model pricing from the LiteLLM dataset, vendored for offline use.
  • 🧮 Insights: cache hit rate, throughput, velocity, engaged hours, and caution lamps.
  • 🚦 Budgets & limits: optional daily / weekly / monthly USD budgets and Claude 5h / 7d token limits, surfaced in the TUI and statusline.
  • 🔒 100% local: read-only, no upload, no API keys, no daemon.
  • 📦 No runtime: one static Go binary. No Node, Bun, npx, or Python.
  • 🧰 Scriptable: today / weekly / monthly / trends / statusline, JSON output, and CSV export.
  • 🖼️ Shareable SVG: cockpit report --svg renders a receipt card you can post anywhere.

🧭 Dashboards

Seven tabs, each packed with instruments. Press enter to zoom any widget
fullscreen:

Tab Shows
Overview headline token/cost readouts, per-agent bars, 30-day trend
Breakdown engine share, model load, and output speed per lane
Trends token / cost / throughput / velocity time-series plus efficiency, economics, and cadence (with engaged hours)
Activity year contribution calendar, hour-of-day, day-of-week, projects
Daily a ccusage-style ledger with day / week / month periods: input / output / cache / total tokens, cost, and models, newest first with a grand total
Blocks 5-hour activity/billing windows: a live ACTIVE WINDOW with elapsed/remaining, burn rate, cost projection, and optional configured-limit usage
Sessions a per-session table — project, engine, start, active span, tokens, cost, and models — so you can see which sessions cost the most
Breakdown tab
Breakdown
Trends tab
Trends
Activity tab
Activity

Keys

Key Action
1-7 jump to a tab
tab / shift+tab next / previous tab
arrows / hjkl move widget focus
enter / esc zoom the focused widget / exit zoom
e toggle expert (dense) / compact (light) mode
w cycle the chart window (7 / 30 / 90 days)
p cycle the Daily ledger period (day / week / month)
s sort the Daily / Blocks / Sessions table (date / tokens / cost)
r refresh now
? toggle the full keyboard help
q quit

Your last e / w / s choices are remembered across runs (saved to
ui.json next to the config). The palette adapts to the terminal: it honors
NO_COLOR and switches to a higher-contrast ink set on
light backgrounds.

On Activity, zoom the calendar (enter) and then arrows move the day cursor
(left/right by week, up/down by day) with a tooltip for the selected day. Zoom
Top Projects and arrows select a project; enter opens a project drill-down.
On
Daily, Blocks, and Sessions, arrows move a row cursor (the view
follows it) and enter opens that row's per-model breakdown (esc closes it).

Costs are estimates derived from token counts (no per-call cost is recorded in
the logs), so every USD figure is shown with a leading ~.

🔒 What It Reads

agent-cockpit reads local log files only. No network calls, ever.

Agent Default path
Claude Code ~/.claude/projects/**/*.jsonl
Codex ~/.codex/sessions/**/*.jsonl, ~/.codex/archived_sessions/**/*.jsonl
Gemini ~/.gemini/tmp/**/chats/session-*.json

⚙️ Configuration

Configuration is optional. To customize paths or pricing, create a config file:

OS Path
macOS / Linux ~/.config/agent-cockpit/config.toml
Windows %APPDATA%\agent-cockpit\config.toml
timezone = "local"
refresh_interval = "3s"
currency = "USD"

[budget]
# Optional USD budgets. When set, the TUI LIMITS panel and statusline show
# ok / warn / critical state for each period.
# daily_usd = 25
# weekly_usd = 100
# monthly_usd = 300
# warn_pct = 80
# critical_pct = 95

[limits]
# Optional Claude Code token limits for local quota-style monitoring.
# claude_5h_tokens = 88000
# claude_7d_tokens = 500000
# warn_pct = 80
# critical_pct = 95

[paths]
claude = ["~/.claude/projects"]
codex  = ["~/.codex/sessions", "~/.codex/archived_sessions"]
gemini = ["~/.gemini/tmp"]

# Defaults come from the vendored LiteLLM table; override here only if you want
# to. Prices are USD per million tokens; keys match a model-name substring.
[pricing."claude-sonnet"]
input_per_million       = 3
output_per_million      = 15
cache_read_per_million  = 0.30
cache_write_per_million = 3.75

Run cockpit config init to drop a starter file in place.

🏗️ How It Works

Each adapter parses its agent's logs into a normalized usage.Event; events are
aggregated, priced, and rendered. Scanning runs in parallel across CPUs, live
mode is driven by an fsnotify watcher, and the TUI is built with
Bubble Tea.

cmd/cockpit/                 entry point (the `cockpit` binary)
internal/source/        Claude / Codex / Gemini log adapters
internal/scan/          parallel directory walk + file parsing
internal/watch/         fsnotify watcher for live refresh
internal/usage/         normalized events, pricing, aggregation, insights
internal/report/        static terminal reports
internal/tui/           Bubble Tea glass-cockpit dashboard

See docs/architecture.md for the full design.

🖥️ Platforms

Ships as a CGO-free native binary:

OS Architectures
macOS Apple Silicon, Intel
Linux amd64, arm64
Windows amd64, arm64

🛠️ Development

make ci        # gofmt + go vet + full test suite (mirrors GitHub CI)
make test      # go test ./...
make race      # go test -race ./...
make build     # build ./cockpit
make run       # go run ./cmd/cockpit

Contributions are welcome. See CONTRIBUTING.md,
SECURITY.md, and docs/.

📄 License

Apache-2.0 © agent-cockpit contributors.

🙌 Acknowledgements

Built with Bubble Tea,
Lip Gloss,
ntcharts,
Cobra, and
fsnotify.

Yorumlar (0)

Sonuc bulunamadi