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.
Epic: Add Gemini and OpenCode monitoring to the Agents panel
Reported by acf1210 · filed Sep 1, 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
Context
The Agents panel (omarchy.agents, shell/plugins/agents/) shows AI coding subscription usage in the Omarchy bar — currently Claude Code, Codex, and Fireworks. Gemini CLI and OpenCode are already first-class agents elsewhere in Omarchy (omarchy-default-agent supports gemini and opencode as launchable agents), but neither has a usage collector, so neither appears in the panel even when actively used daily.
Current State
3 collectors exist (bin/omarchy-agent-usage-{claude,codex,fireworks}), declared in shell/plugins/agents/manifest.json:defaults.providers. The plugin's own README documents the extension point: "Adding an agent therefore never touches this plugin: ship a collector... and the panel gains a tab." No changes to Panel.qml/Main.qml/Agent.qml are required for a new agent.
Proposed Change
Add two independent collectors, each following the existing display-ready-JSON-record contract:
omarchy-agent-usage-opencode— reads~/.local/share/opencode/opencode.db(SQLite) directly.omarchy-agent-usage-gemini— reads Gemini CLI's local session logs, with a best-effort live quota probe against Google's Code Assist endpoint when Gemini CLI is Code-Assist-licensed.
Both register in shell/plugins/agents/manifest.json:defaults.providers and get an assets/<id>.svg (+ -light variant if needed).
Child Issues
| # | Title | Priority | Effort | Status | Dependencies |
|---|---|---|---|---|---|
| #9683 | Add OpenCode collector to the Agents panel | High | ~4h | Ready | None |
| #9684 | Add Gemini collector to the Agents panel | High | ~6h | Ready | None (independent; sequenced after the OpenCode child by convention, not by blocking) |
Dependency Graph
Epic ─┬─> Child 1: OpenCode collector (independent, ships first)
└─> Child 2: Gemini collector (independent, ships second)Sequencing Rationale
OpenCode first: its data source (opencode.db) is proven and queryable today, with zero external API uncertainty — no balance API exists for OpenCode Zen (confirmed: anomalyco/opencode#10448 is an open feature request for exactly this, meaning it doesn't exist yet), so v1 ships stats-only with no blocking research. Gemini second: its local session log format (~/.gemini/tmp/<project-hash>/chats/logs.json) is undocumented and unverified against a real file, and its live-quota path depends on a Google-side Code Assist license that most personal accounts don't have (verified live: HTTP 403 SUBSCRIPTION_REQUIRED against cloudcode-pa.googleapis.com) — more research/validation risk, so it ships after the lower-risk child proves the pattern.
Definition of Done
- Both collectors merged and each individually shippable/revertable per its own child issue's acceptance criteria.
- On a machine with OpenCode installed and used, an "OpenCode" tab appears in the panel with real token/day/model data.
- On a machine with Gemini CLI installed and used, a "Gemini" tab appears in the panel with real token/day/model data, and a live limit bar when the account has a Code Assist license.
- Neither collector's addition changes Claude, Codex, or Fireworks behavior.
Out of Scope
- Any change to
Panel.qml,Main.qml, orAgent.qml. - Cost/spend display for OpenCode (data exists in
opencode.dbmessage rows'costfield but surfacing it is a UI change, out of scope here — flagged as a future issue). - Any agent besides Gemini and OpenCode (Grok, Copilot, Crush, Pi, omp — all already known to
omarchy-default-agentbut not requested here). syncModecross-device aggregation changes.
Related
- Child: #9683 — Add OpenCode collector to the Agents panel
- Child: #9684 — Add Gemini collector to the Agents panel
View raw text
## Context
The Agents panel (`omarchy.agents`, `shell/plugins/agents/`) shows AI coding subscription usage in the Omarchy bar — currently Claude Code, Codex, and Fireworks. Gemini CLI and OpenCode are already first-class agents elsewhere in Omarchy (`omarchy-default-agent` supports `gemini` and `opencode` as launchable agents), but neither has a usage collector, so neither appears in the panel even when actively used daily.
## Current State
3 collectors exist (`bin/omarchy-agent-usage-{claude,codex,fireworks}`), declared in `shell/plugins/agents/manifest.json:defaults.providers`. The plugin's own README documents the extension point: *"Adding an agent therefore never touches this plugin: ship a collector... and the panel gains a tab."* No changes to `Panel.qml`/`Main.qml`/`Agent.qml` are required for a new agent.
## Proposed Change
Add two independent collectors, each following the existing display-ready-JSON-record contract:
1. `omarchy-agent-usage-opencode` — reads `~/.local/share/opencode/opencode.db` (SQLite) directly.
2. `omarchy-agent-usage-gemini` — reads Gemini CLI's local session logs, with a best-effort live quota probe against Google's Code Assist endpoint when Gemini CLI is Code-Assist-licensed.
Both register in `shell/plugins/agents/manifest.json:defaults.providers` and get an `assets/<id>.svg` (+ `-light` variant if needed).
## Child Issues
| # | Title | Priority | Effort | Status | Dependencies |
|---|-------|----------|--------|--------|--------------|
| #9683 | Add OpenCode collector to the Agents panel | High | ~4h | Ready | None |
| #9684 | Add Gemini collector to the Agents panel | High | ~6h | Ready | None (independent; sequenced after the OpenCode child by convention, not by blocking) |
## Dependency Graph
```
Epic ─┬─> Child 1: OpenCode collector (independent, ships first)
└─> Child 2: Gemini collector (independent, ships second)
```
## Sequencing Rationale
OpenCode first: its data source (`opencode.db`) is proven and queryable today, with zero external API uncertainty — no balance API exists for OpenCode Zen (confirmed: anomalyco/opencode#10448 is an open feature request for exactly this, meaning it doesn't exist yet), so v1 ships stats-only with no blocking research. Gemini second: its local session log format (`~/.gemini/tmp/<project-hash>/chats/logs.json`) is undocumented and unverified against a real file, and its live-quota path depends on a Google-side Code Assist license that most personal accounts don't have (verified live: HTTP 403 `SUBSCRIPTION_REQUIRED` against `cloudcode-pa.googleapis.com`) — more research/validation risk, so it ships after the lower-risk child proves the pattern.
## Definition of Done
1. Both collectors merged and each individually shippable/revertable per its own child issue's acceptance criteria.
2. On a machine with OpenCode installed and used, an "OpenCode" tab appears in the panel with real token/day/model data.
3. On a machine with Gemini CLI installed and used, a "Gemini" tab appears in the panel with real token/day/model data, and a live limit bar when the account has a Code Assist license.
4. Neither collector's addition changes Claude, Codex, or Fireworks behavior.
## Out of Scope
- Any change to `Panel.qml`, `Main.qml`, or `Agent.qml`.
- Cost/spend display for OpenCode (data exists in `opencode.db` message rows' `cost` field but surfacing it is a UI change, out of scope here — flagged as a future issue).
- Any agent besides Gemini and OpenCode (Grok, Copilot, Crush, Pi, omp — all already known to `omarchy-default-agent` but not requested here).
- `syncMode` cross-device aggregation changes.
## Related
- Child: #9683 — Add OpenCode collector to the Agents panel
- Child: #9684 — Add Gemini collector to the Agents panel
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
Not linked to any known issue, other report or change yet.
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 10:30 UTC