npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

exe-fuelbar

v0.1.1

Published

See where your AI coding tokens go - by task, tool, model, and project

Downloads

276

Readme

You're spending real money on AI coding tools every day. Exe Fuelbar shows you exactly where it goes — cost, tokens, models, projects, and whether the AI is getting it right the first time or burning through retry loops. One command, zero cloud, everything local.

npm install -g exe-fuelbar

What you get

Dashboard — Interactive TUI with gradient charts, responsive panels, keyboard navigation. Breaks down spend by day, project, model, activity type, tools, MCP servers, and shell commands. Auto-refreshes every 30 seconds.

One-shot rate — For every category that involves edits, Fuelbar detects edit/test/fix retry cycles and shows you the percentage of turns where the AI got it right on the first try. Coding at 90% means 9 out of 10 edits landed without retries.

Optimize — Scans your sessions and ~/.claude/ config for waste: re-read files, low read:edit ratios, uncapped bash output, unused MCP servers, ghost agents, bloated CLAUDE.md files. Hands back exact, copy-paste fixes. Grades your setup A through F.

Compare — Side-by-side model comparison on your own data. One-shot rate, retry rate, cost per edit, cache hit rate, delegation style, fast mode usage — broken down by task category.

Menubar — Native macOS app showing today's cost in your menu bar. Period switcher, trend/forecast/pulse insights, activity breakdowns, and export. One command to install.

Export — CSV and JSON export for any time period. Pipe --format json output to jq for scripting.


Supported tools

| Tool | Data source | Notes | |------|-------------|-------| | Claude Code | ~/.claude/projects/ | Full support | | Claude Desktop | ~/Library/Application Support/Claude/local-agent-mode-sessions/ | Full support | | Codex (OpenAI) | ~/.codex/sessions/ | Full support | | Cursor | SQLite (state.vscdb) | Auto mode estimated at Sonnet pricing | | cursor-agent | CLI sessions | Full support | | OpenCode | SQLite (~/.local/share/opencode/) | Subtask sessions excluded | | Pi | ~/.pi/agent/sessions/ | Full support | | OMP (Oh My Pi) | ~/.omp/agent/sessions/ | Full support | | GitHub Copilot | ~/.copilot/session-state/ | Output tokens only |

Auto-detected. If multiple tools have data, press p in the dashboard to toggle. Provider plugin system makes adding new tools straightforward — see src/providers/codex.ts for the pattern.


CLI reference

# Dashboard
exe-fuelbar                                    # interactive (default: 7 days)
exe-fuelbar today                              # today only
exe-fuelbar month                              # this month

# Reports
exe-fuelbar report -p 30days                   # rolling 30-day window
exe-fuelbar report -p all                      # everything on disk
exe-fuelbar report --from 2026-04-01 --to 2026-04-10
exe-fuelbar report --format json               # structured JSON to stdout
exe-fuelbar status                             # compact one-liner (today + month)

# Filter
exe-fuelbar report --provider claude           # single provider
exe-fuelbar report --project myapp             # project substring match
exe-fuelbar report --exclude tests             # exclude projects

# Tools
exe-fuelbar optimize                           # find waste, get fixes
exe-fuelbar optimize -p week                   # scope to last 7 days
exe-fuelbar compare                            # interactive model picker
exe-fuelbar export                             # CSV (today, 7d, 30d)
exe-fuelbar export -f json                     # JSON export

Dashboard keys: 1-5 switch periods (Today / 7d / 30d / Month / All). p toggle providers. c compare mode. o optimize view. q quit.

Flags work everywhere: --provider, --project, --exclude, --from, --to, and --format json combine freely across all commands.


Menubar app

exe-fuelbar menubar

Downloads, installs to ~/Applications, and launches. Re-run with --force to reinstall. Native Swift + SwiftUI — refreshes live via FSEvents plus a 15-second poll.

Compact mode drops decimals in the menubar (e.g. $110 instead of $110.20):

defaults write ExeFuelbarMenubar ExeFuelbarMenubarCompact -bool true

Configuration

Currency

exe-fuelbar currency GBP              # any ISO 4217 code (162 currencies)
exe-fuelbar currency --reset           # back to USD

Exchange rates from the European Central Bank via Frankfurter. Cached 24 hours. Applies everywhere: dashboard, menubar, exports.

Plans

Track spend against your subscription:

exe-fuelbar plan set claude-max        # $200/month
exe-fuelbar plan set claude-pro        # $20/month
exe-fuelbar plan set cursor-pro        # $20/month
exe-fuelbar plan set custom --monthly-usd 150 --provider claude
exe-fuelbar plan set none              # disable

Model aliases

If a model shows $0.00, your provider's model name doesn't match LiteLLM pricing data. Map it:

exe-fuelbar model-alias "my-proxy-model" "claude-opus-4-6"
exe-fuelbar model-alias --list
exe-fuelbar model-alias --remove "my-proxy-model"

Stored in ~/.config/exe-fuelbar/config.json. User aliases override built-ins.


Activity tracking

13 categories classified from tool usage patterns and keywords. No LLM calls, fully deterministic.

| Category | Trigger | |----------|---------| | Coding | Edit, Write tools | | Debugging | Error/fix keywords + tools | | Feature Dev | "add", "create", "implement" | | Refactoring | "refactor", "rename", "simplify" | | Testing | pytest, vitest, jest in Bash | | Exploration | Read, Grep, WebSearch without edits | | Planning | EnterPlanMode, TaskCreate | | Delegation | Agent tool spawns | | Git Ops | git push/commit/merge | | Build/Deploy | npm build, docker, pm2 | | Brainstorming | "brainstorm", "what if", "design" | | Conversation | No tools, pure text | | General | Uncategorized |


Reading the signals

| What you see | What it might mean | |---|---| | Cache hit < 80% | Unstable system prompt or caching not enabled | | Lots of Read calls per session | Agent re-reading files, missing context | | Low 1-shot rate (Coding 30%) | Agent struggling, retry loops | | Opus on small turns | Overpowered model for simple tasks | | Bash dominated by git status, ls | Agent exploring instead of executing | | Conversation category dominant | Agent talking instead of doing |

Starting points, not verdicts. A single experimental session with 60% cache hit is fine. That same number across weeks of work is a config issue.


How it works

Reads session data directly from disk. No wrapper, no proxy, no API keys needed. Pricing from LiteLLM (auto-cached 24h). Handles input, output, cache write, cache read, and web search costs. Deduplicates messages by API message ID (Claude), cumulative token cross-check (Codex), conversation/timestamp (Cursor), session+message ID (OpenCode), or responseId (Pi/OMP).

Environment variables:

| Variable | Description | |----------|-------------| | CLAUDE_CONFIG_DIR | Override Claude data directory (default: ~/.claude) | | CODEX_HOME | Override Codex data directory (default: ~/.codex) |


Contributing

Contributions welcome. The provider plugin system is the easiest entry point — each provider is a single file in src/providers/. See src/providers/codex.ts for the pattern.

src/
  cli.ts           Entry point (Commander.js)
  dashboard.tsx    TUI (Ink — React for terminals)
  parser.ts        Session reader, dedup, date filter
  models.ts        LiteLLM pricing engine
  classifier.ts   Activity classifier (13 categories)
  compare-stats.ts Model comparison engine
  export.ts        CSV/JSON export
  config.ts        Config management
  currency.ts      Currency conversion
  providers/       One file per supported tool

Star History


License

MIT


Built by Exe AI. Pricing data from LiteLLM. Exchange rates from Frankfurter. Inspired by ccusage and CodexBar.