On this page
#Changelog
#0.14.1
Repair the publish pipeline: allowlist the public OAuth client ID so the release secret scan stops blocking binary builds.
Context
The 0.14.0 scaffold update added a gitleaks dir . source scan to the publish workflow. It flagged internal/oauth/oauth.go's OAuthClientID -- Claude Code's public OAuth client identifier, which is not a credential -- as a generic-api-key, so goreleaser never ran and the v0.14.0 GitHub Release shipped without its binary archives.
This release adds a .gitleaks.toml allowlist for that one public identifier and re-runs the publish pipeline, restoring the pre-built binaries. It carries no user-facing code changes, hence bump = "infra".
#Infrastructure
- Repair the publish pipeline: allowlist the public OAuth client ID so the release secret scan stops blocking binary builds.
#0.14.0
Migrate to the go-strictcli effect model: every command declares its effect, and --dry-run, --quiet and --verbose are now framework-provided on every invocation.
Context
go-strictcli 0.29.0 made effect classification mandatory: each command must declare whether it reads, writes, or performs a consequential action. Adopting it means the framework now supplies the --dry-run/--quiet/--verbose flag quartet uniformly across every command, replacing per-command ad-hoc handling.
Known ceiling in this release: --dry-run does not yet suppress the embedded config migration that runs on startup, so a dry-run invocation can still migrate the config file. This is documented in the effect classification and will be addressed separately.
#Features
- Effect classification and the framework flag quartet. Every command now declares its strictcli effect, and
--dry-run,--quietand--verboseare provided by the framework on every invocation.
#0.13.0
Add Fable model support with separate usage tracking, fix cache bugs, and consolidate duplicated code
#Breaking
- Breaking. Upgrade go-strictcli to v0.17.0:
--liveBoolFlag now has explicit default.
#Features
- New feature. Add Fable model support with separate usage tracking (F5 alias, 4th progress bar, Fable-specific rate limit display).
#Fixes
- Bug fix. Fix WriteUsageFromStdin reading wrong keys from stdin data.
#0.12.2
Fix OAuth detection to use stdin rate_limits
Context
v0.12.1 checked CLAUDE_CODE_OAUTH_TOKEN env var, but Claude Code doesn't pass it to statusline subprocesses. Now uses the presence of rate_limits in stdin instead, which is reliable and requires no external files or env vars.
#Fixes
- Fix. Detect OAuth from stdin
rate_limitsinstead of relying on env var or credentials file, fixing tier display for claudewheel-launched sessions.
#0.12.1
Fix subscription tier detection for claudewheel-launched sessions
Context
When claudewheel launches Claude Code, it sets CLAUDE_CODE_OAUTH_TOKEN instead of writing .credentials.json. howmuchleft now checks this env var as a fallback, showing 'OAuth' instead of incorrectly displaying 'API'.
#Fixes
- Fix. Detect OAuth authentication from
CLAUDE_CODE_OAUTH_TOKENenv var when.credentials.jsonis absent, showing "OAuth" instead of "API" for claudewheel-launched sessions.
#0.12.0
#Breaking
- Breaking. CLI migrated from Cobra to go-strictcli. No user-facing command changes, but the underlying framework is now strictcli.