syrtis

skill
Security Audit
Warn
Health Pass
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 367 GitHub stars
Code Warn
  • process.env — Environment variable access in landing/astro.config.mjs
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

AI token usage & quota monitor for the macOS menu bar — native Swift, Liquid Glass, 3D contribution graph. Tracks Claude Code, Codex, Cursor, OpenCode & 25+ agents locally.

README.md

Syrtis

AI token usage & quota monitor for the macOS menu bar — native Swift, Liquid Glass.

English · 繁體中文 · 简体中文

Total installs MIT Licence macOS 14+ Apple Silicon Swift 6.4+ Liquid Glass


Syrtis is a free, open-source macOS menu-bar app that reads the session logs your AI coding tools already write to disk and displays your tokens, costs, and subscription quotas. It supports 25+ tools—including Claude Code, Codex, Cursor, OpenCode, Gemini CLI, Copilot, Kiro, and Antigravity—completely on-device, with no Dock icon, no telemetry, no user account, and no cloud sync.

Until version 2.0, the app was called TokenBar on macOS; upgrading preserves your settings, history, and login item unchanged. A companion Windows tray version, also named Syrtis, is built on the same Rust core.

Syrtis — where your tokens settle

The menu-bar title displays today's token count, total cost, live tokens per minute, or remaining subscription quota—shown as signal bars, a progress ring, or a popsicle that melts as the window drains. The menu-bar cat spins faster the more tokens you burn, tracing back to RunCat by Takuto Nakamura.


The dashboard

Clicking the icon opens a Liquid Glass panel (a popover before macOS 27). A row of app tabs filters which agents to inspect, while a view switch breaks down that usage across eight lenses—Overview, Quota, Models, Monthly, Daily, Hourly, Stats, and Agents—alongside the full year of activity rendered as an orbitable 3D graph.

Interactive 3D contribution graph

Overview
Overview — the tightest limit, today, and the year at a glance
Quota view
Quota — past windows and when the allowance goes
Models view
Models — every model ranked by cost
Monthly view
Monthly — active months, with month drill-down
Daily view
Daily — active days, with day drill-down
Hourly view
Hourly — when in the day you burn tokens
Stats view
Stats — headline summary & streaks
Agents view
Agents — sub-agents ranked by cost
Settings
Settings — menu-bar title, icon & quota source

The dashboard also provides OAuth quota cards with pace projections, a live session trace, activity streaks, and keyboard control (⌘1–9 tabs, ⌘G chart toggle, ⌘, settings). If a background refresh fails, Syrtis never blanks a reading: the last known value stays until a fresh one lands.

Install

brew install --cask nanako0129/tap/syrtis

In-app updates arrive via Sparkle; betas ride an opt-in channel (Settings → "Receive beta updates"). The app is ad-hoc signed (not notarized)—the cask clears the quarantine attribute on install, as disclosed. Requires an Apple Silicon Mac on macOS 14+ (Liquid Glass needs macOS 26 and the glass panel macOS 27; earlier systems get a vibrancy fallback). Building from source needs Xcode 27. Still on macOS 11–13? The final Tauri build stays as tokenbar@legacy.

How it works

Rust owns the data: the public tokscale-core shared engine, pinned as a Git submodule, handles session parsing, aggregation, and pricing; the app-owned crates/tb_core_ffi adds quota fetching and exposes the C ABI. Swift owns the rest: SwiftUI views, the NSStatusItem shell, Sparkle updates.

make                        # cargo build --release, then swift build
make run                    # build + launch Syrtis
swift run Syrtis --smoke  # run the FFI smoke test

The project knowledge base is the canonical guide to the Rust-to-Swift architecture, verification gates, shared-engine boundary, release chain, and maintenance state.

Run swift build from the repo root — the linker's -L target/release path
in Package.swift is relative.

Support Syrtis

Syrtis is local-first and needs no Syrtis account, but maintaining trustworthy numbers across 25+ AI coding agents is a wide compatibility job. Parser changes cross Rust, FFI, Swift, and the Windows sibling; live quota cards require real OAuth or subscription accounts and provider APIs; releases cover native macOS behavior, Sparkle signing and appcasts, Homebrew, and legacy migration metadata.

Sponsorship helps cover test accounts, CI and release infrastructure, and the maintainer time required to keep readings accurate as upstream formats change. If Syrtis helps you understand where your AI budget goes, you can support its continued development on Patreon.

Support Syrtis on Patreon

Contributing

See CONTRIBUTING.md for setup, change-specific guardrails, verification, and pull-request requirements.

Credits

Syrtis is built on tokscale by Junho Yeo. Syrtis's shared tokscale-core engine derives from that core and handles session parsing, dedup, and pricing across 25+ agents. The tokscale interactive TUI is also the blueprint for the whole dashboard: the Overview, Models, Monthly, Daily, Hourly, Stats and Agents lenses and their In · Out · CR · CW column breakdown are modeled on it.

The product line began as a fork of tokcat by handlecusion—the original Tauri menu-bar monitor (itself built on tokscale). This native app is a ground-up Swift rewrite that carries no tokcat code, but the menu-bar form and the spinning-cat signature are theirs; the cat traces back to RunCat by Takuto Nakamura. The quota-pace cards reference CodexBar by Peter Steinberger.

All MIT. Licensed under MIT.

Reviews (0)

No results found