Track API usage across Synthetic, Z.ai, Anthropic, Codex, GitHub Copilot, and Antigravity in one place. onWatch polls every provider's quotas, stores historical data locally, and surfaces patterns, projections, and cross-provider context-so you always know where your budget stands and which provider has headroom. Get notified via email or push notifications when quotas approach limits.
$ curl -fsSL https://raw.githubusercontent.com/onllm-dev/onwatch/main/install.sh | bash
Copy
$ brew install onllm-dev/tap/onwatch
Copy
PS> irm https://raw.githubusercontent.com/onllm-dev/onwatch/main/install.ps1 | iex
Copy
Each provider has different quotas, reset cycles, and gotchas. onWatch handles the complexity.
onwatch codex profile save <name>, refresh with onwatch codex profile refresh <name>.Provider dashboards show a snapshot. onWatch shows the story.
After a week of data, you stop guessing and start knowing when you burn quota fastest. onWatch reveals consumption rhythms that provider dashboards never show.
Extrapolates your consumption rate to the next reset boundary. Know whether you'll run out before relief arrives - and switch providers before it happens.
See every provider's headroom at a glance. When one nears its limit, you know exactly which alternative still has capacity.
Tracks every reset boundary independently - Anthropic's 5-hour and 7-day windows, Synthetic's ~5h subscription, Z.ai's daily token budget. Know when each resets and how much went unused.
Provider dashboards show a number. onWatch shows the context, history, and projections behind it.
Track multiple Codex accounts simultaneously. Save profiles with onwatch codex profile save, switch between accounts in the dashboard, and see per-account usage charts, sessions, and cycle history. Perfect for teams or personal/work account separation.
Time-series charts with 1h-30d ranges for every provider. Automatic reset cycle detection for Anthropic's 5-hour and 7-day windows, Synthetic's subscription cycles, and Z.ai's daily budget. Logs peak usage and delta per cycle.
Real-time countdown to each quota reset. Extrapolates your current rate to the next boundary so you know whether you'll make it - or should switch providers.
Every agent run logs peak consumption per provider. Compare sessions side-by-side, see cycle utilization trends, and get cross-provider routing recommendations.
Get notified when quotas cross thresholds. SMTP email with AES-256 encrypted passwords, or browser push notifications via the PWA. Configure per-quota thresholds and delivery channels.
Install onWatch from your browser for a native app experience. Works on desktop and mobile. Powered by Web Push (VAPID) with zero external dependencies. Note: Push notifications require HTTPS.
Automatically refreshes Anthropic tokens before expiry. Detects Claude Code credential changes, handles auth failures gracefully, and resumes polling when new tokens appear. Never manually update credentials.
Update from CLI or dashboard with one click. Automatic systemd restart on Linux, graceful binary replacement on macOS. Always stay current without manual downloads or service interruption.
AES-256-GCM encrypted SMTP passwords, auto-generated VAPID keys (ECDSA P-256), Web Push RFC 8291 encryption, constant-time auth, parameterized SQL. Zero telemetry - all data stays local.
15+ JSON endpoints for integration with your monitoring stack. Docker support with distroless base (~12 MB), non-root user, and Docker Compose ready. Perfect for DevOps workflows.
API providers show current usage. onWatch shows everything else.
| Capability | Synthetic | Z.ai | Anthropic | Codex | Copilot | onWatch |
|---|---|---|---|---|---|---|
| Current quota usage | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Reset time visibility | ✓ | ✕ | ✓ | ✓ | ✓ | ✓ |
| Historical usage trends | ✕ | ✓ | ✕ | ✕ | ✕ | ✓ |
| Reset cycle detection & history | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Per-cycle consumption stats | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Usage rate & projections | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Per-session tracking | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Cross-provider unified view | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Live countdown timers | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Email & push alerts | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| PWA installable | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| OAuth token auto-refresh | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Self-updating binary | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| REST API & Docker support | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
| Open source & self-hosted | ✕ | ✕ | ✕ | ✕ | ✕ | ✓ |
A background agent polls your API quotas, stores snapshots in SQLite, detects patterns, and serves an intelligence dashboard. That's it.
Anyone who pays for AI coding API access and wants to know where the budget goes.
Running Cline, Claude Code, or Kilo Code on a single API key? onWatch tracks your burn rate across Anthropic, Synthetic, Z.ai, Codex, and GitHub Copilot so you never get throttled mid-task.
Multiple people on the same Anthropic Max plan or shared Z.ai key? A single onWatch instance gives everyone a shared dashboard with historical trends and session tracking.
Subscribed to more than one provider? The cross-provider view shows every quota side-by-side so you can route work to whichever provider has headroom.
Deploy as a ~13 MB binary (<50 MB RAM) with zero SaaS dependencies. Use the SQLite database as a Grafana data source or pipe the REST API into your existing monitoring stack.
Choose the method that works best for you. Supports macOS, Linux, and Windows.
Install via Homebrew or the one-line shell installer. Both auto-detect Claude Code and Codex credentials. Homebrew handles PATH and updates natively; the shell installer sets up systemd (Linux) or self-daemonizes (macOS).
PowerShell installer for Windows with interactive setup and auto-detection of Claude Code/Codex credentials. Docker for containerized deployments with distroless image (~12 MB), non-root user, and persistent data volume.
Download the binary for your platform from GitHub Releases. Best for Linux with systemd service management.
Clone the repo and build with app.sh. Requires Go 1.25+. Full control over build flags and development workflow. Includes 486 tests with race detection.
See DEVELOPMENT.md for advanced build options and cross-compilation.
The fastest way is Homebrew: brew install onllm-dev/tap/onwatch, then onwatch setup to configure your providers interactively. Alternatively, install with one command: curl -fsSL https://raw.githubusercontent.com/onllm-dev/onwatch/main/install.sh | bash. The setup wizard auto-detects Claude Code and Codex credentials, prompts for API keys, and configures dashboard credentials. onWatch polls each configured provider every 60 seconds, stores snapshots in SQLite, and serves a dashboard at localhost:9211 with live countdowns, charts, and cross-provider views.
Yes. onWatch monitors the API provider (Synthetic, Z.ai, Anthropic, Codex, GitHub Copilot, or Antigravity), not the coding tool. Any tool that uses these API keys-including Cline, Roo Code, Kilo Code, Claude Code, Cursor, GitHub Copilot, Antigravity, and others-will have its usage tracked automatically.
Anthropic's Pro/Max plan exposes utilization percentages and reset times for five_hour and seven_day windows, plus per-model breakdowns (seven_day_sonnet, seven_day_opus). onWatch polls this data, stores historical snapshots, and adds what Anthropic doesn't show: usage trends over time, reset cycle detection, rate projections, and cross-provider context alongside Synthetic, Z.ai, Codex, and GitHub Copilot. Set ANTHROPIC_TOKEN in your .env or let onWatch auto-detect from Claude Code credentials.
Antigravity provides access to multiple AI models (Claude, Gemini, GPT). onWatch auto-detects the Antigravity language server running on your machine by scanning for the process and extracting connection details. Set ANTIGRAVITY_ENABLED=true in your .env file. Models are grouped into logical quota pools (Claude+GPT, Gemini Pro, Gemini Flash) for cleaner tracking. For Docker deployments, configure ANTIGRAVITY_BASE_URL and ANTIGRAVITY_CSRF_TOKEN manually.
The All Providers view is onWatch's cross-provider unified dashboard. It shows Synthetic, Z.ai, Anthropic, Codex, GitHub Copilot, and Antigravity quotas side-by-side so you can compare headroom across providers at a glance. For example, if your Synthetic search quota is at 95% but Z.ai tokens are at 34%, you know to route work to Z.ai. No other tool provides this cross-provider intelligence-provider dashboards only show their own data.
No. onWatch has zero telemetry. All usage data is stored locally in a SQLite file on your machine. The only outbound network calls are to the Synthetic, Z.ai, Anthropic, Codex, GitHub Copilot, and Antigravity quota APIs you configure. No analytics, no tracking, no cloud. The source code is fully auditable on GitHub (GPL-3.0).
onWatch uses <50 MB RAM under all conditions (typically ~34 MB idle, ~43 MB under heavy load), measured with all six agents (Synthetic, Z.ai, Anthropic, Codex, GitHub Copilot, Antigravity) polling in parallel. Breakdown: Go runtime (5 MB), SQLite in-process (2 MB), HTTP server (1 MB), polling buffer (1 MB). This is lighter than a single browser tab and designed to run as a background daemon indefinitely.
Configure SMTP settings in the Settings page to receive email alerts when quotas cross warning or critical thresholds, or when they reset. SMTP passwords are encrypted at rest with AES-256-GCM. For push notifications (Beta), enable them in Settings → Notifications → Delivery Channels and allow browser notifications. onWatch uses the Web Push protocol (VAPID) with no external service dependencies - VAPID keys are auto-generated and all encryption is handled locally. Note: Push notifications require HTTPS to work. You can choose email, push, or both.
Pre-built binaries are available for macOS (ARM64 and AMD64), Linux (AMD64 and ARM64), and Windows (AMD64). onWatch is written in pure Go with no CGO dependencies, so it cross-compiles cleanly to any Go-supported platform.
Every hour you run without onWatch is an hour of usage data you'll never get back. Install in under a minute, start collecting intelligence immediately. Free, open source, zero telemetry.