Releases: victorhqc/filbert
Release list
v0.7.0
Description
Smart refresh now reacts to provider-reported usage, credit, and availability changes. Presentation-only quota changes no longer trigger fast polling, and refresh intervals offer finer control.
Features
- Semantic Smart refresh — tracks meaningful provider activity across Claude Code, Cursor, DeepSeek, OpenAI Codex, and z.ai.
- Finer intervals — slow refresh supports 1–60 minutes; fast refresh supports 10–60 seconds in five-second steps.
- Structured diagnostics — reports safe activity reasons without exposing provider values.
Bug fixes
- False fast refreshes — reset dates, labels, limits, and other presentation changes no longer count as activity.
What's Changed
- feat: refine Smart refresh detection with provider activity observations by @victorhqc in #46
Full Changelog: v0.6.0...v0.7.0
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: Filbert-0.7.0-arm64.dmg
- SHA-256:
4955db909ba90899ba75ef71e0b6b74daa302848b583535efab69d68742b1049
Install
- Mount the DMG and drag Filbert to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click Filbert in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/Filbert.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.6.0
Description
Filbert adds opt-in automatic refresh for each provider. Users can choose Regular or Smart refresh behavior, with clear settings, accessibility support, and Claude Code quota warnings.
Features
- Per-provider automatic refresh — enable background checks only for selected providers.
- Regular and Smart modes — use fixed intervals or adjust refresh speed based on usage changes.
- Refresh Settings — configure shared intervals with localized and accessible controls.
- Fast refresh status — show which providers are currently refreshing more often.
- Claude Code disclosure — explain that automatic checks may use Claude Code quota.
What's Changed
- feat: add opt-in smart auto-refresh with per-provider settings by @victorhqc in #45
Full Changelog: v0.5.0...v0.6.0
Filbert 0.6.0
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: Filbert-0.6.0-arm64.dmg
- SHA-256:
a568883ad6940117f82d7c5b84029aa658b993620be0b17416fb2b8eae4ee487
Install
- Mount the DMG and drag Filbert to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click Filbert in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/Filbert.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.5.0
Overview
Every provider now has an on/off switch. You can keep a provider configured
but turned off — Filbert won't fetch, refresh, or import credentials from it
until you flip the switch back on. Saving an API key automatically enables
the provider.
✨ Features
- Enable/disable toggles for every provider. Each provider card in
Settings has a toggle. When a provider is off, Filbert skips it entirely.
Saving an API key turns the provider on automatically. - Disabled providers show guidance. Instead of setup controls, a disabled
provider card shows a short note telling you to enable it first.
📝 Changes since v0.4.0
- feat: add explicit enable/disable toggles for every provider in Settings (#44) (
37fdfdf)
Full Changelog: v0.4.0...v0.5.0
Filbert 0.5.0
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: Filbert-0.5.0-arm64.dmg
- SHA-256:
60c681709ec96bbe8cb9c117f8015c30a5416995c339e546ec1a06b41e635096
Install
- Mount the DMG and drag Filbert to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click Filbert in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/Filbert.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.4.0
Overview
This release cuts Keychain prompts to one per session, raises the Settings
window instead of hiding it when re-clicked, and hardens the entire codebase
with strict type checking. The internals shed legacy migration code, banned the
Any type, and slimmed 914 lines of redundant comments.
✨ Features
- One Keychain prompt per session. Filbert now shares a single
authorization context across all providers. Saving API keys no longer triggers
a second prompt on verification. Cursor credentials import through the same
context. - Settings window raises on re-click. Clicking "Settings…" when the window
is already open now brings it to the front instead of leaving it buried. - Provider order shows only configured providers. The Appearance tab's
drag-and-drop list now hides providers you have not set up, with an
empty-state hint when none are configured.
📝 Changes since v0.3.1
- feat: consolidate Keychain auth via shared Core accessor (#40) (
847346a) - feat(ui): raise Settings window and filter provider order to configured (#38) (
782b8a6) - chore: remove legacy keychain and brand migration code (#39) (
5e2a88b) - ci: enforce strict type-checking and ban Any in sources (#41) (
6aedf67) - refactor: enforce minimal, why-only comments — codify the rule, then apply it everywhere (#42) (
953d16b) - refactor: update README description and clarity (#43) (
5934c6e)
Full Changelog: v0.3.1...v0.4.0
Filbert 0.4.0
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: Filbert-0.4.0-arm64.dmg
- SHA-256:
19a24822b252d036726e376fbb6773bfb43a74fa3a07bddf86e9e414d8aa5551
Install
- Mount the DMG and drag Filbert to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click Filbert in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/Filbert.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.3.1
Overview
Cursor users can now remove the Cursor provider from the popover. The Settings "Remove Helper" action clears filbert's stored Cursor credentials instead of throwing an error.
✨ Features
- Cursor provider now responds to the "Remove Helper" action, clearing its imported credentials so the provider leaves the popover.
📝 Changes since v0.3.0
- feat(cursor): add credential removal via removeHelper (#37) (
0e39ab5)
Full Changelog: v0.3.0...v0.3.1
Filbert 0.3.1
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: Filbert-0.3.1-arm64.dmg
- SHA-256:
f933df0c0feab00114c7b280eca85b21d40fc2c0d7221b8c9c3d5b330845dbd2
Install
- Mount the DMG and drag Filbert to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click Filbert in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/Filbert.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.3.0
Overview
Filbert gets a new Cursor provider, a project rename from AI Usage, and
smarter Keychain handling. Claude Code refreshes are more isolated, and
Keychain prompts no longer fire on every refresh.
✨ Features
- New Cursor provider tracks subscription and on-demand spend using your
local Cursor auth tokens — no API key needed. - The app is now called Filbert. Your keys, preferences, and Claude Code
setup migrate automatically on first launch. - Claude Code refresh runs in an isolated temp directory, so you won't see
macOS permission dialogs during usage checks. - The Claude Code provider now shows an "Install Claude Code" link in
Settings for new users.
🐛 Bug Fixes
- Keychain prompts no longer fire on every Cursor refresh. Tokens are
imported once into Filbert's vault and refreshed from there. - Keychain write failures now show an error in Settings instead of silently
discarding your API key. - Cursor provider now recognizes tokens from the latest Agent CLI Keychain
layout.
📝 Changes since v0.2.2
- Fix/permissions (#36) (1489a7b)
- fix(cursor): support current Cursor Agent keychain layout (#35) (069b702)
- docs: add screenshots to README and mark widgets as WIP (1bb7e34)
- feat: add cursor as ai provider (#34) (bead8c4)
- feat: rename project to Filbert (#33) (faa99b6)
- feat: restrict Claude Code spawn startup probes (#32) (9ecd578)
- feat(claude-code): add setup-help link to the Claude Code provider (#31) (c9e6015)
- docs: rewrite README for clarity and add Conventional Commits guide (3f37c87)
- docs: update mascot image in README (4542ad5)
Filbert 0.3.0
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: Filbert-0.3.0-arm64.dmg
- SHA-256:
25775e677c381ec13b684b9cc77fd4d5489dee296b51df15133b9d76079c9b23
Install
- Mount the DMG and drag Filbert to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click Filbert in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/Filbert.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.2.2
Overview
The v0.2.1 DMG linked against the macOS 14 SDK even though the code targeted macOS 26. This release moves CI to the macos-26 runner so the shipped binary links against the correct SDK. On macOS 26, the popover now uses the correct material and the menu bar window resizes when a provider expands.
🐛 Bug Fixes
- The DMG binary now links against the macOS 26 SDK, fixing the popover appearance and window resizing on macOS 26.
📝 Changes since v0.2.1
Full Changelog: https://github.com/victorhqc/ai-usage/compare/v0.2.1...v0.2.2
AI Usage 0.2.2
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: AI-Usage-0.2.2-arm64.dmg
- SHA-256:
51a7f143a36ed553fcf1ac264c545081829f01a0c9a8131d10b60beff582b280
Install
- Mount the DMG and drag AI Usage to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click AI Usage in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/AI Usage.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.2.1
Overview
This patch fixes the DMG-packaged build. The relink step was stamping the wrong
SDK version into the binary, which caused visual differences and a broken
popover compared to swift run. The script now exports SDKROOT so the linker
uses the correct SDK.
📝 Changes since v0.2.0
Full Changelog: https://github.com/victorhqc/ai-usage/compare/v0.2.0...v0.2.1
AI Usage 0.2.1
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: AI-Usage-0.2.1-arm64.dmg
- SHA-256:
9b6406aa034d0df5fd6c30bd2cbc697dd3cdb2b38fa343edca1eddb087bd46ac
Install
- Mount the DMG and drag AI Usage to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click AI Usage in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/AI Usage.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.2.0
Overview
This release adds three new features (Vintage Mac icon, OpenAI Codex provider, collapsible provider cards), a full Settings visual refresh, and fixes for multiple keychain prompts and WCAG color contrast.
✨ Features
- Vintage Mac icon. An opt-in menu-bar mode that replaces the usage ring with a Happy/Neutral/Sad Mac pixel face, tiered by your usage thresholds. Toggle it in Settings → Appearance.
- OpenAI Codex provider. Track Codex CLI subscription usage alongside other providers. The provider talks to the local
codexbinary — no API keys or network calls needed. - Collapsible provider cards. Each provider in the popover is now a card with a logo badge and chevron. Collapse secondary providers to scan all usage at a glance without scrolling.
- Settings visual refresh. The Settings window now uses the same card-based layout as the popover, with provider badges, rounded surfaces, and consistent spacing. The window is resizable with a minimum size of 520×420.
🐛 Bug Fixes
- Single keychain prompt. Previously each provider triggered its own keychain-access prompt. Now all API keys live in one keychain item, so you see one prompt regardless of how many providers are configured.
- WCAG AA color contrast. Tier colors (green/orange/red) now meet WCAG AA contrast ratios in both light and dark mode. Balance-threshold controls moved from the Providers tab to the Appearance tab, and refresh buttons moved to the top-right of each provider card.
📝 Changes since v0.1.0
- feat(core): consolidate keychain to single item for single auth prompt (#28) (3aa0f9b)
- feat: refresh Settings with popover-derived card visuals (#27) (a49ea7e)
- feat: make each provider section collapsible with a logo badg (#26) (c046a14)
- feat: add OpenAI Codex provider with CLI-based usage tracking (#24) (3805a7b)
- Feat/vintage mac icon (#23) (b70a0a5)
- docs: reorder badges and mascot in README (1fa249e)
- refactor: polish cosmetic issues across popover and Settings (#22) (154b0f1)
Full Changelog: https://github.com/victorhqc/ai-usage/compare/v0.1.0...v0.2.0
AI Usage 0.2.0
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: AI-Usage-0.2.0-arm64.dmg
- SHA-256:
becc5b8eccc01c827b9ab724f0a30f449755cc71639e842cfc4df1dbde822927
Install
- Mount the DMG and drag AI Usage to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click AI Usage in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/AI Usage.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.
v0.1.0
Overview
The first release of AI Usage — a macOS menu-bar app that tracks your AI provider usage at a glance. Monitor z.ai quotas, Claude Code session limits, and DeepSeek prepaid balances from the menu bar. Each provider refreshes independently every 5 minutes, and the menu-bar icon shows your top provider's live status as a ring.
✨ Features
- Three providers. z.ai (token usage + web-tool calls), Claude Code (session/weekly limits, no API key needed), and DeepSeek (prepaid balance with configurable low-balance alerts).
- Live menu-bar ring. A dynamic ring + percentage replaces the static icon, showing the top provider's usage without opening the popover.
- Usage bars. Horizontal color-coded bars (green/orange/red) for every quota line, making usage scannable at a glance.
- Peak-hours panel. z.ai's GLM Coding Plan multiplier shown inline with timezone-aware labels so you know when rates are highest.
- Provider ordering. Drag and drop providers in Settings to set your preferred popover order. Survives restarts.
- Quiet refresh. Last-known data stays visible during refresh — no flicker. The Refresh icon animates while fetching, and errors appear as a non-blocking indicator.
- Multi-provider settings. A dedicated Settings window with per-provider API keys, base URL overrides for proxy routing, and balance threshold controls for DeepSeek.
- Four locales. English, Spanish (Spain), Spanish (Mexico), and German.
- App icon. A proper Dock and Notification Center icon, plus mascot branding.
🐛 Bug Fixes
- Release builds no longer crash with "could not load resource bundle" — the build script patches SPM's resource accessor to find bundles inside
Contents/Resources/. - The z.ai peak-hours label now converts Shanghai (UTC+8) hours to your local timezone instead of showing raw UTC+8 times.
- The peak-hours block re-evaluates on manual refresh so the peak/off-peak status stays current.
- SPM no longer regenerates the patched resource accessor during the relink step of release builds.
- The
chflags uchgapproach for freezing accessors (which failed on GitHub Actions runners) is replaced with a direct swiftc command replay from the llbuild manifest.
📝 Changes
- feat: add agents, skills, and project documentation (574e3e2)
- ci: add validation-gate workflow and spec (f549f68)
- feat: bootstrap project (#1) (371842a)
- feat: z.ai provider (#2) (445822b)
- feat: settings view (#3) (834afca)
- feat: add usage bars, peak block, and icon refresh (#4) (7acd946)
- feat: add Spanish and German localizations (#5) (c975e8f)
- feat: claude code (#6) (76c5d73)
- Update README provider status and Claude setup (#7) (597b2a8)
- fix: claude code (#8) (84e04d7)
- UX improvements: quiet refresh, animated icon, cleaner popover footer (#9) (1031e67)
- Add DeepSeek prepaid balance monitoring (#10) (b011c83)
- fix: peak-hour time label for ZAI's Shanghai time zone (#11) (6e002f8)
- fix: force PeakHoursBlock re-evaluation on refresh (#12) (5d4168b)
- refactor: decouple peak hours block from ZAI provider (#13) (f01828f)
- feat: add provider ordering settings with drag-and-drop (#14) (4139075)
- feat: add live status ring to menu bar (#15) (6d98458)
- docs: add CONTRIBUTING.md and update README (#16) (52987b1)
- feat: add app icon and mascot branding assets (#17) (4a27d3c)
- feat: automate unsigned DMG builds triggered by GitHub Release publish events (#18) (b480f05)
- fix: patch resource bundle accessor to load from Contents/Resources/ (#19) (7a908ba)
- feat: freeze resource accessor patch during relink (#20) (67a49aa)
- fix: replay SPM compile commands instead of using chflags (#21) (c5d5048)
AI Usage 0.1.0
Unsigned macOS build (Apple Silicon). Direct distribution, ad-hoc signed.
- DMG: AI-Usage-0.1.0-arm64.dmg
- SHA-256:
2f057126d76c0aaec039ad61ddffff1db85605f47f1b5e98c817c0c80fd6de2a
Install
- Mount the DMG and drag AI Usage to /Applications.
- On first launch, macOS Gatekeeper will block the app because it is
unsigned. Do one of:-
Right-click AI Usage in /Applications → Open → confirm the
prompt. Only needed once. -
Or run this in Terminal:
xattr -cr '/Applications/AI Usage.app'
-
Why unsigned?
This is a transitional state. The moment an Apple Developer Program
membership is configured, releases automatically become signed and
notarized with no action on your part.