Live Cursor usage in your status bar & sidebar — read-only, no login (reuses Cursor's local session).
code --install-extension <file>.vsixCopies a short prompt — paste it into Cursor (or another AI agent) to set this up for you.
A tiny, read-only VS Code / Cursor extension that shows your live Cursor usage in the status bar and a sidebar panel — with no separate login. It reuses the session token Cursor already stores locally.
⏲ 415/500 (included requests) · $0/$75 (on-demand spend); each turns white → amber (≥80%) → red (≥100%).cursorAuth/* keys read-only from Cursor's SQLite store; the token stays in memory only. Requires the sqlite3 CLI on PATH.Install: download the latest .vsix from Releases, then code --install-extension <file>.vsix (or "Install from VSIX" in the Extensions panel).
A tiny, read-only VS Code / Cursor extension that shows your live Cursor usage in the status bar and a sidebar panel — with no separate login. It reuses the session token Cursor already stores locally on your machine.
| Dark theme | Light theme |
|---|---|
![]() | ![]() |
The whole UI adapts to your VS Code / Cursor theme (dark, light, or high-contrast).
⏲ 415/500 $0/$75 (included
requests used/limit and on-demand spend), so each is colored on its own:
white → amber (≥80%) → red (≥100%). Click to open details.Resets <date> (<daysLeft>d left).$used / $limit, plan.<req>/day → ~<projected> by reset.cursorUsage.detailLevel.No comments yet.
The cursor.com dashboard authenticates via a cookie built from Cursor's own local session:
WorkosCursorSessionToken=<userSub>::<accessToken>
This extension reads that token read-only from Cursor's global SQLite store (the same DB
Cursor uses), only the four cursorAuth/* keys — never the whole file, never read-write, never
VACUUM. It prefers Node's built-in node:sqlite (available in Cursor / Node ≥ 22.5) and falls
back to the sqlite3 CLI (-readonly -json) if needed:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb |
| Linux | ~/.config/Cursor/User/globalStorage/state.vscdb |
| Windows | %APPDATA%/Cursor/User/globalStorage/state.vscdb |
The cookie/JWT is held in memory only — never logged, never persisted. Cursor rotates the token; on HTTP 401/403 the extension re-reads the keys once and retries once, then shows a Reconnect hint.
If both readers fail, the panel says so explicitly (missing state.vscdb, missing sqlite3 CLI,
invalid token, or 401/403) instead of a generic "Not connected". Details go to the Cursor Usage
output channel without the JWT.
The
sqlite3CLI is only needed as a fallback on runtimes withoutnode:sqlite(preinstalled on macOS;apt install sqlite3/winget install SQLite.SQLiteon Windows).
| Setting | Default | Description |
|---|---|---|
cursorUsage.enable | true | Enable the extension (status bar + polling). |
cursorUsage.refreshIntervalSec | 300 | Refresh interval in seconds (min 60). |
cursorUsage.detailLevel | "auto" | auto | compact | full. |
cursorUsage.showStatusBar | true | Show the status-bar badge. |
cursorUsage.checkForUpdates | true | Check GitHub once a day for a newer version and notify. |
Refreshes on activation, then polls on the interval (hard-throttled to at most 1 network fetch per 60s). Use Cursor Usage: Refresh for a manual refresh.
npm install
npm run build # bundle with esbuild → dist/extension.js
npm run package # produces cursor-usage.vsix
Install the .vsix: Command Palette → Extensions: Install from VSIX…
The extension checks the GitHub Releases API once a day (in the background) and notifies you when a newer version is available, with Update Now / Release Notes / Skip This Version actions.
Update Now installs the new version in place — it downloads the release .vsix to a temp file,
hands it to VS Code's installer, cleans up, and then offers to reload the window. No manual download
or drag-and-drop. Disable the check via cursorUsage.checkForUpdates, or run
Cursor Usage: Check for Updates anytime.
The installed version is shown at the bottom of the panel and in the status-bar tooltip.
These are undocumented internal cursor.com endpoints and can change without notice. This is
for personal, read-only use. The extension never writes to state.vscdb and never logs or stores
your session token.
MIT