Notchmeter
Free and open source · MIT

A GitHub Copilot usage tracker in the MacBook notch

Notchmeter shows the month's AI-credit allowance on a Copilot seat GitHub bills by usage, used, left and the reset on the first of the month, with a pace tick and a projection, beside the notch, from the same endpoint Copilot's own editor plugin asks; on a legacy seat the premium-request allowance, and on Copilot Free the chat and completion quotas. The credits used, a cent each at GitHub's published rate, join the Cost card.

macOS 15 or later · Apple silicon or Intel · no account, ever

What Notchmeter shows for GitHub Copilot

The strip on the right is drawn from a fixed set of readings that has no Copilot seat on it; a seat that does adds a ring of its own in the same row, in Copilot's yellow.

  • AI credits, on a seat GitHub meters in credits: the month's count used and the remainder against the entitlement where a snapshot carries one, with a pace tick, a projection and the reset on the first of the month. A seat marked unlimited says so rather than drawing a bar.
  • Premium requests on a legacy seat, and Chat and Completions where a plan meters them, Copilot Free's included. Request counts stay counts: multiplying them by an overage rate would invent a bill.
  • Cost: the credits used times a cent, on the Cost card as a row whose source reads AI credits, with the day series being what this Mac observed.
  • Organisation billing, opt-in for org admins: the month's organisation credits and spend as hidden-by-default windows, GitHub's own figures, and kept off the Cost card because they are the whole organisation's month rather than this seat's.
  • Sessions: with the Copilot CLI hook, every running session, a dot on the ring while Copilot waits for a permission, a tick and a refresh the moment a turn ends, and Allow or Deny from the notch. Without it, a Copilot CLI session running in a terminal is still listed, marked as found without the hook.
The strip beside the notch: the Claude ring at 14% with a white dot on its corner, the Codex ring at 0% and the Cursor ring with no figure.
The strip beside the notch, drawn from a fixed set of readings rather than a live account. The white dot on the Claude ring says a session is waiting for you.

Where each figure comes from

The count is GitHub's and the rate is GitHub's. Nothing on this card is priced here.

Read on 2026-09-24 from the code and docs/accuracy.md.
FigureSourceNotes
AI credits, Premium requests, Chat, CompletionsGET https://api.github.com/copilot_internal/user: the read Copilot's editor plugin makes to show its own quota (quota_snapshots with credits_used since June 2026; Copilot Free's monthly_quotas and limited_user_quotas)Undocumented, and keyed on the client identity it answers to, so the request carries the Copilot Chat extension's identifiers (Editor-Version: vscode/1.96.2, Editor-Plugin-Version: copilot-chat/0.26.7, User-Agent: GitHubCopilotChat/0.26.7, X-Github-Api-Version: 2025-04-01). That is one of two borrowed identities in the app, Antigravity's row carrying the other, and it is said here rather than left in the code.
Costcredits_used times $0.01: “1 AI credit = $0.01 USD” (docs.github.com, Billing for individuals, read 2026-09-20)GitHub publishes the month-to-date count and not when each credit was spent, so every poll's rise is laid on the day it was seen, the first read of a month sets the baseline, and a count that falls is the month's reset. Tagged an estimate for that reason alone.
Plan allowancesOnly where a snapshot carries an entitlementGitHub publishes no per-seat ceiling on any endpoint, so the plan allowances (Pro 1,500, Pro+ 7,000, Max 20,000, Business 1,900, Enterprise 3,900 a month) are never assumed.
Organisation billingGET /user/orgs, then /orgs/<org>/settings/billing/usage/summary: GitHub's public REST API, opt-inWith User-Agent: Notchmeter/<version> and the documented X-GitHub-Api-Version: 2022-11-28.
Sessions, waitsThe Copilot CLI hook: permission_prompt and elicitation_dialog start a wait; its PascalCase PermissionRequest can be answered. Without it, the Copilot CLI sessions running in a terminal, each marked as found without the hookA Copilot agent_completed is about a background subagent and never ends a wait it did not answer.

