Releases: artyom-ivanov/stronghold-agent
Release list
StrongholdWidget v1.0.1
Fixed
Repeated Keychain prompts. Claude Code writes its Claude Code-credentials item with an apple-tool: ACL partition list and rewrites it on every token refresh, which resets that list. Reading it with SecItemCopyMatching from a Developer ID app presents teamid:<team>, fails the partition check, and macOS shows a Keychain prompt on the next poll — so "Always Allow" only survived until Claude Code refreshed again.
The widget now reads through the Apple-signed /usr/bin/security, which matches the partition the item already carries, so the read stays silent.
Fewer Keychain reads. The access token is cached until its expiresAt (with a small skew), so the Keychain is touched roughly once per token lifetime instead of on every 120-second poll. A 401 drops the cache and re-reads once.
StrongholdWidget v1.0.0
The Stronghold scribe sits in your screen corner and keeps your ledger: Claude Code / Codex usage limits in his book, spoken reports on hover.
Install
Download StrongholdWidget.dmg below, open it, drag the app to Applications. Signed and notarized (macOS 14.4+) — double-click to launch.
On first launch the scribe offers to connect Claude Code — click Grant access; macOS asks once to read the Claude Code login from your Keychain, click Always Allow. Codex needs nothing.
Highlights
- Remaining 5-hour / weekly limits in the book; mood and ink color track how much you have left.
- Today's token spend in USD (API-price equivalent), from local transcripts.
- Hover for a spoken, in-character report with reset times; drag him anywhere, snaps to edges.
- Claude Code and Codex, switchable from the gear menu; launch-at-login toggle.
Sources & privacy
Claude limits come from Anthropic's usage endpoint (the same one Claude Code's /usage uses), authenticated with your existing Claude Code login token — polled gently every couple of minutes, with backoff. Claude spend and all Codex data are read from local files. No separate login, nothing stored.