docs/research/2026-09-26-macos-parity-0.67.0.md
Linux parity review at CodexBar 0.67.0
Checked 2026-09-26 against Plasma commit
5e2ebf3.
The macOS reference is official
v0.67.0,
commit e0286a895055e60ddaefa6a5f176f246aa2f05e4,
published 2026-09-26 at 00:48:11 UTC.
This is a release-delta review for useful Linux behavior. It covers the one stable release published after the 0.66.0 review and does not repeat the full 0.56.2 contract audit. Current open parity work belongs in TODO.md.
Release coverage
| Release | Published | Commit | Linux-relevant observations |
|---|---|---|---|
| 0.67.0 | 2026-09-26 | e0286a895055e60ddaefa6a5f176f246aa2f05e4 | Registry adds aixy, raycast, and xkiro for 87 records; cost --period month-to-date|all and the reportingPeriod/historyLabel cost fields (#2087, #2859, #1708); macOS-only config preferences export|import (#1282); opt-in LiteLLM model activity (#3432) and Claude Admin workspace spend (#2350); Grok product shares (#3975); Sakana AI as a bundled plugin. |
Linux CLI contract changes since 0.66.0
CLI help (verified in emitted output). Between the 0.66.0 and 0.67.0 Linux assets,
--help,usage --help, andcost --helpgainaixy,raycast, andxkiroin the--providerallowlist.cost --helpadds[--period month-to-date|all].config --helpaddsconfig preferences export [--file <preferences.json>]andconfig preferences import --file <preferences.json> [--json], described as transferring "allowlisted UI settings on macOS".sessions --helpchanges only its version line.Registry membership (verified in emitted output).
config providers --format json --json-onlyreturns 87 records with the unchanged keysprovider,displayName,enabled, anddefaultEnabled. The three additions (Aixy,Raycast,xKiro) are alldefaultEnabled: false, and no existing record changed.Setup reachability (verified in emitted output). With a synthetic key:
Provider config set-api-key --stdinDefault usagexkiroenabled: trueprovidererror:xKiro returned HTTP 401.aixyenabled: trueprovidererror:Aixy rejected the API key. Check its expiry or revocation.raycastraycast does not support config API keys.runtimeerror:selected source requires web support and is only supported on macOS.xKiro and Aixy therefore join the widget's API-key setup. Raycast reads Chrome or manual website cookies through a macOS-only web source, so it stays metadata-only on Linux, like Helmcode and TypeSafe. Aixy's self-hosted base URL (
enterpriseHost,AIXY_BASE_URL) has no CLI writer, like Bifrost's gateway and llmman's daemon URL.Aixy output through a loopback fixture (verified in emitted output).
AIXY_BASE_URLaccepts plain HTTP on loopback, so a static/v1/usagefixture with three synthetic budgets exercised the official plugin without an account. The record carries:rateWindowLabels: {"primary": "Budget", "secondary": "Secondary budget"}.primaryandsecondarywindows for the two most constrained known budgets, each withusedPercent,resetsAt,windowMinutes, and aresetDescriptionnaming the budget and its remaining amount. A lifetime budget has no reset and moves toextraRateWindows.detailssectionsAixy key,Applicable budgets(rows withprogress,usageValue, and asecondaryValue), andLast 7 days · this key.providerCostwithused,limit: 0, and the periodLast 7 days · attributed, anddataConfidence: "estimated".
Plasma renders these fields generically and already shows a spend-only
providerCostwithout a meter. Its lane table now titles Aixy's lanesBudgetandSecondary budget, and xKiro's primary laneDaily free tokensfrom the upstream descriptor, in the user's language. xKiro calls the fixed originhttps://api.xkiro.com, so its payload is unverified.Cost reporting periods (verified in emitted output). With an empty Pi history, 0.67.0 adds
reportingPeriodandhistoryLabelto everycostrecord:Arguments reportingPeriodhistoryLabelhistoryDays--days 30rolling:30Last 30 days30 --period month-to-datemonth-to-dateMonth to date26 --period allallAll739887 --period month-to-date --days 7rolling:7Last 7 days7 0.66.0 rejects
--periodwithUnknown option --periodand emits neither field. 0.67.0 rejects other values with--period must be month-to-date or all., and--dayswins when both are passed.--period allreports the days since year 1 ashistoryDays, so a consumer must bound it. Codex, Claude, Antigravity, and Muse records carry the same two fields for--days 30.0.66.0 omitted
historyLabelfrom these records, but Plasma already preferred a CLI label over its own. With 0.67.0 every cost row would read the EnglishLast 30 days. The widget now drops the CLI label for arolling:Nperiod and keeps its localized title.UI preferences are macOS-only (verified in emitted output).
config preferences exportfails on Linux withUI preferences import/export requires macOS.
Carried-forward blockers, rechecked at 0.67.0
- Generic provider-settings descriptors are still absent.
config providers --descriptorsfails withUnknown option --descriptors. Two more opt-in settings now lack a writer: LiteLLM model activity (LITELLM_MODEL_USAGE_ENABLED) and Claude Admin workspace spend (ANTHROPIC_ADMIN_WORKSPACE_SPEND). - There is still no generic
config actioncommand.config actionfails withUnknown subcommand 'action' for command 'config'. - Cursor cost is still rejected.
cost --provider cursorreturnscost is only supported for Antigravity, Claude, Codex, Muse Code, Pi. - Display currency has no Linux setter. The twelve currencies added for
macOS spend estimates (#3984) come with no
configsubcommand or cost flag.
Excluded from the Linux backlog
These 0.67.0 items are macOS-only or already covered by Plasma:
- Portable UI preferences and provider-switcher shortcuts (#1282, #3457), Stay Awake (#2740), Burn Down widgets (#3097), menu-bar layout pins, the Usage & Spend ledger's Show all control (#3998), and the Codex System Account app-server restart (#3990) are macOS app surfaces. Plasma has its own settings, pace forecasts, and cost rows.
- Credential-expiry notifications (#2512) are account-scoped app alerts. No
Linux
usagefield reports a credential expiry, so Plasma has nothing to schedule a notice from. - Plugin checkpoints (#3170), the Sakana AI plugin migration, QuickJS-NG 0.17.0 (#3987), cookie-denial persistence (#3986), and the OpenRouter, Antigravity, Mistral, OpenCode Go, and Codex history fixes are CLI-owned and surface through existing fields.
Unverified in this review
- xKiro and Raycast payloads. xKiro needs a real key against its fixed origin. Raycast is unreachable on Linux.
- LiteLLM model activity, Claude Admin workspace spend, and Grok product
shares need accounts. LiteLLM source adds a
Model activity · 30d UTCdetailssection, which Plasma's generic details path would render. - Items carried from the 0.66.0 review remain unmeasured.
Probe method
The official CodexBarCLI-v0.67.0-linux-x86_64.tar.gz and
CodexBarCLI-v0.66.0-linux-x86_64.tar.gz assets were downloaded from their
releases. Both matched their published SHA-256 files
(31ed1fa4…cdeb521eb3 for 0.67.0). They were extracted into a temporary
directory, and the installed CLI was not replaced. Every command ran under
env -i with HOME, XDG_CONFIG_HOME, and XDG_CACHE_HOME pointed at empty
temporary directories and no credential environment passed. All keys were
synthetic. The Aixy fixture was a static python3 -m http.server on
127.0.0.1.
As in the 0.66.0 review, Codex, Claude, Antigravity, and Muse cost discovery
can still reach host history despite the temporary HOME. Those runs were used
only for the historyLabel, reportingPeriod, and historyDays fields, and no
account data from them is recorded here. No unknown provider name was passed.
Bundled metadata added for the three new providers
The upstream descriptors at v0.67.0 declare a brand color and a dashboard for
each addition, and no status page. Icons are original glyphs with no vendor
mark.
| Provider | Display name | Brand color | Dashboard | Docs |
|---|---|---|---|---|
aixy | Aixy | #123650 | https://dash.aixy-gateway.com | aixy.md |
raycast | Raycast | #FF6363 | https://www.raycast.com/settings | raycast.md |
xkiro | xKiro | #52C99B | https://xkiro.com | xkiro.md |