"Claude Code / MAX 20X" says nothing about which account the plan belongs
to, which matters when switching between a personal and a company login.
- Read oauthAccount.emailAddress from ~/.claude.json. Nothing in the shell's
own data carries account identity — the usage JSON under
~/.local/state/omarchy/agents/usage/claude.json has limits and token counts
but no email — so it comes from Claude Code's own config. The FileView is
watched, so switching accounts updates without restarting the shell.
- Append it to the hero meta line, after the tier: "MAX 20X · you@example.com".
- Put the local part in the bar beside the icon, so the account is visible
without opening the panel. A WidgetButton rather than a Text with a
MouseArea: WidgetButton registers itself in bar.clickTargets, and while a
panel is open KeyboardPanel's full-screen overlay forwards bar-strip clicks
only to registered targets — an unregistered handler opens the panel and
then dismisses it with the same click. Mirrors the icon's three buttons.
Only the Claude provider gets either; codex and fireworks store their auth
elsewhere and would need their own readers rather than showing a misleading
email.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Panel.qml, Main.qml, Agent.qml and the provider assets exactly as they ship
in omarchy-dev 4.0.0.r1744.gf002044 (shell/plugins/agents/), alongside the
manifest `omarchy plugin clone` generates.
Kept on its own branch so `git diff stock..master` shows precisely what
this fork changes.