{"id":51551339,"url":"https://github.com/EricAndrechek/Pacer","last_synced_at":"2026-07-12T14:01:18.167Z","repository":{"id":359172585,"uuid":"1244876219","full_name":"EricAndrechek/Pacer","owner":"EricAndrechek","description":"Native macOS app for tracking Claude Code usage — tokens, cost, rate-limit pacing, per-project breakdowns. SwiftUI + SwiftData.","archived":false,"fork":false,"pushed_at":"2026-07-08T20:50:48.000Z","size":32801,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-11T08:05:33.786Z","etag":null,"topics":["anthropic","claude","claude-code","developer-tools","macos","menu-bar","swift","swiftdata","swiftui","usage-tracker"],"latest_commit_sha":null,"homepage":"https://ericandrechek.github.io/Pacer/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EricAndrechek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"EricAndrechek"}},"created_at":"2026-05-20T17:28:04.000Z","updated_at":"2026-07-08T20:44:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/EricAndrechek/Pacer","commit_stats":null,"previous_names":["ericandrechek/pacer"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/EricAndrechek/Pacer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EricAndrechek%2FPacer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EricAndrechek%2FPacer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EricAndrechek%2FPacer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EricAndrechek%2FPacer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EricAndrechek","download_url":"https://codeload.github.com/EricAndrechek/Pacer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EricAndrechek%2FPacer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35393398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-12T02:00:06.386Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic","claude","claude-code","developer-tools","macos","menu-bar","swift","swiftdata","swiftui","usage-tracker"],"created_at":"2026-07-10T00:00:52.212Z","updated_at":"2026-07-12T14:01:18.156Z","avatar_url":"https://github.com/EricAndrechek.png","language":"Swift","funding_links":["https://github.com/sponsors/EricAndrechek"],"categories":["Usage \u0026 Cost Monitoring"],"sub_categories":[],"readme":"# Pacer\n\n[![CI](https://github.com/EricAndrechek/Pacer/actions/workflows/ci.yml/badge.svg)](https://github.com/EricAndrechek/Pacer/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![macOS 15+](https://img.shields.io/badge/macOS-15%2B-black?logo=apple)](https://www.apple.com/macos/)\n[![Latest release](https://img.shields.io/github/v/release/EricAndrechek/Pacer?label=download)](https://github.com/EricAndrechek/Pacer/releases/latest)\n[![Website](https://img.shields.io/badge/website-ericandrechek.github.io%2FPacer-0e9f6e)](https://ericandrechek.github.io/Pacer/)\n\n**Know what Claude Code is costing you — and how close you are to your limits — right from your Mac's menu bar.**\n\nPacer is a free, open-source macOS app that keeps an eye on your Claude Code\nusage: the tokens you're burning, what they cost, how close you are to your\n5-hour and weekly rate limits, and where the spend is going — by project, by\nmodel, by day. It sits quietly in your menu bar, keeps itself up to date, and\nkeeps all of your data on your own Mac.\n\n\u003c!-- The dashboard automatically shows light or dark to match your GitHub theme. --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/dashboard-dark.png\"\u003e\n    \u003cimg src=\"docs/screenshots/dashboard.png\" width=\"760\"\n         alt=\"Pacer dashboard — today's cost, 5-hour and 7-day rate-limit pacing, live burn rate, and a projected end-of-day total\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n\u003ctable align=\"center\"\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" valign=\"middle\" width=\"42%\"\u003e\n      \u003cpicture\u003e\n        \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/menubar-dark.png\"\u003e\n        \u003cimg src=\"docs/screenshots/menubar.png\" width=\"320\"\n             alt=\"Pacer in the menu bar — the readout chips and the click-down popover with 5-hour and 7-day pace gauges\"\u003e\n      \u003c/picture\u003e\n      \u003cbr\u003e\u003csub\u003e\u003cb\u003eMenu bar \u0026amp; click-down popover\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"middle\" width=\"58%\"\u003e\n      \u003cimg src=\"docs/screenshots/widgets.png\" width=\"440\"\n           alt=\"Pacer home-screen and Notification Center widgets — today's cost, rate-limit gauges, live session, daily cost chart, and top projects\"\u003e\n      \u003cbr\u003e\u003csub\u003e\u003cb\u003eHome-screen \u0026amp; Notification Center widgets\u003c/b\u003e\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- Share any chart as a branded image — light/dark follows the GitHub theme. --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/screenshots/share-card-dark.png\"\u003e\n    \u003cimg src=\"docs/screenshots/share-card.png\" width=\"520\"\n         alt=\"Pacer share card — a blown-up 7-day rate-limit burn chart showing your usage versus the ideal pace line, exported as a branded image\"\u003e\n  \u003c/picture\u003e\n  \u003cbr\u003e\u003csub\u003e\u003cb\u003eShare your 5-hour \u0026amp; 7-day burn charts as an image\u003c/b\u003e\u003c/sub\u003e\n\u003c/p\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMore screenshots\u003c/strong\u003e — models, projects \u0026amp; collections, six-month history\u003c/summary\u003e\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshots/models.png\" width=\"760\"\n       alt=\"Pacer models tab — a token/cost share donut, a daily model-mix trend, and a per-model table; every Claude model in its own color, groupable by model or class\"\u003e\n  \u003cbr\u003e\u003csub\u003e\u003cb\u003eModels — share, trend, and per-model table; group by model or class\u003c/b\u003e\u003c/sub\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshots/projects-collections.png\" width=\"760\"\n       alt=\"Pacer projects tab with collections — group projects into non-destructive, overlapping, nestable collections and scope totals to them\"\u003e\n  \u003cbr\u003e\u003csub\u003e\u003cb\u003eProjects \u0026amp; Collections — group projects, scope totals to a collection\u003c/b\u003e\u003c/sub\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshots/history.png\" width=\"760\"\n       alt=\"Pacer history — lifetime totals, a six-month GitHub-style activity heatmap, and monthly spend\"\u003e\n  \u003cbr\u003e\u003csub\u003e\u003cb\u003eHistory — lifetime totals, six-month heatmap, monthly spend\u003c/b\u003e\u003c/sub\u003e\n\u003c/p\u003e\n\u003c/details\u003e\n\n\u003e **Heads up — early days.** Pacer is pre-1.0 and under active development. It\n\u003e works and it's useful today, but expect the occasional rough edge, and your\n\u003e saved history may need to be rebuilt between 0.x versions.\n\n## Download \u0026 install\n\n1. **[Download the latest version →](https://github.com/EricAndrechek/Pacer/releases/latest)**\n   (grab the `Pacer-x.y.z.dmg` file under \"Assets\").\n2. Open the downloaded file and drag **Pacer** into your **Applications** folder.\n3. Launch Pacer. It lives in your **menu bar** — look for the little gauge icon\n   up top (there's no Dock icon). Click it to open the dashboard.\n4. The first time, macOS asks permission for Pacer to read Claude Code's files.\n   Click **Allow** — that's how Pacer sees your usage. Nothing leaves your Mac.\n\nThat's all. **Pacer keeps itself up to date automatically:** when a new version\nships, it offers to install it for you — no re-downloading, no reinstalling.\n\n**You'll need** macOS 15 (Sequoia) or newer, on either Apple Silicon or Intel.\n\n## What you get\n\n- **Rate-limit pacing.** Your 5-hour and weekly windows as easy-to-read pace\n  charts — are you ahead, on track, or about to hit the wall? Color bands\n  (behind / on track / ahead / nearly maxed) tell you at a glance, refreshed\n  every few minutes from Anthropic's usage data.\n- **Costs, your way.** See spend the way Claude Code reports it, or have Pacer\n  price it from tokens itself — switchable in Settings. Daily, monthly, and\n  all-time totals included.\n- **Where it's going.** Break usage down by project — grouped into your own\n  non-destructive **collections** — and by model, with every Claude model in its\n  own color and groupable by class. Drill into any single day, and see a\n  GitHub-style activity heatmap of the last six months.\n- **Live \"today\" view.** Your current burn rate plus a running \"at this pace,\n  today will end at about $X\" projection.\n- **At a glance, always.** A configurable menu-bar readout (icon, percent, or\n  both) plus home-screen-style widgets for cost and pacing.\n- **Optional nudges.** Local notifications when you cross a rate-limit threshold\n  (50 / 75 / 90%) or blow past a daily spending limit you set. Off by default.\n- **Export.** Send daily totals, daily-by-model, or per-project numbers to a\n  CSV for your own spreadsheets.\n\n## How Pacer compares\n\nYou've got options for keeping an eye on Claude Code usage — Claude Code's own\n`/usage`, the popular [`ccusage`](https://github.com/ryoppippi/ccusage) CLI, and\nseveral menu-bar apps — the closest being [Token Pacer](https://tokenpacer.app),\na paid, closed-source namesake, plus [Claude God](https://claudegod.app) and\n[ccseva](https://github.com/Iamshankhadeep/ccseva). They're good tools; here's\nthe honest lay of the land.\n\n| | **Pacer** | **[Token Pacer](https://tokenpacer.app)** | **[Claude God](https://claudegod.app)** | **[ccseva](https://github.com/Iamshankhadeep/ccseva)** | **[ccusage](https://github.com/ryoppippi/ccusage)** | **CC `/usage`** |\n|---|:---:|:---:|:---:|:---:|:---:|:---:|\n| Form factor | Menu-bar app | Menu-bar app | Menu-bar app | Menu-bar app | CLI | In-terminal |\n| Native macOS (not Electron) | ✓ | ✓ | ✓ | – (Electron) | – | – |\n| Always-on, glanceable | ✓ | ✓ | ✓ | ✓ | – | – |\n| Live limit % from Anthropic's API | ✓ | ✦ | ✓ | ✦ | ✦ | ✓ |\n| Pace vs. ideal-burn line | ✓ | – | – | – | – | – |\n| End-of-day spend projection | ✓ | ✓ | ✓ | ✓ | – | – |\n| Activity heatmap (6 months) | ✓ | – | – | – | – | – |\n| Per-project \u0026 per-model breakdown | ✓ | ✓ | ✓ | ✓ | ✓ | – |\n| Beyond Claude Code (Codex, opencode, …) | – | ✓ | – | – | – | – |\n| Home-screen / Notification Center widgets | ✓ | – | ✓ | – | – | – |\n| Threshold / budget notifications | ✓ | ✓ | ✓ | ✓ | – | – |\n| CSV export | ✓ | ✓ | ✓ | – | ✓ | – |\n| ROI: cost vs. git commits | – | – | ✓ | – | – | – |\n| Claude Code plugin marketplace | – | – | ✓ | – | – | – |\n| Price | Free | $29 one-time | Free | Free | Free | Included |\n| Free \u0026 open source | ✓ | – | ✓ | ✓ | ✓ | – |\n\n\u003csub\u003e✦ estimates the windows from your local JSONL logs rather than reading\nAnthropic's usage API. Token Pacer is a paid, closed-source app, so its column is\nread from its public site rather than its source — and some of its features (CSV\nexport, custom model pricing) are Pro-tier. Best-effort as of June 2026 — these\ntools all move fast, so corrections are welcome via an issue or PR.\u003c/sub\u003e\n\n**The gist:**\n\n- **vs. `/usage`** — Claude Code's built-in view is a *snapshot you ask for* in\n  one terminal; Pacer is the always-on, zoomed-out companion that remembers every\n  session. The speedometer in one car vs. the dashboard that logs every trip.\n- **vs. `ccusage`** — a great CLI for scriptable numbers (Pacer's tests even\n  cross-check their scanner against it); Pacer is the GUI you glance at instead of\n  a command you re-run, and it reads your *actual* limit % from Anthropic rather\n  than estimating from logs.\n- **vs. Claude God / ccseva** — the closest rivals, and genuinely nice. Pacer\n  leans into *pacing* (your windows against an ideal-burn line, \"will I run out\n  before the reset?\"), native + quiet-by-default, and signed/notarized\n  self-update; Claude God goes further on ROI/git correlation and a plugin\n  marketplace, and ccseva on its glassy UI. Pick the one that thinks about your\n  usage the way you do — they coexist happily.\n- **vs. Token Pacer** — the close namesake, and the nearest thing to a direct\n  rival: also a native, local-first macOS menu-bar tracker, and it reaches\n  *wider* — covering Codex and opencode alongside Claude Code, with \"next action\"\n  nudges. The trade-offs: it's **$29 and closed-source**, where Pacer is free and\n  open; Pacer reads your *real* limit % from Anthropic and adds the ideal-burn\n  pacing line, the 6-month heatmap, and widgets. Multi-agent and willing to pay?\n  Fair pick. Claude Code-first and value open source? Pacer.\n\n## Privacy\n\nPacer is **local-first**. It reads only the files Claude Code already writes to\nyour own Mac, and it sends nothing about your usage anywhere:\n\n- `~/.claude/projects/*.jsonl` — your session token usage, read on your machine.\n- The Claude Code login token in your macOS Keychain — used only to ask\n  Anthropic for your rate-limit status, the same way Claude Code itself does.\n\nThe **only** network connections Pacer makes are:\n\n- `api.anthropic.com` — to check your rate-limit windows (~12 small requests an\n  hour while it's running).\n- `github.com` — to check for, download, and install app updates (at launch,\n  then every 6 hours; installs happen in the background when automatic updates\n  are on).\n\n**No analytics, no telemetry, no third parties.** Your data stays on your Mac in\n`~/Library/Group Containers/…/pacer.sqlite`, and it persists across app updates.\n\n---\n\n## For developers\n\nPacer is SwiftUI + SwiftData + Charts, signed with Developer ID and notarized,\nauto-updating via [Sparkle](https://sparkle-project.org). Contributions welcome —\nsee [`CONTRIBUTING.md`](CONTRIBUTING.md).\n\n### Components\n\n| Component | Role |\n| --- | --- |\n| `Pacer.app` | Main UI + menu-bar item. Data collection (FSEvents JSONL scan + OAuth poll) runs in-process inside this binary — there is no separate daemon. |\n| `PacerWidgets` | WidgetKit extension — reads the shared App Group store directly. |\n| `PacerCore` | Shared Swift package — parsers, models, scan coordinator, recomputers. |\n\n### Building from source\n\nFor everyday use, the [released DMG](https://github.com/EricAndrechek/Pacer/releases/latest)\nis what you want — this section is only for hacking on Pacer.\n\n**Requirements:** macOS 15 SDK (Xcode 16+) and `xcodegen` (`brew install xcodegen`).\nThe Xcode project is generated from `project.yml` — never edit the `.xcodeproj`\ndirectly.\n\n```sh\nmake verify       # unsigned compile-only check (no Apple account needed)\nmake test         # PacerCore unit + ground-truth tests\nmake install      # signed + notarized build → /Applications/Pacer.app\nmake screenshots  # regenerate the README screenshots (see docs/screenshots.md)\nmake help         # everything else\n```\n\n`make verify` and `make test` need no signing setup and are all that CI runs.\nTo build a *runnable* app you need your own Apple Developer account — point the\ninstall at it with `PACER_SIGN_IDENTITY=\"Developer ID Application: \u003cName\u003e (\u003cTEAMID\u003e)\" make install`.\nSee [CONTRIBUTING → \"Building and running it yourself\"](CONTRIBUTING.md#building-and-running-it-yourself)\nfor the full story (and why an App Group ties signing to your Team ID).\n\n[`AGENTS.md`](AGENTS.md) is the deep architectural guide (performance invariants,\nthe SwiftData schema, the recomputer pattern); [`docs/`](docs) covers the design,\nperf-tuning, [screenshot generation](docs/screenshots.md), and release process.\n\n### Releasing\n\nPushing a `vX.Y.Z` tag triggers\n[`.github/workflows/release.yml`](.github/workflows/release.yml), which builds,\nsigns, notarizes, packages a DMG, signs the Sparkle update, publishes the GitHub\nRelease, and updates `appcast.xml` on the `gh-pages` branch. See\n[`docs/releasing.md`](docs/releasing.md) for the secrets and the cut-a-release\nchecklist.\n\n## License\n\n[MIT](LICENSE). Pacer reads data from Anthropic's Claude Code product but is not\naffiliated with or endorsed by Anthropic.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEricAndrechek%2FPacer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEricAndrechek%2FPacer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEricAndrechek%2FPacer/lists"}