

























Track your GitHub Copilot Chat and Copilot CLI usage, estimate token costs, and watch your combined spend against a monthly budget — all from a VS Code sidebar and the status bar.
Tokenyst is strictly local. It reads Copilot's own session files on your machine, estimates costs from a pricing table baked into the extension, and stores everything in a single JSON file under your home directory. Nothing is sent to any Tokenyst server.
$(graph) N cr of credits spent this periodTokenyst reads from two local sources and combines them into one budget:
Copilot Chat
<VS Code User>/workspaceStorage/<workspace>/chatSessions/.promptTokens/completionTokens) that Copilot records on each completed request. Where GitHub records a real credit value for a request, Tokenyst uses it directly.Copilot CLI
~/.copilot/session-state/<session>/events.jsonl.For Chat requests where no credit value is recorded — and for older CLI logs that predate the credit field — Tokenyst estimates the cost from a token pricing table baked into the extension (matching GitHub's usage-based billing). All usage is stored as allocations in ~/.tokenyst/config.json.
copilot command, installed via npm install -g @github/copilot) must be installed and in use; that's what produces the session files Tokenyst reads. Either source alone is enough.Copilot's two data sources land on opposite sides of VS Code's client/remote split:
A single extension instance can only read one side. By default Tokenyst runs host-side
(its extensionKind prefers ui), which tracks all your Copilot Chat — local and
remote — plus Copilot CLI run on the host. You don't need to install it in the container
for Chat tracking; it just works.
The one thing this default does not see is Copilot CLI run inside a container. If
that's your workflow, tell VS Code to run Tokenyst in the remote instead by adding this to
your User (or dev container) settings.json, then reload:
"remote.extensionKind": {
"TokenystCopilot.tokenyst-copilot": ["workspace"]
}
VS Code will offer to install Tokenyst in the container; once it does, it tracks the
container's Copilot CLI usage (and its data lives in the container's ~/.tokenyst/).
Note this is one or the other per setup: a container-side instance only sees the
container's files, so in that window it tracks the container's Copilot CLI and none of
your host-side usage — neither Copilot Chat (which is stored host-side) nor any Copilot CLI
you run on the host. Each side keeps its own separate ~/.tokenyst/ data. In a dev
container, Tokenyst shows a one-time hint pointing here so you can choose.
All commands are available from the Command Palette under the Tokenyst category.
| Command | Description |
|---|---|
| Set Monthly Budget | Choose a Copilot tier preset or enter a custom monthly cap |
| Set Renewal Date | Day of month (1–31) your plan renews; blank uses the calendar month |
| Enable Copilot Tracking | Start watching Copilot Chat and CLI session files; offers a historical import |
| Disable Copilot Tracking | Stop tracking (both sources) |
| Add Manual Allocation | Add a custom allocation with credit amount, model, and optional repository |
| Delete Manual Allocation | Pick from a list of your manually-added allocations and remove one |
| Import Historical Usage | Backfill allocations from the last 30 days of sessions |
| Force Sync | Re-scan sessions and update usage immediately |
| Refresh | Re-scan sessions and refresh the UI |
| Setting | Default | Description |
|---|---|---|
tokenyst.syncIntervalSeconds |
300 |
How often (in seconds) to scan Copilot session events in the background |
tokenyst.showStatusBar |
true |
Show active budget usage in the status bar |
Tokenyst keeps everything on your machine:
~/.tokenyst/config.json — your budget, renewal day, and recorded usage allocations~/.tokenyst/copilot.log — debug log (only written when debug logging is enabled)workspaceStorage/*/chatSessions/ (written by the Copilot Chat extension)~/.copilot/session-state/*/events.jsonl (written by the Copilot CLI)Tokenyst makes no network requests and has no external dependencies — it reads only local Copilot session files and writes only to ~/.tokenyst/. Pricing data is baked into the extension; no pricing or billing service is contacted.
Normally you remove a manual allocation with Tokenyst: Delete Manual Allocation (a picker lists every manually-added entry). If you'd rather edit the data directly — for example to fix a typo or bulk-remove entries — you can edit ~/.tokenyst/config.json yourself:
Close VS Code (or at least the Tokenyst view) so the file isn't rewritten under you.
Open ~/.tokenyst/config.json. On Windows this is C:\Users\<you>\.tokenyst\config.json; on macOS/Linux it's ~/.tokenyst/config.json.
Find the allocations array. Manually-added entries are the ones with "manual": true and/or an "externalId" starting with "manual-":
{
"costUsd": 0.5,
"model": "copilot-gpt-4",
"inputTokens": null,
"outputTokens": null,
"cacheCreationTokens": null,
"cacheReadTokens": null,
"filesModified": [],
"at": "2026-06-01T12:42:46.000Z",
"provider": "copilot",
"externalId": "manual-1717245766000-a1b2c",
"manual": true
}
Older manual entries created before tagging existed may have neither marker — they're identifiable as
"provider": "copilot"entries with all four token fields (inputTokens,outputTokens,cacheCreationTokens,cacheReadTokens) set tonull. Tokenyst treats those as manual too.
Delete the entire object (including its surrounding { } and the trailing comma) from the array, then save. Make sure the file is still valid JSON.
Reopen VS Code; the Usage Stats panel will reflect the change on the next refresh.
Only delete entries you recognize as manual. Synced Copilot allocations always carry numeric token counts and a copilot-chat-… (Chat) or copilot-cli-… (CLI) externalId; removing those just makes them reappear on the next sync.
Note: Spend is shown in credits to match Copilot's usage-based billing (100 credits = $1). Where Copilot records a real credit value for a request, Tokenyst uses it directly; otherwise it estimates from token counts and a built-in pricing table (with a cache discount for the repeated system prompt and tool definitions), so those figures are approximate.
Please send any questions or comments to contact@tokenyst.dev
Note: Are you an engineering manager or team lead? I'm exploring a team dashboard and other QOL features, please contact if interested.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。