neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
QuotaBar: Claude Code·Codex·Cursor·Grok·Antigravity의 실시간 사용량 추적 메뉴바 앱
QuotaBar is a lightweight menubar app that tracks live usage quota for Claude Code, Codex, Cursor, Grok, and Antigravity — with per-provider tray indicators and local cost estimates.
개발 도구TypeScript · RustGitHub @majiayu000온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Tauri v2 menubar app for monitoring Claude Code, Codex, Cursor, Antigravity quotas and local usage cost.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
QuotaBar is a Tauri v2 menubar app for monitoring Claude Code, Codex, Cursor, Grok Build, and Antigravity usage. It shows live quota windows, per-provider tray indicators, and local cost estimates from on-device logs.README 전문 보기 ↗See which AI coding quota is closest to its limit, when it resets, and where your local usage went. QuotaBar combines a tray monitor and desktop analysis for Claude Code, Codex, Cursor and Grok Build. Antigravity is hidden until QuotaBar can track its quota.
Website · Download installers · Installation and first run · Build from source
See the release's installation/signing notes for that exact build. Interface scaling is available since v0.5.6. The original Windows 10 / 27-inch 2K case still needs confirmation in GH186.
agent-sessions reads native session records and preserves provenance. ccstats handles local accounting, pricing and CLI/SDK/machine interfaces. QuotaBar uses its published SDK and owns the tray, desktop analysis, alerts and settings. Install QuotaBar to use the app; you do not need to install those libraries or the separate ccstats desktop. See product boundaries and delivery status.
These screenshots show illustrative data. They were captured on 2026-10-11 from a production build of the QuotaBar v0.6.0 React UI in Chromium, with a deterministic mock desktop backend injected by scripts/capture_demo_screenshots.mjs. The quota percentages, token totals, costs, projects and session titles are invented; no provider account, email, account id, token, cookie or local record was read. The mock only exists in that capture script and is not part of the app bundle. The screenshots show the interface, not native backend connectivity or signed/notarized artifacts. A dark workspace variant is in docs/assets/quotabar-demo-workspace-dark.png. See docs/demo-proof.md for the capture scope and refresh steps.
weeklyTotal), Opus, Sonnet, Design, and Fable 5 windowsweeklyTotal as a labeled card, not the implicit tray or 80/95 alert headlinesecondary_window.used_percentprimary_window.used_percentautoPercent)creditUsagePercent)src/App.tsxsrc/components/*src/services/backend.tssrc/services/service_meta.tssrc/services/tray_visibility.tssrc/types/models.tssrc/utils/*src-tauri/src/commands.rssrc-tauri/src/domain/models.rssrc-tauri/src/services/claude.rssrc-tauri/src/services/codex.rssrc-tauri/src/services/cursor.rssrc-tauri/src/services/grok.rssrc-tauri/src/services/antigravity.rssrc-tauri/src/services/cost.rssrc-tauri/src/services/http.rssrc-tauri/src/services/tray.rssrc-tauri/src/services/tray_icon.rssrc-tauri/src/services/window.rsCHANGELOG.mddocs/release.mdCURSOR_SESSION_TOKEN for Cursor quota datagrok login) for Grok quota dataSettings → Display → Interface size offers 100%, 125%, and 150%. It scales text and controls in both windows and is remembered across restarts. The tray resizes and stays anchored to its icon; content scrolls when screen space is limited.
Settings → Display → Language offers Follow system, 简体中文, and English. Both the menu bar panel and desktop workspace update immediately and share the saved preference. Chinese system locales use Simplified Chinese; other system locales use English. Quota data, current navigation and provider polling survive language changes.
UI messages live in src/i18n/en.ts and src/i18n/zh-CN.ts. See the i18n architecture
for rendering, stored messages, formatting and extension rules.
Building from source requires Node.js with npm, the Rust toolchain, and the Tauri prerequisites for your OS. These tools are not required to run an installer.
QuotaBar starts as a menu bar app. Click a tray icon for the quota popover. A resizable desktop workspace (Overview, Quota, Usage, History, Sources, and Settings) is optional: open it from the tray menu. It does not open on launch. Closing the workspace keeps tray monitoring running; Quit exits the application.
Local analytics use one filtered ccstats report for summaries, projects, sessions, daily/hourly history, activity, and period comparisons. Missing source data and incomplete pricing are shown explicitly. API-equivalent estimates are not subscription bills. Session titles come from existing source metadata or local manual names, with no model summarization. Claude's explicit JSONL custom and generated titles are read from the contributing session files even when a session index is missing; prompt/response text is never used as a title fallback. Sessions with no recorded title keep their project and session ID. JSON/SVG summary exports omit session titles and paths.
The latest matching report is cached locally for quick startup while fresh analysis runs in the background. First-run loading has a reduced-motion-aware animation. Invalid Claude credentials require login before a quota request; failed reads wait for a manual recheck, with rate-limit deadlines still applied.
The repositories remain separate. QuotaBar depends on the published ccstats 0.11.0 SDK from crates.io; Cargo.lock pins the resolved version. Claude/Codex parsing is shared through agent-sessions. The SDK excludes the independent gpt-reserve pool from subscription week estimates while retaining it in general usage, and includes Grok 4.7 pricing. No local SDK archive or patch preparation is needed. Official quota percentages remain provider-reported; ordinary Luna usage is not excluded.
Cost estimates automatically use the SDK's public LiteLLM price catalog. The SDK downloads it when no fresh price cache exists and refreshes it after 24 hours. Once a new model is included in that catalog and recognized by the SDK, its prices become available without a QuotaBar release. Only the public catalog is fetched; local usage logs are processed on-device. If the download fails, the SDK uses its existing cache or bundled prices; models without a known price remain unavailable rather than being shown as free.
For GPT-6.1 Sol, the catalog supplies the standard API prices: $2 input, $0.10 cached input, $2.50 cache writes, and $10 output per million tokens. Above 272K input tokens, the full request uses $4 input, $0.20 cached input, $5 cache writes, and $15 output. These are API-equivalent estimates, not subscription charges.
Weekly token capacity shows only Astra and GPT-6.1 Sol. It defaults to the local estimate when available. Click the source badge to switch between local and community values; the badge flips horizontally and respects reduced motion. Switching does not refetch usage or change the official quota percentage.
Local conversion uses all matched token records in the current weekly window,
including cached input. Divide their API-equivalent cost by the official used
fraction to estimate the full-week value. Reprice those same input/cache/output
tokens as Astra, then calculate weekly value / Astra replay cost × observed tokens. This works with mixed-model usage and does not require a continuous
single-model span or five percentage points of usage. Sol shows its API-price
equivalent: Astra tokens × 5. The
Astra and
GPT-6.1 Sol standard API
input, cache-write, and output prices checked on October 11, 2026 have the same
5 ratio. Cached input is 10× ($1.00 / $0.10). Local conversion uses the 5×
standard-rate ratio. This is price conversion, not a measured Sol subscription allowance.
The community reference view shows Astra ≈914.8M observed tokens per full
week, including cached input, from Codex Weekly Quota
Observatory, snapshot
2026-10-11T14:57:34.375Z, one Pro 20× account at Standard speed. GPT-6.1 Sol
uses the same 5× API-price conversion as the local view. The observatory does
not yet publish a dedicated 6.1 Sol week, so QuotaBar does not invent a Sol
sample. These values are not the current account's allowance. The source and date
are shown in the panel; the Astra reference and dated price ratio live in
src/services/codex_weekly_reference.json.
If local data or Astra pricing is unavailable, the panel uses the community view
and disables the switch with an explicit unavailable label.
The two rows represent alternative uses of one quota and cannot be added. Other devices, cloud usage and workload changes can skew local estimates. Official remaining percentages stay provider-reported. The mixed-workload API-equivalent value and any local valuation errors remain in collapsed details. SDK changes are tested and released in ccstats first, then adopted with an explicit Cargo dependency update.
npm ci
npm run tauri dev
Frontend and Rust verification:
npm ci
npm run release:check
npm test
npm run build
cargo fmt --manifest-path src-tauri/Cargo.toml --check
cargo check --manifest-path src-tauri/Cargo.toml
cargo test --manifest-path src-tauri/Cargo.toml
Local macOS app bundle:
npm run tauri build -- --bundles app
src-tauri/target/release/bundle/macos/QuotaBar.app
Downloadable release bundles:
# macOS, for the current host architecture
npm run tauri build -- --bundles dmg
# Windows
npm run tauri build -- --bundles msi,nsis
# Linux
npm run tauri build -- --bundles appimage
Expected output locations:
src-tauri/target/release/bundle/dmg/
src-tauri/target/release/bundle/msi/
src-tauri/target/release/bundle/nsis/
src-tauri/target/release/bundle/appimage/
The latest published release is available from GitHub Releases.
Published v* tags build Developer ID signed and notarized macOS DMGs. Older GitHub Release assets such as v0.5.1 remain unsigned. Pull-request workflow artifacts stay unsigned tester builds.
Release candidates should be built by the release-artifacts GitHub Actions workflow or from a clean checkout, then attached manually to the matching GitHub release only after final human approval. The workflow uploads build artifacts and SHA-256 manifests for inspection; it does not publish a GitHub Release. See docs/release.md for the release checklist and signing-secret requirements.
With no saved panel preferences, the switcher shows detected services and keeps them accessible if a connection later fails. Use Add service for setup, or Settings to choose providers manually.
On first launch, Overview shows detected connections and instructions for signing in through each provider. Use Check connection after signing in. QuotaBar reads existing local sign-ins and delegates Grok session renewal to the installed Grok CLI; interactive sign-in stays with the provider. Antigravity quota tracking is still pending.
For normal use, download the current installer from GitHub Releases. For development, install from a local build.
macOS:
.dmg for Apple Silicon (aarch64) or Intel (x64).For developers installing a local build:
./scripts/install_app.sh
./scripts/run_app.sh
These macOS scripts operate only on /Applications/QuotaBar.app; they do not
launch or stop development binaries. install_app.sh stages the complete local
bundle before stopping the installed app, waits about five seconds for exit,
and replaces the bundle without retaining obsolete files. Failed staging or
shutdown leaves the installed bundle untouched.
Build and install the current checkout, then request launch:
npm run tauri build -- --bundles app
./scripts/reinstall_and_run.sh
reinstall_and_run.sh itself does not build. For development with hot reload,
use npm run tauri dev. run_app.sh fails if the installed app is missing;
it never falls back to an older local binary. A successful launch request does
not certify that the app stayed running.
Windows:
.msi or .exe from GitHub Releases.npm run tauri build -- --bundles msi,nsis.Linux x64:
.AppImage from GitHub Releases.chmod +x QuotaBar_*.AppImage./QuotaBar_*.AppImagenpm run release:check
npm test
npm run build
cargo fmt --manifest-path src-tauri/Cargo.toml --check
cargo check --manifest-path src-tauri/Cargo.toml
cargo test --manifest-path src-tauri/Cargo.toml
npm run tauri build -- --bundles app
~/.codex/auth.json and ChatGPT usage windows returned by the current backend API.CURSOR_SESSION_TOKEN.claude login%USERPROFILE%\.claude\.credentials.json from a native Windows Claude Code login, or .credentials.json under CLAUDE_CONFIG_DIR when set in the QuotaBar process. A variable set only inside your terminal is not automatically available to an app launched from Explorer. A WSL-only login is not read by the Windows app.CLAUDE_CODE_OAUTH_TOKEN~/.codex/auth.json is validcodex login flow again if the token expiredCURSOR_SESSION_TOKENccstats, using automatically refreshed public pricesMIT
≥≈—~/.grok/auth.json on each polling cycle. When a credential has a refresh token and is inside the CLI's early-invalidation window (300 seconds by default, or GROK_AUTH_EARLY_INVALIDATION_SECS), runs the installed official grok models command to let Grok renew and save its own credentials, then rereads them before requesting quota. Renewal rereads the same selected account record. Successful renewal keeps immediate authentication recovery available. A billing 401/403 also runs renewal once when the rejected credential still has a refresh token, rereads credentials, and retries billing once; failed renewal or a second authentication rejection stays disconnected. This does not start a conversation. QuotaBar waits up to 20 seconds per request, then lets the CLI finish saving credentials in the background. Automatic and manual refreshes do not start another helper while it is running. Unsuccessful automatic renewal retries after 5 minutes; manual refresh can retry after the helper exits. Proactive renewal errors keep matching-account snapshots younger than 15 minutes as last known data with the error attached; unknown or ambiguous account identities cannot reuse a snapshot. Confirmed authentication rejection and failed rejection-driven renewal remain disconnected. QuotaBar never writes tokens itself or logs CLI output. If renewal remains unavailable, open grok and sign in only if prompted.