Skip to main content

Desktop tray toast + CLI for your Cursor subscription usage

Project description

cursorhub

Track your Cursor subscription usage from a desktop tray toast or the terminal.

  • Tray toast (cursorhub): an always-on-top card in the top-right corner showing your included-plan percentage, on-demand spend, and when the billing cycle resets. Refreshes every 5 minutes; dodges out of the way when your cursor gets near it.
  • CLI (cursorhub usage, or the dependency-free standalone/cursor_usage.py): print usage on demand as a table or JSON.

How it works

Cursor stores a session JWT in its local VS Code-style state database (state.vscdb, key cursorAuth/accessToken). Your userId is the sub claim of that token. Cursor's own web dashboard authenticates to cursor.com/api/* with a cookie WorkosCursorSessionToken={userId}::{token}. cursorhub reads the token, builds the same cookie, and calls GET /api/usage-summary.

This needs no API key and works for any signed-in Cursor user - Pro, Business, or a member of an Enterprise team. You do not need to be a team admin (the official api.cursor.com/teams/* Admin API is admin-only; cursorhub does not use it).

The state DB is read from:

OS Path
Windows %APPDATA%\Cursor\User\globalStorage\state.vscdb
macOS ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb
Linux ~/.config/Cursor/User/globalStorage/state.vscdb

Install

pip install cursorhub

Or from a checkout:

pip install -e .

The tray app needs PySide6 (pulled in automatically). The standalone script needs nothing but Python 3.11+.

Usage

cursorhub                       # launch the tray toast
python -m cursorhub             # same thing

cursorhub usage                 # print a table (your usage)
cursorhub usage team            # your usage plus team usage
cursorhub usage --json          # normalized JSON
cursorhub usage --raw           # raw Cursor API responses (debugging)

python standalone/cursor_usage.py           # no install required
python standalone/cursor_usage.py --json

Example table (cursorhub usage):

Cursor usage  -  you@example.com  (enterprise)
====================================================
Included plan   [######------------------] 25.6%
                included 2000 + bonus 45 = 2045
On-demand (you) $0.00 / $300.00   left $300.00
Billing cycle   resets in 24d 13h   (2026-08-11T19:09:10.000Z)

  You've used 26% of your included total usage

With cursorhub usage team, team usage appears between the on-demand block and the billing cycle:

Cursor usage  -  you@example.com  (enterprise)
====================================================
Included plan   [######------------------] 25.6%
                included 2000 + bonus 45 = 2045
On-demand (you) $0.00 / $300.00   left $300.00

Team usage
On-demand (team)$342.16 / $2,500.00   left $2,157.84

Billing cycle   resets in 24d 13h   (2026-08-11T19:09:10.000Z)

  You've used 26% of your included total usage

Configuration (env vars)

Variable Purpose
CURSOR_SESSION_TOKEN Use this raw JWT instead of reading the state DB
CURSOR_STATE_DB Path to a non-default state.vscdb

Caveats

  • These dashboard endpoints are unofficial / internal to Cursor and can change without notice. Every call degrades to a clear error rather than crashing.
  • The session token expires when you sign out of Cursor. Sign back in and the tray toast recovers on its next refresh.
  • On-demand amounts are reported by Cursor in cents and shown here in whole dollars.

License

MIT - see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cursorhub-0.1.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cursorhub-0.1.0-py3-none-any.whl (14.2 kB view details)

Uploaded Python 3

File details

Details for the file cursorhub-0.1.0.tar.gz.

File metadata

  • Download URL: cursorhub-0.1.0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for cursorhub-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c3bcfba2f383faaf12c8693b06427938981fe821b9d9d8b55fdee31fe866cebd
MD5 d5d57be11c36b7cb9da82fe40ad09496
BLAKE2b-256 f321840394e149233ca35ca51377a683b2533cc2ecb0de5d2fb23680f5bdfcac

See more details on using hashes here.

File details

Details for the file cursorhub-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cursorhub-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for cursorhub-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba25e81ee840564abcbcd0278c6182150406802d9b34bcff3ad1c39336239b98
MD5 d3fc8e7c5badd1c7ff43b4a2b06a1bf7
BLAKE2b-256 17ab0bdada912b5b5f56af1ad8a0c3dbb0d71c871d231841ff9bbb269d42b300

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page