The login is the oauth_token Copilot's editor plugin keeps in ~/.config/github-copilot/apps.json (every github.com entry tried in turn), then hosts.json, then the one gh keeps in ~/.config/gh/hosts.yml; a token that does not answer falls through to the next. Each is read, never refreshed or written, and sent only to api.github.com as Authorization: token.

Why credits and only credits: since 2026-06-01 GitHub bills Copilot by usage in AI credits, with a monthly allowance per plan that resets on the first of the month and does not roll over. The count times a cent is the one Copilot figure that is money. A seat whose snapshots carry no credits_used, a legacy premium-request quota, produces no cost row, and the line under the legend says GitHub reports no AI credits for this seat. The full rule: GitHub Copilot’s AI credits.

What it says to do about it

The Advice strip's lines for Copilot. Its main window is the month.

Run-out
At this rate you hit the Copilot premium requests cap Thursday at 2:00 PM, 3d 4h before reset. Claude weekly is at 22%.The month's window is behind pace and has a run-out time, and the line names the window it is about, here a legacy seat's premium requests; another tool on a paid plan with half of its main window left is named.
Room elsewhere
Copilot has 78% of its premium requests left.Another tool's main window is on track or behind, and Copilot, on a paid plan, has half of the month's allowance left. Copilot Free is never the room named.
Needs you
GitHub Copilot is waiting in notchmeter.The Copilot CLI hook reports a permission prompt or an elicitation; with a session id the line names the project.

Questions

Which Copilot plans does it meter?

Copilot Free's chat and completion quotas; a Pro, Pro+, Business or Enterprise seat that GitHub meters in AI credits, which is how GitHub has billed Copilot since 2026-06-01; and a legacy seat's premium-request allowance. An org admin can opt in to the organisation's month as well. A GitHub account with no Copilot subscription is told so, not shown an empty bar.

Why does it show credits rather than requests times a rate?

Because a cent a credit is GitHub's own published rate, and the credit count is GitHub's own running total, so the figure is GitHub's arithmetic and not Notchmeter's. Request counts on a legacy seat stay counts: multiplying them by an overage rate would invent a bill for requests inside the allowance.

Why is the daily spend for Copilot approximate?

GitHub publishes one month-to-date count and not when each credit was spent, so Notchmeter lays every rise on the day it saw it, sets the month's baseline at its first read rather than charging the whole count to one day, and takes a falling count as the reset. Credits spent while the app was not running land on the day it next looks, and credits spent before it first looked are never charged to any day. The row is tagged an estimate for exactly that reason.

Does it send another client's identity to GitHub?

For the quota read, yes: the endpoint is keyed on the Copilot Chat extension's identifiers and answers no other, so the request carries them. The organisation reads carry Notchmeter's own name. It is one of two borrowed identities in the app, Antigravity's row carrying the other, and it is stated in docs/privacy.md and in the accuracy document rather than left in the code.

Does it need the gh command line tool?

No. It reads the token Copilot's editor plugin keeps in apps.json or hosts.json first, and gh's hosts.yml only after those. Whichever answers is used, read only, never refreshed or written.

Can I answer a Copilot CLI permission from the notch?

Yes, with the Copilot CLI hook. Copilot's PascalCase PermissionRequest documents the same decision shape as Claude Code's, so the panel opens on the request with Allow and Deny, and it fails open: hand it back, let the hold run out, or quit Notchmeter, and Copilot asks in the terminal as it always has. docs/hooks.md has the events and the fail-open rule.

Install it

macOS 15 Sequoia or later, Apple silicon or Intel. Signed, notarised, and it updates itself. Free forever, MIT licensed.

# or with Homebrew brew tap Amir-Hackett/tap brew trust --cask Amir-Hackett/tap/notchmeter brew install --cask notchmeter

Notchmeter is a Mac app. There is no Windows or Linux version; if you want a Windows one, the Windows issue is where to say so. How every figure is built, with its source and its date: docs/accuracy.md.