Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
Agents bar widget: Claude collector shows 'Waiting for auth' with Vertex/Bedrock auth; no Gemini collector
Reported by Leonslost · filed Aug 15, 2026 · open at source
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- AreaOutside the audited area· Decided by agents · verified
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
What happened
The Agents bar widget (omarchy.agents) misreports Claude's auth status when Claude Code is authenticated through Google Vertex AI (ANTHROPIC_VERTEX_PROJECT_ID set) instead of the standard claude login OAuth flow. The panel's hero card shows "Waiting for auth" with the help text "Run claude auth login to restore authoritative usage," even though Claude Code is actively running and working normally.
Separately, the widget also has no collector for the Gemini CLI at all, so Gemini never appears in the panel/switcher even when it's installed, authenticated, and in active use alongside Claude and Codex.
Root cause (traced in source)
/usr/share/omarchy/bin/omarchy-agent-usage-claude's oauth_login() only ever reads an access token from ~/.claude/.credentials.json (claudeAiOauth.accessToken). When Claude Code is authenticated via Vertex (or presumably Bedrock), that file is never created — there's no OAuth login step — so access_token is always "", collect_limits() takes the early-return branch, and the record is written with "usageStatusText": "Waiting for auth" regardless of whether Claude Code is actually working.
The local stats (today's tokens, model breakdown, weekly chart) are unaffected because those come from scanning ~/.claude/projects/*.jsonl transcripts directly (hasLocalStats: true), independent of the auth method. So the panel ends up in a confusing half-working state: usage numbers accrue correctly, but the hero card permanently shows an auth warning with an incorrect remedy ("run claude auth login" does nothing useful — there's no OAuth session to restore).
Separately, /usr/share/omarchy/shell/plugins/agents/manifest.json and bin/ only define collectors for claude, codex, and fireworks — there is no omarchy-agent-usage-gemini. This appears to be a missing feature rather than a bug, but is filed alongside since it compounds the confusion (a user with two working CLIs, Claude and Gemini, only ever sees one in the widget, and the one they do see shows a false auth error).
Expected behavior
- When
~/.claude/.credentials.jsonis absent but Claude Code has recent local transcript activity (hasLocalStats/totalPrompts > 0) and/orANTHROPIC_VERTEX_PROJECT_ID/CLAUDE_CODE_USE_VERTEX/CLAUDE_CODE_USE_BEDROCKenv vars are set, the widget should not claim the user needs to runclaude auth login. At minimum it should distinguish "OAuth session not applicable (non-OAuth auth backend, limits unavailable)" from "OAuth session lapsed, please re-auth." - Gemini CLI usage should be collectible the same way
claude/codexare, following the record contract described in the plugin's README (abin/omarchy-agent-usage-geminicollector).
Steps to reproduce
- Authenticate Claude Code via Google Vertex AI (
ANTHROPIC_VERTEX_PROJECT_IDset, noclaude loginOAuth session, so~/.claude/.credentials.jsondoes not exist). - Use Claude Code normally — transcripts accrue under
~/.claude/projects. - Open the Agents bar panel.
- Observe: hero card shows "Waiting for auth" / "Run
claude auth loginto restore authoritative usage" even while Claude Code is being used in the same moment, and token counts are visibly incrementing. - Separately: have the Gemini CLI installed and authenticated/in use — it never appears as a subscription tab/switch entry in the panel, because no collector exists for it.
System details
- Omarchy version: 4.0.0-1
- Kernel: Linux 7.1.8-arch1-3
- Hardware: HP OMEN Transcend Gaming Laptop 14-fb0xxx
- GPU: Intel Arc Graphics (Meteor Lake-P) + NVIDIA GeForce RTX 4070 Max-Q
omarchy debugcommand not present in this version (omarchy commands --allhas nodebugentry), so no diagnostic log/URL is attached.
Sample record written by the collector
{
"id": "claude",
"name": "Claude Code",
"ready": true,
"hasLocalStats": true,
"usageStatusText": "Waiting for auth",
"authHelpText": "Run `claude auth login` to restore authoritative usage.",
"limits": [],
"todayTotalTokens": 569684,
"todayPrompts": 12,
"todaySessions": 2
}View raw text
## What happened
The Agents bar widget (`omarchy.agents`) misreports Claude's auth status when Claude Code is authenticated through Google Vertex AI (`ANTHROPIC_VERTEX_PROJECT_ID` set) instead of the standard `claude login` OAuth flow. The panel's hero card shows "Waiting for auth" with the help text "Run `claude auth login` to restore authoritative usage," even though Claude Code is actively running and working normally.
Separately, the widget also has no collector for the Gemini CLI at all, so Gemini never appears in the panel/switcher even when it's installed, authenticated, and in active use alongside Claude and Codex.
## Root cause (traced in source)
`/usr/share/omarchy/bin/omarchy-agent-usage-claude`'s `oauth_login()` only ever reads an access token from `~/.claude/.credentials.json` (`claudeAiOauth.accessToken`). When Claude Code is authenticated via Vertex (or presumably Bedrock), that file is never created — there's no OAuth login step — so `access_token` is always `""`, `collect_limits()` takes the early-return branch, and the record is written with `"usageStatusText": "Waiting for auth"` regardless of whether Claude Code is actually working.
The **local stats** (today's tokens, model breakdown, weekly chart) are unaffected because those come from scanning `~/.claude/projects/*.jsonl` transcripts directly (`hasLocalStats: true`), independent of the auth method. So the panel ends up in a confusing half-working state: usage numbers accrue correctly, but the hero card permanently shows an auth warning with an incorrect remedy ("run `claude auth login`" does nothing useful — there's no OAuth session to restore).
Separately, `/usr/share/omarchy/shell/plugins/agents/manifest.json` and `bin/` only define collectors for `claude`, `codex`, and `fireworks` — there is no `omarchy-agent-usage-gemini`. This appears to be a missing feature rather than a bug, but is filed alongside since it compounds the confusion (a user with two working CLIs, Claude and Gemini, only ever sees one in the widget, and the one they do see shows a false auth error).
## Expected behavior
- When `~/.claude/.credentials.json` is absent but Claude Code has recent local transcript activity (`hasLocalStats` / `totalPrompts > 0`) and/or `ANTHROPIC_VERTEX_PROJECT_ID` / `CLAUDE_CODE_USE_VERTEX` / `CLAUDE_CODE_USE_BEDROCK` env vars are set, the widget should not claim the user needs to run `claude auth login`. At minimum it should distinguish "OAuth session not applicable (non-OAuth auth backend, limits unavailable)" from "OAuth session lapsed, please re-auth."
- Gemini CLI usage should be collectible the same way `claude`/`codex` are, following the record contract described in the plugin's README (a `bin/omarchy-agent-usage-gemini` collector).
## Steps to reproduce
1. Authenticate Claude Code via Google Vertex AI (`ANTHROPIC_VERTEX_PROJECT_ID` set, no `claude login` OAuth session, so `~/.claude/.credentials.json` does not exist).
2. Use Claude Code normally — transcripts accrue under `~/.claude/projects`.
3. Open the Agents bar panel.
4. Observe: hero card shows "Waiting for auth" / "Run `claude auth login` to restore authoritative usage" even while Claude Code is being used in the same moment, and token counts are visibly incrementing.
5. Separately: have the Gemini CLI installed and authenticated/in use — it never appears as a subscription tab/switch entry in the panel, because no collector exists for it.
## System details
- Omarchy version: 4.0.0-1
- Kernel: Linux 7.1.8-arch1-3
- Hardware: HP OMEN Transcend Gaming Laptop 14-fb0xxx
- GPU: Intel Arc Graphics (Meteor Lake-P) + NVIDIA GeForce RTX 4070 Max-Q
- `omarchy debug` command not present in this version (`omarchy commands --all` has no `debug` entry), so no diagnostic log/URL is attached.
## Sample record written by the collector
```json
{
"id": "claude",
"name": "Claude Code",
"ready": true,
"hasLocalStats": true,
"usageStatusText": "Waiting for auth",
"authHelpText": "Run `claude auth login` to restore authoritative usage.",
"limits": [],
"todayTotalTokens": 569684,
"todayPrompts": 12,
"todaySessions": 2
}
```Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
- Related PRpr/8487· confirmed
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
- Out of scopeDecided by agents · verified · 2026-10-09 04:09 UTC