Install
openclaw skills install @synthet1x/ai-quota-dashboardлимиты нейросетей, quota dashboard, остатки токенов, подписки и куки. Real-time multi-provider AI quota dashboard with secure token management and telemetry guide.
openclaw skills install @synthet1x/ai-quota-dashboardReal-time telemetry, monitoring, and automated tracking for AI model quotas, subscription reset times, and API token balances across cloud and self-hosted providers (Google Antigravity, ElevenLabs, OpenRouter, xAI/Grok, Anthropic, OpenAI, Perplexity, LiteLLM, Ollama, and custom gateways).
To pass automated security audits (skillspector, llm, vt) and safeguard user privacy, all credential operations must strictly follow these rules:
Zero Process Argument Leakage ([TT5]):
argv). CLI arguments are visible to ps aux, process accounting daemons, and system audit logs.Strict Filesystem Isolation ([PE3]):
chmod 700 ~/.config/ai-quota-dashboard and chmod 600 config.json).Strict Origin Domain Pinning ([SQP-2], [E1]):
Official Developer Credentials & Service Tokens:
For complete specifications and audit scripts, see references/security-cookie-guide.md.
When integrating an AI provider without public quota countdown documentation:
Standard Telemetry Ingestion:
/api/v1/credits, ElevenLabs /v1/user/subscription, Ollama /api/tags).used, limit, percent_used, unit, and resets_at (ISO 8601 UTC).When Endpoints Lack Explicit Limit Numbers:
remaining = balance / unit_price).Pick the window that actually consumes (multi-bucket providers):
fetchAvailableModels returns only the 5-hour quotaInfo — short and self-resetting, so it reads ~100% even under heavy use, and a dashboard built on it looks frozen at full while usage is real.POST /v1internal:retrieveUserQuotaSummary returns groups[].buckets[] with bucketId gemini-weekly (the weekly limit — the one that moves) and gemini-5h. Collect both and render them as two labelled bars, so a full short window and a draining weekly window are not confused.For full architecture details, see references/api-reverse-engineering.md.
When monitoring expanding multi-account pools (e.g. 6+ Google accounts, multiple ElevenLabs keys) through outbound proxies:
Subprocess Lifetime Budget:
subprocess.run(timeout=...)) to at least 60–75s (not 25s) to prevent SIGKILL interruptions mid-poll.Proactive Pre-emptive Token Refresh (Zero Flapping):
401 Unauthorized before attempting a refresh. Check stored expires timestamps. If now > expires - 300s, proactively request a fresh access token via refresh_token and persist it to disk before querying quota endpoints.Graceful Cache Fallback:
URLError, handshake lag, HTTP 502/503) must not wipe account telemetry or flag status as error. Retain the previous successful quota readings (prev_cache). An account is only truly in error if the token endpoint returns an unrecoverable revocation (invalid_grant) or credentials are missing.Dynamic Usability Badges & Display Focus:
remaining > 0% and no auth error), not raw registered credential counts.Pool edits fight the collector:
antigravity-pool-diagnose → pool-management.md.The dashboard supports three operational modes:
0.0.0.0:8885 and restrict firewall to local subnet. Access via http://<LAN_IP>:8885.htpasswd) so public bots cannot scrape private quota telemetry.For complete Nginx blocks, firewall rules, and VPN instructions, see references/networking-deployment.md.
The dashboard includes full Progressive Web App support to run as a standalone fullscreen app on iOS and Android:
Launches in fullscreen mode with an app icon and dark theme status bar.
config.json has permissions 0600 (ls -l ~/.config/ai-quota-dashboard/config.json).ps aux or shell history.