Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
See what's left on every AI plan, and when it resets. Self-hosted. Try the live app with synthetic data.
FinanceTypeScript · CSSGitHub @amitray007OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Self-hosted dashboard for all your AI plans. Track limits, resets and spend across Claude, Codex, Cursor, Copilot, Grok and more.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Every AI plan you pay for, on one screen.
Self-hosted dashboard for Claude, Codex, Cursor, Copilot, Grok, Antigravity and Vercel AI Gateway.
Live limits, resets, credits and spend for every account, with credentials encrypted on your own server.
All screenshots use Demo Mode: synthetic accounts on reserved example domains.
You pay for several AI plans, often more than one account each. Each one shows its limits somewhere else, in a different unit, with a different reset. You find out an account is spent when a request fails halfway through a task.Read the full README ↗Every AI plan you pay for, on one screen.
Self-hosted dashboard for Claude, Codex, Cursor, Copilot, Grok, Antigravity and Vercel AI Gateway. Live limits, resets, credits and spend for every account, with credentials encrypted on your own server.
Live demo · Quick start · Screenshots · Providers · How it works · Docs
All screenshots use Demo Mode: synthetic accounts on reserved example domains.
You pay for several AI plans, often more than one account each. Each one shows its limits somewhere else, in a different unit, with a different reset. You find out an account is spent when a request fails halfway through a task.
Headroom signs in to each account once, refreshes them in the background, and shows everything on one page: what is left, when it resets, which account to use next, and what it all costs.
Headroom holds the sign-in tokens for every AI account you connect. A hosted copy would put everyone's tokens on one server that someone else runs, which defeats the purpose. Run it on a server you control, and your tokens stay there. There is no hosted Headroom, and none is planned.
| Overview | Compare |
|---|---|
| Timeline | Wallet |
| Analytics | Detailed |
| Connect | Light theme |
| Provider | Sign-in | What you see | Interface |
|---|---|---|---|
| Claude | Claude Code sign-in, or import .credentials.json | Session and weekly limits, per-model limits, extra-usage spend, reset grants | Private |
| Codex | Codex CLI device sign-in, or import auth.json | 5-hour and weekly limits, credits, banked reset credits | Private |
| Cursor | Browser approval | Included usage, Auto and API pools, Grok Bot, on-demand spend | Private |
| Copilot | GitHub device code, or import a gh token | AI credits, credits used, extra usage, chat and completions | Private |
| Grok | Grok CLI device sign-in, or import auth.json | Weekly pool, chat and code share, on-demand cap, prepaid balance | Private |
| Antigravity | Google sign-in, then paste the redirect | Gemini and Claude/GPT quota pools | Private |
| Vercel AI Gateway | API key | Credit balance, credits used, spend | Official |
HEADROOM_ENABLED_PROVIDERS. The default is all seven.flowchart LR
you([You]) -->|browser or phone| web[Web app]
web -->|session-checked API| server[Headroom server]
server --> db[(SQLite<br/>credentials sealed<br/>with AES-256-GCM)]
server --> sched[Scheduler]
sched --> conn[Connectors]
conn -->|direct HTTPS| prov[Provider APIs]
cli[Official CLI] -.->|once, at sign-in| server
server -->|alerts| out[Telegram / webhooks]
[!WARNING] Headroom reads private provider endpoints. A provider can restrict, suspend or ban an account for this kind of access. Use it at your own risk: the authors are not responsible for what happens to your accounts. Read the Disclaimer first.
Every way to install, update and remove Headroom is in Install.
curl -fsSL https://headroom.theblank.club/install | sh
headroom --open # serve on 127.0.0.1:8080 and open the dashboard
headroom service install # start at login
The script checks the download against the release checksums and puts headroom in ~/.local/bin. Run it again, or run headroom update, to upgrade. It supports macOS and Linux on arm64 and x64.
brew tap amitray007/headroom https://github.com/amitray007/headroom
brew install amitray007/headroom/headroom
brew services start headroom
npx headroomhq # or bunx headroomhq, uvx headroomhq, pipx run headroomhq
docker run -d --name headroom -p 8080:8080 \
-v headroom-data:/var/lib/headroom/data -v headroom-secrets:/etc/headroom \
ghcr.io/amitray007/headroom:latest
Open http://localhost:8080 and create the owner account. Back up both volumes together: without the key, every account must be reconnected. A compose file is deploy/compose.simple.yaml. To reach Headroom from other devices, put an HTTPS reverse proxy in front and set HEADROOM_PUBLIC_URL to its address. Image tags are in Releases.
Headroom publishes no port. A Tailscale container serves it over HTTPS to your own devices only.
git clone https://github.com/amitray007/headroom.git && cd headroom/deploy
cp .env.example .env # set TS_AUTHKEY and HEADROOM_PUBLIC_URL
docker compose up -d --build
Open https://<TS_HOSTNAME>.<tailnet>.ts.net and create the owner account. The full guide, including Dokploy and moving an existing instance, is in Self-hosting on a tailnet.
Requires mise, which installs the pinned Bun.
mise install && mise run install
mise run start # builds the web app and the binary, then serves on :8080
Open http://localhost:8080. In the checkout, mise sets data to .data/ and the two secret files to .state/. Back up .state/headroom.key with .data/headroom.db: without the key every account must be reconnected.
The binary keeps per-user state: on macOS under ~/Library/Application Support/Headroom/, on Linux data in ${XDG_DATA_HOME:-~/.local/share}/headroom/ and the key and secret in ${XDG_CONFIG_HOME:-~/.config}/headroom/. Codex, Claude and Grok sign in through their official CLI: install it on the same machine, or use Import. See Install.
headroom --open # serve on 127.0.0.1:8080 and open the dashboard
headroom --help # commands, flags and the resolved file locations
headroom paths # print the data, key and secret locations
headroom update # install the newest release (--check only reports)
headroom service install # run at login (launchd on macOS, a systemd user unit on Linux)
headroom service status # installed and running?
headroom service uninstall
service install must run from the compiled binary, not bun. On a headless Linux server also run loginctl enable-linger $USER. Back up the key with the database.
| Variable | Default | Purpose |
|---|---|---|
HEADROOM_PUBLIC_URL | none | The address you open Headroom at. Required behind a proxy; passkeys and cookies use it |
HEADROOM_ENABLED_PROVIDERS | all seven | Comma list: codex, claude, grok, antigravity, copilot, cursor, vercel_ai_gateway |
HEADROOM_HOST | 127.0.0.1 | Listen address. The container image sets 0.0.0.0 |
HEADROOM_PORT | 8080 | HTTP port (--port overrides) |
HEADROOM_DATA_DIR | macOS ~/Library/Application Support/Headroom/data, Linux ~/.local/share/headroom/data | Where the database lives |
HEADROOM_MASTER_KEY_FILE | next to the data on macOS, ~/.config/headroom/headroom.key on Linux | The key that seals credentials. Keep it out of the data folder |
HEADROOM_AUTH_SECRET_FILE | same folder as the key, headroom.auth-secret | Session signing secret |
HEADROOM_CODEX_BIN, HEADROOM_CLAUDE_BIN, HEADROOM_GROK_BIN | resolved on PATH | Absolute path of a sign-in CLI. Sign-in runs it with a private HOME, so a version-manager shim that finds the CLI through HOME fails; point this at the real binary |
Every variable is listed in Deployment and credential storage.
Report a vulnerability privately as described in SECURITY.md.
mise run dev # API server with reload on :8080
mise exec -- bun run web:dev # Vite on :5173, proxying /api to :8080
mise run check # docs, format, lint, typecheck, knip and tests
apps/server Hono API, scheduler, notifications
apps/web React 19 app
packages/core Enumerations, stores, crypto, connector contract
packages/view-model Presenters shared by every view, Demo Mode data
packages/connectors/* One direct-HTTP client per provider
docs/ Product, architecture, provider research, decisions
Start with CONTRIBUTING.md and the documentation index.
Headroom is free, and there is no paid cloud version. If it saves you a surprise limit, you can sponsor its development. Sponsorship pays for connector fixes when a provider changes its API, new providers, releases and documentation.
MIT. Headroom also contains work from other projects under their own licenses: see Third-party notices and LICENSES/. See also the Disclaimer.
[!NOTE] Headroom is an independent project, not affiliated with any provider listed above. Product names are trademarks of their owners.
It is for personal self-hosted use. It reads your own accounts with your own credentials, and each provider's terms still apply. The authors and contributors are not responsible if a provider bans, suspends, blocks or restricts an account, or for any other result of using Headroom.