# NousResearch/hermes-agent · Surface provider quota and account limits in UI

## Open now

- 6 issues, 4 PRs open on GitHub.
- #7714: \[Feature\]: why /status command does not like openclaw that shows the usage and when to reset
- #9085: \[Feature\]: surface OpenAI Codex plan-limit headers in /usage (5h / 7d windows, plan, credits)
- #16643: Show provider account limits in the TUI status bar
- #21814: Add \`hermes usage\` CLI command and agent-accessible quota tool
- #42873: Feature: Self-tracked provider quota display in /status
- #53306: feat(cli): show provider quota and rate-limit in status bar for all providers
- PR #8355: feat(status): rich /status snapshots across CLI and gateway
- PR #16652: feat: show account limits in CLI and TUI status bars
- PR #53375: feat(cli+tui): provider quota and rate-limit in status bar
- PR #58339: fix: show account limits in desktop and TUI /usage

These issues and PRs concern displaying provider quota, rate-limit, and account-limit data (especially for OpenAI Codex) across CLI, TUI, and Desktop interfaces via /status and /usage commands. A recurring sub-theme involves credential resolution bugs where Codex OAuth tokens stored in credential_pool are not correctly surfaced to the usage and gateway layers.

## TL;DR

- 24 member(s): 6 open issue(s), 6 closed issue(s), 4 open PR(s), 2 merged PR(s), 6 PR(s) closed without merging.
- A fix was merged to main in PR #115766. Verify it addresses your case.
- **Recommended:** read PR #115766 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `partially_resolved` · deciding PR(s): `pr-115766,pr-115899`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.07`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #7714: \[Feature\]: why /status command does not like openclaw that shows the usage and when to reset
- #9085: \[Feature\]: surface OpenAI Codex plan-limit headers in /usage (5h / 7d windows, plan, credits)
- #16643: Show provider account limits in the TUI status bar
- #21814: Add \`hermes usage\` CLI command and agent-accessible quota tool
- #42873: Feature: Self-tracked provider quota display in /status
- #53306: feat(cli): show provider quota and rate-limit in status bar for all providers

## Closed / duplicate issues

- #15167: /usage shows no Codex account quota; _read_codex_tokens() ignores credential_pool
- #32730: hermes auth add openai-codex writes only to credential_pool; runtime resolver reads providers.tokens — fails with 'missing access_token'
- #33094: Expose remaining OpenAI Codex subscription usage in Hermes CLI
- #42904: Desktop /usage no-agent fallback omits Codex account limits and reset
- #45713: \[Feature\]: In the new Hermes Desktop app, typing /usage only shows the Nous credits block, even when the active provider is OpenAI Codex / GPT-5.5. The Codex account-limit data is available in Hermes, but Desktop does not appear to surface it.
- #57476: Expose OpenAI Codex subscription quota in status and gateway slash command

## Prior & competing PRs

- **#15173: fix(auth/gateway): surface Codex OAuth credential from credential_pool to /usage (#15167)**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#17480`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#17480: fix(auth): resolve Codex usage credentials from auth fallbacks**. closed without merge · fix tier `suggested`
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#115766: fix(usage): Codex quota windows labelled correctly and shown on every /usage surface (#65387, #42904, #15167, #79695; salvage #65400, #42905)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `agent/account_usage.py`, `apps/desktop/src/app/session/hooks/use-prompt-actions/utils.test.ts`, `apps/desktop/src/app/session/hooks/use-prompt-actions/utils.ts`, `contributors/emails/[redacted:email]`, `gateway/slash_commands_status.py`, `hermes_cli/cli_info_mixin.py`, `tests/agent/test_account_usage.py`, `tests/gateway/test_usage_command.py`, `tests/hermes_cli/test_cli_status_bar.py`, `tests/tui_gateway/test_session_usage_account_lines.py`, `tui_gateway/methods_session.py`
- **#115899: feat(cli): \`hermes usage --json\` prints Codex quota windows without a session (#33094, salvage #81819)**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`; implication `superseded`
  - files: `hermes_cli/main.py`, `hermes_cli/subcommands/usage.py`, `tests/hermes_cli/test_usage_command.py`, `website/docs/reference/cli-commands.md`
- **#8355: feat(status): rich /status snapshots across CLI and gateway**. open
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `#7317`
  - files: `agent/context_compressor.py`, `gateway/run.py`, `gateway/session.py`, `hermes_cli/status_format.py`, `hermes_state.py`, `locales/af.yaml`, `locales/ar.yaml`, `locales/de.yaml`, `locales/en.yaml`, `locales/es.yaml`, `locales/fr.yaml`, `locales/ga.yaml`, `locales/hu.yaml`, `locales/it.yaml`, `locales/ja.yaml`, `locales/ko.yaml`, `locales/pt.yaml`, `locales/ru.yaml`, `locales/tr.yaml`, `locales/uk.yaml` (+2 more)
- **#16644: feat(tui): show account limits in status bar**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#16652`
- **#16652: feat: show account limits in CLI and TUI status bars**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `agent/account_usage.py`, `cli.py`, `hermes_cli/runtime_provider.py`, `run_agent.py`, `tests/agent/test_account_usage.py`, `tests/cli/test_cli_status_bar.py`, `tests/hermes_cli/test_runtime_provider_resolution.py`, `tests/test_tui_gateway_server.py`, `tests/tui_gateway/test_make_agent_provider.py`, `tui_gateway/server.py`, `ui-tui/src/__tests__/appChromeStatusRule.test.tsx`, `ui-tui/src/__tests__/createGatewayEventHandler.test.ts`, `ui-tui/src/app/createGatewayEventHandler.ts`, `ui-tui/src/components/appChrome.tsx`, `ui-tui/src/components/appLayout.tsx`, `ui-tui/src/gatewayTypes.ts`, `ui-tui/src/types.ts`
- **#42905: fix: show account limits for persisted usage**. closed without merge
  - maintainer direction: category `merged_via`; implication `superseded`; refs `604d8803a1f2`, `#115766`, `#65387`, `#42904`, `#15167`, `#79695`, `#65400`, `#42905`
- **#53375: feat(cli+tui): provider quota and rate-limit in status bar**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#53306`
  - files: `agent/account_usage.py`, `cli.py`, `tui_gateway/server.py`
- **#58339: fix: show account limits in desktop and TUI /usage**. open
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `8c57b4a33`
  - files: `apps/shared/src/gateway-contract.generated.ts`, `apps/shared/src/gateway-contract.openrpc.json`, `tests/tui_gateway/test_protocol_usage.py`, `tests/tui_gateway/test_session_usage_account_lines.py`, `tests/tui_gateway/test_usage_provider_integration.py`, `tui_gateway/contracts/sessions.py`, `tui_gateway/methods_session.py`, `tui_gateway/methods_slash.py`, `tui_gateway/usage_provider.py`, `ui-tui/src/__tests__/usageCommand.test.ts`, `ui-tui/src/app/slash/commands/session.ts`, `ui-tui/src/app/slash/usagePanel.ts`, `ui-tui/src/gatewayTypes.ts`
- **#93282: feat(cli): show official OAuth quota via hermes usage**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `9f989325053b`
- **#116605: feat(usage): surface Codex plan-limit windows**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`

## Fix status

- Merged to main in PR #115766 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-09-19`.
- Subsystem: `agent`
