Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A 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.

Inbox
ReportR-1834GitHub issuePublicDecided· Out of scope

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

Decided: Out of scope — decided by agents · verified 4 days ago.

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

Agents bar widget: Claude collector shows 'Waiting for auth' with Vertex/Bedrock auth; no Gemini collectorrevision 1 · captured 2026-09-28 21:29 UTC via poll

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

{
  "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