Codync
免费开源的 1:1 Grok Bot 与 Muse 替代方案。可在 iPhone、Mac 或 Linux 桌面上将 Claude 代码、Codex、Cursor 以及 40 多个编码代理作为持久机器人使用。支持群组聊天、线程、应用。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
See where your AI coding tokens go — per conversation, per turn, per skill — and how close you are to your limits. Reads local Claude Code and Kiro logs. Nothing leaves your machine.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Bumeter is a desktop app for Linux that reads the local logs of AI coding assistants (Claude Code, Kiro and OpenCode (beta) today) and turns them into something you can act on: which conversations and turns were expensive, which skills cost tokens in every session, and how much of your 5-hour, 7-day and monthly quota is left.
Everything is read from your own machine. Nothing is uploaded.
Bumeter is a set of tools you can install one by one: this Desktop app, Statusline (bum) for Claude Code's status line, and the VS Code extension. They share one engine, bumeter/core, and find each other's data when installed together.
Tray with a quota bar per tool. Bum, the mascot, changes face with your usage (calm, happy, worried, on fire, asleep), and the highest percentage sits next to it in the top bar.
Claude Code
▰▰▰▰▰▱▱▱▱▱ 🟢 5 hours · 49% · reset 13:10
▰▰▰▰▰▰▰▰▰▱ 🔴 7 days · 90% · reset Oct 16
Kiro
▰▰▰▱▱▱▱▱▱▱ 🟢 Month · 27% · 271/1000 credits · reset Nov 1
Limit forecast. When your current pace would hit the 5-hour, 7-day or monthly limit before it resets,
the tray, bum status and the app show when (out ~14:20), Bum gets worried, and you get one notification
(lead time in Settings).
Overview for today, 7, 30 or 90 days: tokens compared with the previous period, tokens per day, costliest projects and models, and suggestions from Bum (unusually costly turns, a project eating most of the budget, skills that cost tokens but are never used), and an Effectiveness panel on why sessions cost what they cost: the context a session starts with, how many times the same context is sent again, cold prompt caches, rate-limit hits, where the quota went (model, main session or subagent), files read again and again, failed tool calls retried — each with advice that opens the session it is about. Amounts are quota-weighted (cache reads ×0.1, output ×5), not raw.
Conversations grouped by day, with a fuel bar per conversation, filters (project, time range, model, costly, large context, interrupted, starred) and the full list of turns.
Context analysis for a session: what fills the context window, when it was compacted, which tool calls were large.
Skills: always-on token cost and real usage of every skill; install (also from
skills.sh), disable, change size or remove, all with undo — and a read-only scan
(“Check safety” on the Skills screen, or bum skills audit) that flags a SKILL.md whose
instructions try to hijack the model, reach your credentials, or hide what it does.
Per-tool tabs on every screen, so adding Codex, Cursor or OpenCode later is one more tab, not a redesign.
Notifications when a quota passes your thresholds (70% / 90% by default) or a turn costs far more than usual.
Light and dark themes, Vietnamese and English.
VS Code extension: quota and context in the status bar, files agents keep reading marked in the Explorer, and the Overview in a panel (bumeter/vscode).
| Conversations | Skills |
|---|---|
Bumeter needs a desktop with WebKitGTK 4.1, i.e. Ubuntu 24.04 or newer (or an equivalent distribution).
Debian/Ubuntu package
sudo apt install ./Bumeter_1.3.0_amd64.deb
This installs bumeter (the app) and bum (the command line tool) in /usr/bin.
AppImage (no install, libraries included)
chmod +x Bumeter_1.3.0_amd64.AppImage
./Bumeter_1.3.0_amd64.AppImage
Snap — the bumeter snap is waiting for the Snap Store's classic-confinement review.
Once it is published: sudo snap install bumeter --classic.
macOS (Homebrew)
brew install --cask bumeter/tap/bumeter
The cask lives in bumeter/homebrew-tap. Bumeter is not
signed with an Apple Developer ID, so macOS quarantines it: open it once with right-click → Open (the
cask prints this when it installs). That is also why it is not in homebrew/cask, which requires
notarized applications. The .dmg on Releases works
the same way. The cask also links bum into Homebrew's bin; with the .dmg, link it yourself:
ln -s /Applications/Bumeter.app/Contents/MacOS/bum /usr/local/bin/bum.
Windows — the .msi and .exe are on Releases. From the next release on, the .exe installer
adds its folder to your user PATH, so bum works in a new terminal (the uninstaller takes it off). The WinGet manifests are generated from those
files (scripts/packaging.py) and scripts/winget-pr.sh turns them into a winget-pkgs pull
request; the package is not in WinGet yet.
VS Code (also Cursor, Windsurf, Kiro) — install Bumeter from the Extensions view, or the
bumeter-<platform>-<version>.vsix from its Releases (Extensions → … → Install from VSIX). It bundles
its own bum, so the app is optional.
| Source | What Bumeter reads |
|---|---|
| Claude Code | Session logs in ~/.claude/projects/** (tokens, turns, tools, skills). The 5-hour and 7-day quota comes from Claude Code's status line: Bumeter wraps your existing status line command in ~/.claude/settings.json (with a backup and an undo button in Settings): bum statusline --around '<your command>' shows your line followed by the quota and current context, or { bum statusline --tee 2>/dev/null || cat; } | { <your command>; } only records the numbers and leaves your line as it was (and keeps working if bum is removed). Settings shows the quota on your line by default; Windows always uses the second form. Before uninstalling Bumeter, click Remove under Limit tracking in Settings, or your status line keeps calling the removed bum. |
| Kiro | Session files in ~/.kiro/sessions/cli/**. Kiro does not log tokens, so context is estimated from each turn's context percentage, and cost is in credits. The monthly credit limit comes from kiro-cli chat --no-interactive /usage, run only when kiro-cli is installed and kiro-cli whoami says you are logged in. You can also type the limit in Settings. |
| OpenCode (beta) | Its SQLite database ~/.local/share/opencode/opencode.db (OpenCode 2.x), opened read-only and read incrementally. Real token counts per model call, including reasoning tokens. OpenCode also reports a USD cost per call; Bumeter stores it but shows tokens only for now. No quota and no conversation transcript yet. |
Tools that are not installed are simply not shown.
Data lives in ~/.local/share/bumeter/ (a SQLite database, config.toml, backups).
bum report what burned the quota and what to do about it (works without the app)
bum status today's summary and quota bars from the running app
bum statusline used by the Claude Code status line hook
bum scan read the logs into the database without the app
bum daemon run the background host without a window
bum session context breakdown of one session
bum audit compare Bumeter's token totals with an independent count
The app installs bum with it. bum is also a download of its own, with every command (bum report,
bum skills, bum rpc …) documented: bumeter/statusline.
Requirements: Rust (stable), Node 20+, libwebkit2gtk-4.1-dev, libayatana-appindicator3-dev, librsvg2-dev.
(cd app && npm install) # @bumeter/ui and the Tauri CLI
triple=$(rustc -vV | sed -n 's/^host: //p')
scripts/fetch-bum.sh "$triple" "app/src-tauri/binaries/bum-$triple" # bum $(cat BUM_VERSION) from bumeter/statusline
cd app && npx tauri build --bundles deb appimage
Working on core at the same time: see bumeter/core (.cargo/config.toml with [patch]).
The screens come from @bumeter/ui: npm link it into app/ to try a change.
The packages land in target/release/bundle/. Snap: snapcraft pack (uses snap/snapcraft.yaml, built from the .deb).
More detail in docs/build-ubuntu.md.
Tests: cargo test --workspace.
.github/workflows/ci.yml runs the Rust tests on Linux, macOS and Windows on every push and pull request.
.github/workflows/release.yml builds the installers with tauri-action: .deb + .AppImage (Ubuntu 22.04+),
.dmg (Apple Silicon and Intel), .exe (NSIS) + .msi (Windows). Run it from the Actions tab to get the files as
artifacts, or push a tag (git tag v1.2.0 && git push origin v1.2.0) to get a published GitHub Release with the
files attached. The macOS and Windows builds are not code-signed yet, so Gatekeeper and SmartScreen will warn on
first launch.
Auto-update goes through the same GitHub Release (Settings → Updates, plus a "Check for updates" tray item).
Signing the updater bundles needs two repository secrets:
TAURI_SIGNING_PRIVATE_KEY (contents of the private key) and TAURI_SIGNING_PRIVATE_KEY_PASSWORD (empty if the
key has no password). Generate the pair once and keep the private key safe forever — losing it means no further
updates for existing installs:
cd app && npx tauri signer generate -w ~/.tauri/bumeter.key
Put the public key (~/.tauri/bumeter.key.pub) into plugins.updater.pubkey in
app/src-tauri/tauri.conf.json. createUpdaterArtifacts lives in app/src-tauri/tauri.ci.conf.json and is only
passed to CI (--config), so a local tauri build still works without the private key.
Linux auto-update only works for the .AppImage (a .deb install updates through the package manager).
app/src-tauri the Tauri app: window, tray, notifications
app/package.json @bumeter/ui (the screens) and the Tauri CLI
BUM_VERSION the bumeter/statusline release whose `bum` ships with the app
docs/build-ubuntu.md build the Ubuntu package (deb / AppImage)
docs/brand Bum, the mascot (used in this README)
docs/screens screenshots used in this README
Tool logos in bumeter/ui (public/tool-icons/) belong to their owners; see the
NOTICE file there.
Bumeter is free software under the GNU General Public License v3.0 or later — see LICENSE. You may use, study, change and share it. If you distribute a modified version, it must stay open source under the same license.
Name and logo. The license covers the code, not the Bumeter name or the Bum mascot. Forks are welcome, but a fork you distribute must use a different name and logo, so users can tell it apart from the official Bumeter.