Know when your models are ready.
Download for Windows • User Guide • Security Policy • GitHub Release
Pulse monitors AgentRouter availability for developers using Claude Code and Codex.
┌───────────────────────────────────────────────┐
│ ● GPT-6.1 Sol RECOMMENDED │
│ Unlimited · all day · live multiplier │
│ │
│ Latest notice: Opus 5.5 temporarily offline │
│ Models, notices & usage sync automatically │
└───────────────────────────────────────────────┘
Getting 402 Budget pool quota has been exhausted on AgentRouter?
Pulse follows AgentRouter announcements, your live account models, and gateway connectivity. Quota countdowns appear only when a model has published release times.
When you're building with Claude Code, Codex, or AgentRouter API tokens, shared budget pools run dry during peak hours. Manually sending test prompts or refreshing status dashboards wastes time and disrupts your coding flow.
Pulse runs as a lightweight, always-on-top desktop widget that sits alongside your IDE or terminal. It monitors AgentRouter availability in the background at a configurable polling interval, updates models and notices automatically, displays reported API-key usage, and shows a local-time countdown for published quota drops.
- AgentRouter Availability Polling: Background health and latency benchmarks at configurable intervals directly against
agentrouter.org. - HTTP 402 Quota Detection: Instantly recognizes budget pool exhaustion and provides 1-click fallback to uninterrupted models.
- Local Timezone Countdown: Precision countdown tickers to the selected model's current published release times.
- Compatible AgentRouter Client Headers: Uses authentic client identification profiles (
claude-cli/1.0.108) to ensure seamless interoperability for Claude Code and Codex workflows. - Automatic Models & Notices: Refreshes
/v1/models, public pricing and dated announcements every five minutes, with Sync Now for immediate updates. Model removals, supply changes, aliases and recommendations update the UI automatically. - Reported Usage: Displays API-key credit usage and key caps. Shows recent per-model input/output token counts when logs are returned; unreported model balances stay unknown.
- Cached Provider Data: Keeps the last successful model and notice data during outages and visibly marks stale data.
- Windows DPAPI Local Key Encryption: Pulse encrypts AgentRouter API keys at rest using Windows Data Protection API (
CryptProtectData). The encrypted value is bound to the Windows user context and is not stored as plaintext. - Always-on-Top Floating Widget: Sleek, distraction-free desktop window with a 1-click compact mini-dock mode.
AgentRouter's latest dated notice says Claude Opus 5.5 is temporarily unavailable, GPT-6 Astra is unlimited all day, and GPT-6.1 Sol is unlimited at a low multiplier and recommended first. Pulse fetches the live account catalog and pricing rather than assuming every model is available to every token.
Unlimited and suspended models have no quota refill countdown. If a later announcement limits a model and publishes release times, Pulse calculates that model's local countdown and updates any enabled auto-focus jobs. A restored model is checked again instead of reusing an old quota schedule.
Dated announcements take priority over the older /api/notice text. If a refresh fails, Pulse keeps the last good data and retries automatically.
| Issue / Search Query | What It Means | How Pulse Solves It |
|---|---|---|
402 Budget pool quota has been exhausted |
The requested model or shared provider pool has exhausted its budget. | Uses the selected model's published release schedule and offers an available fallback. |
401 unauthorized client detected |
Gateway rejected unrecognized or bare HTTP headers. | Automatically sends authentic, compatible client headers (claude-cli/1.0.108). |
503 no available channel in group |
Model is not routed in your token's assigned channel group. | Reconciles the live account catalog and offers another available model. |
| AgentRouter Claude Code connectivity | CLI coding tools fail silently during pool outages. | Float Pulse next to VS Code / terminal to know when Claude is ready before running commands. |
- Download Pulse.exe (v1.1.0) .
- Double-click to launch. No installer, no terminal window, no dependencies.
- Click Enter Key in the top bar to paste your AgentRouter API key (
sk-...).
# 1. Clone the repository
git clone https://github.com/MrTG1B/Pulse.git
cd Pulse
# 2. Install dependencies
pip install -r requirements.txt
# 3. Launch the desktop widget
python app.py
# Or launch in web browser mode
python app.py --browserPulse is designed with zero-telemetry and local-first security principles:
- Windows DPAPI Encryption: Pulse encrypts AgentRouter API keys at rest using the Windows Data Protection API (
CryptProtectDataviacrypt32.dll). The encrypted value is bound to the Windows user context and is not stored as plaintext. - No Key Exposure Over Local API: Local HTTP endpoints never return raw API keys over the network (only
has_api_keyand masked strings). - No Analytics Telemetry: Model and usage data stays local. Optional Gemini verification can send candidate window titles and screenshots to Google when enabled; the interface also loads Google Fonts.
- Masked Credentials: Keys are masked across all UI views (
sk-••••••••1234). - Git-Safe:
config.jsonis explicitly gitignored.
For full disclosure and vulnerability reporting, see SECURITY.md.
The model list follows your account token. Current provider policies include:
| Model ID | Supply | Behavior |
|---|---|---|
gpt-6.1-sol |
Unlimited | Recommended; live low multiplier |
gpt-6-astra |
Unlimited | Available all day; no scheduled refill |
claude-opus-5-5 |
Temporarily unavailable | Disabled until AgentRouter announces restoration |
| Other account models | As reported | Added automatically; unknown quota policies remain unknown |
Use Sync Now to refresh immediately. Automatic metadata and usage synchronization continues when Auto-check is off; connection diagnostics remain separately controlled.
The API-Key Credits & Model Usage panel displays the figures returned by AgentRouter. Billing credit usage is separate from raw token counts. An uncapped API key does not report the user's remaining account balance. Recent model logs, when returned, are a partial history rather than lifetime totals. Shared model pool quotas and remaining tokens are marked not reported when the API does not expose them.
Pulse is built as the availability engine for AI coding workflows:
PULSE
│
Availability Engine (v1.1 — Current)
│
┌──────┴──────┐
│ │
Claude Code Codex
│ │
└──────┬──────┘
│
Task Queue (Planned)
│
Scheduler (Planned)
- v1.1 (Current): Automatic model, notice and usage synchronization, model-specific quota tracking, DPAPI security, and a floating desktop widget.
- Future Releases: Automated task queue that queues Claude Code and Codex prompts during quota dry spells and automatically executes them the second capacity refreshes.
Pulse/
├── src/ # Core Python application modules
│ ├── app.py # Desktop window launcher (WebView2)
│ ├── server.py # Local loopback server & API routes
│ ├── router_client.py # Gateway diagnostics & model discovery
│ ├── provider_updates.py # Background models, pricing, notices & cached policies
│ ├── usage_service.py # Reported API-key credit and recent model usage
│ ├── scheduler.py # Model-specific quota release focus jobs
│ ├── focus_trigger.py # Optional Codex / Claude Code window controls
│ ├── gemini_helper.py # Optional AI verification & narration
│ ├── time_service.py # Quota schedule math & timezone calculations
│ └── config_manager.py # Windows DPAPI encryption & config persistence
├── static/ # Frontend UI web application
│ ├── index.html # Widget markup & in-app help guide
│ ├── style.css # High-contrast dark theme
│ ├── widget.js # Reactive UI controller & Web Audio
│ └── icon.png # Webview asset
├── assets/ # Brand assets & preview media
│ ├── icon.png # High-resolution master icon (PNG)
│ ├── icon.ico # Multi-resolution Windows app icon (ICO)
│ └── social_preview.png # 1280x640 GitHub social preview card
├── docs/ # Guides & policy documentation
│ ├── USER_GUIDE.md # Complete user manual & troubleshooting
│ ├── SECURITY.md # Encryption architecture & security policy
│ ├── CONTRIBUTING.md # Setup instructions & developer guidelines
│ └── CHANGELOG.md # Version history & release notes
├── scripts/ # Build & release automation
│ ├── build_exe.py # PyInstaller standalone build script
│ ├── build.bat # 1-click Windows build batch file
│ ├── generate_social_preview.py # Social card generator
│ └── publish_release.py # GitHub Release publishing automation
├── tests/ # Automated test suite (137/137 passing)
├── app.py # Root launcher entrypoint
├── requirements.txt # Python package dependencies
└── LICENSE # MIT License
Pulse maintains 100% test pass rates across all modules:
python -m unittest discover testsTests cover encrypted keys, gateway classification, notice precedence, model aliases, account isolation, cache recovery, background refresh, reported credit units, recent token logs, model-specific schedules, desktop behavior, and local REST endpoints.
Distributed under the MIT License.
Target Gateway: AgentRouter.
