{"data":{"slug":"onllm-dev-onwatch","name":"onWatch","tagline":"Track AI API quotas across Synthetic, Z.ai, Anthropic (Claude Code), Codex, GitHub Copilot & Antigravity in real time. Lightweight background daemon (<50MB RAM), SQLite storage, Material Design 3 dash","github_url":"https://github.com/onllm-dev/onWatch","owner":"onllm-dev","repo":"onWatch","owner_avatar_url":"https://avatars.githubusercontent.com/u/259109172?v=4","primary_language":"Go","stars":673,"forks":51,"topics":["ai-api-monitoring","antigravity","api-monitoring","claude-code","codex","developer-tools","golang","openai","quota-tracker","zai"],"archived":false,"github_pushed_at":"2026-06-19T07:22:33+00:00","maintenance_label":"Active","url":"https://www.graphcanon.com/tools/onllm-dev-onwatch","markdown_url":"https://www.graphcanon.com/tools/onllm-dev-onwatch.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/onllm-dev-onwatch","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=onllm-dev-onwatch","description":"Track AI API quotas across Synthetic, Z.ai, Anthropic (Claude Code), Codex, GitHub Copilot & Antigravity in real time. Lightweight background daemon (<50MB RAM), SQLite storage, Material Design 3 dashboard. Zero telemetry.","homepage_url":"https://onwatch.onllm.dev","license":"GPL-3.0","open_issues":11,"watchers":3,"ai_summary":null,"readme_excerpt":"### Manual Installation\n\n**Download binaries** from the [Releases](https://github.com/onllm-dev/onwatch/releases) page. Binaries are available for macOS (ARM64, AMD64), Linux (AMD64, ARM64), and Windows (AMD64).\n\n**Or build from source** (requires Go 1.25+):\n\n```bash\ngit clone https://github.com/onllm-dev/onwatch.git && cd onwatch\ncp .env.example .env    # then add your API keys\n./app.sh --build && ./onwatch --debug    # or: make build && ./onwatch --debug\n```\n\n**Or use Docker** (requires Docker or Docker Compose):\n\n```bash\ncp .env.docker.example .env   # add your API keys\ndocker-compose up -d\n```\n\nOr via `app.sh`:\n\n```bash\n./app.sh --docker --run\n```\n\nThe Docker image uses a distroless base (~10-12 MB) and runs as non-root. An Alpine variant with shell access is also available (`ghcr.io/onllm-dev/onwatch:alpine`). Data persists via volume mount at `/data`. Logs go to stdout (`docker logs -f onwatch`). See [Docker Deployment](#docker-deployment) for details.\n\n---\n\n### How do I monitor Z.ai (GLM Coding Plan) API quota?\n\nSet `ZAI_API_KEY` in your `.env`. onWatch polls the Z.ai `/monitor/usage/quota/limit` endpoint and tracks token limits, time limits, and tool call quotas. All providers can run simultaneously.\n\n---\n\n### How do I track my MiniMax Coding Plan usage?\n\nSet `MINIMAX_API_KEY` in your `.env` with your MiniMax Coding Plan API key. Get your key from the [MiniMax Console](https://platform.minimax.io). onWatch tracks the shared quota pool across all MiniMax models (M2, M2.1, M2.5) with 5-hour rolling window reset cycles. To track multiple MiniMax subscriptions, add additional accounts via the dashboard Settings > MiniMax > Add Account. Each account polls independently with its own API key and region. Full walkthrough: [MiniMax Setup Guide](docs/MINIMAX_SETUP.md).\n\n---\n\n## Docker Deployment\n\nThe container auto-detects the Docker environment and runs in foreground mode with stdout logging.\n\n> [!NOTE]\n> onWatch provides Docker support with a distroless runtime image (~10-12 MB) and an Alpine variant (~15 MB) with shell access.\n> You will almost certainly need to account for file permissions when using bind mounts for the SQLite database, as the container runs as non-root (UID 65532).\n> See [Storage](#storage) below for details.\n\n---\n\n### Quick Start\n\n**Using pre-built images from GitHub Container Registry:**\n\nMulti-arch images (linux/amd64, linux/arm64) are automatically built and published on each release:\n\n```bash\n\n---\n\n## License\n\nGNU General Public License v3.0. See [LICENSE](LICENSE).\n\n---","github_created_at":"2026-02-06T13:24:09+00:00","created_at":"2026-07-11T23:15:23.83604+00:00","updated_at":"2026-07-11T23:15:41.080411+00:00","categories":[{"slug":"computer-vision","name":"Computer Vision","url":"https://www.graphcanon.com/categories/computer-vision","markdown_url":"https://www.graphcanon.com/categories/computer-vision.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/computer-vision"},{"slug":"inference-serving","name":"Inference & Serving","url":"https://www.graphcanon.com/categories/inference-serving","markdown_url":"https://www.graphcanon.com/categories/inference-serving.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/inference-serving"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"}],"tags":[{"slug":"ai-api-monitoring","name":"ai-api-monitoring"},{"slug":"antigravity","name":"antigravity"},{"slug":"api-monitoring","name":"api-monitoring"},{"slug":"claude-code","name":"claude-code"},{"slug":"codex","name":"codex"},{"slug":"developer-tools","name":"developer-tools"},{"slug":"golang","name":"golang"},{"slug":"openai","name":"openai"}],"trust":{"provenance":{"is_fork":false,"github_id":1151441959,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T23:15:30.914Z","maintenance":{"label":"Active","score":82,"methodology":"github_public_v1","releases_90d":14,"days_since_push":22,"last_release_at":"2026-06-19T07:30:28Z"},"security_summary":{"status":"findings","scanner":"osv@v1","low_count":27,"high_count":0,"last_scan_at":"2026-07-11T23:15:31.281Z","medium_count":0,"scan_profile":"deps","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-11T23:15:30.623Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-07-11T23:15:30.623Z","managed_saas":false},"languages":{"value":["go"],"source":"github.language","observed_at":"2026-07-11T23:15:30.623Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-07-11T23:15:30.623Z"},"license_spdx":{"value":"GPL-3.0","source":"github.license","observed_at":"2026-07-11T23:15:30.623Z"}}}}