Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>AI Status BarNew to Visual Studio Code? Get it now.
AI Status Bar

AI Status Bar

Tolbxela

|
57 installs
| (0) | Free
Track Codex, Claude Code, and Devin usage in the status bar and expose saved usage to agents over MCP.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AI Status Bar

AI Status Bar tracks AI coding-agent usage directly in the VS Code status bar.

It currently supports:

  • Codex usage from codex app-server
  • Claude Code usage from Claude's local OAuth credentials and usage endpoint
  • Devin usage from Devin's local IDE usage cache, with optional JSON/API fallbacks

When multiple agents are available, they appear side by side in the status bar, each with its own hover popup for active usage windows, reset times, known plan details, credits, and last update time.

Platform note: this extension has only been tested on Windows. macOS and Linux support is best-effort: Claude should work if credentials are in the standard location, and Codex should work if codex app-server is available on PATH or in a known extension install location.

Status Bar

By default:

  • Codex shows remaining usage.
  • Claude shows used usage.
  • Devin shows used quota usage from the local IDE cache.

You can keep those native defaults or force all agents to show either used or remaining percentages with aiStatusBar.presentationMode.

Example status-bar shape:

Codex: 🟢 5h ▰▰▱ 69% · 🟢 wk ▰▰▱ 51%   Claude: 🟢 5h ▰▰▰ 100%   Devin: 🟢 day ▰▰▰ 100%

Screenshots

AI Status Bar entries with Devin usage hover details

Codex, Claude Code, and Devin each get their own compact status-bar item. Hover any entry to see usage windows, reset times, credits, plan details, and the last update time.

Codex usage hover details

Claude Code usage hover details

Devin usage hover details

Why I Created This

I use multiple AI coding agents during the same development workflow. Codex, Claude Code, and Devin each have their own limits, reset windows, plan details, and credit state, but that information is easy to lose track of while coding.

This extension was created to make that usage visible without opening separate tools, running commands, or switching context. The goal is simple: keep the current state of the AI agents I rely on in the same place I already look all day, the editor status bar.

It also replaces separate status-bar experiments with one shared implementation. The agent-specific parts stay separate, but common behavior such as polling, caching, rendering, settings, warnings, and popup layout is centralized for easier maintenance.

Features

  • Detects Claude Code, Codex, and Devin automatically.
  • Shows one status-bar item per detected agent.
  • Displays compact primary gauges (5h for Codex/Claude, day for Devin) plus an optional weekly or cycle gauge.
  • Keeps agent hover popups visually consistent across providers.
  • Uses shared settings for polling, gauge width, threshold colors, locale, and presentation mode.
  • Caches usage snapshots to avoid unnecessary API/process calls across windows.
  • Coordinates polling through a shared per-provider lock, so multiple editor windows reuse one request per interval.
  • Includes an optional, read-only MCP server for agents to inspect installed AI tools and saved usage.
  • Warns when usage crosses the configured threshold.

How To Use It

  1. Install AI Status Bar from your editor's extension marketplace once published, or install a local .vsix build:

    code --install-extension ai-status-bar-1.2.1.vsix --force
    
  2. Make sure the agents you want to monitor are signed in and usable:

    • Claude Code should have a valid ~/.claude/.credentials.json.
    • Codex should be able to run codex app-server.
    • Devin should have been opened at least once so the local IDE usage cache exists.
  3. Reload VS Code.

  4. Look at the right side of the status bar.

    If multiple agents are detected, you should see multiple status-bar entries. Hover each entry to see its detailed popup.

  5. Optional: tune settings under AI Status Bar.

    Useful first settings:

    {
      "aiStatusBar.presentationMode": "agentDefault",
      "aiStatusBar.pollSeconds": 60,
      "aiStatusBar.locale": "de-DE"
    }
    

Use the command palette commands when needed:

  • AI Status Bar: Refresh
  • AI Status Bar: Install MCP config

Refresh reloads local detection and checks whether usage is due. It does not bypass the shared polling window or rate-limit backoff.

The right side of the status bar always includes a refresh icon. When MCP is enabled, it also includes an MCP plug icon for the install command. On first activation, AI Status Bar asks whether you want to enable MCP. MCP remains off unless you choose Enable MCP; after opting in, the extension opens the MCP target picker so you can select which host configurations to update.

MCP For Agents

AI Status Bar includes an optional, read-only MCP server. It is disabled by default and reads the same normalized snapshots as the status bar and never contacts Claude, Codex, Devin, or any other provider itself.

MCP setup requires Node.js 18 or newer on PATH. The installer verifies this before changing a host configuration. The MCP tools only report saved usage; they cannot stop an agent, enforce a spending cap, or prevent provider overage. Hard budget enforcement must be implemented by the agent or orchestrator that starts work and must fail closed when the reported budget is exhausted or stale.

Enable aiStatusBar.mcp.enabled, then run AI Status Bar: Install MCP config and explicitly select the MCP hosts you want to update. The installer supports global Devin IDE, Windsurf, Claude Code, Cursor, and Codex configuration, plus workspace .windsurf/mcp.json, .mcp.json, and .cursor/mcp.json files. Existing unrelated MCP entries are preserved.

Turning the setting off hides the MCP status-bar action and blocks the bundled server, including launches from MCP configurations you installed previously. It does not remove those entries from third-party configuration files; turn the setting back on to use them again.

Available MCP tools:

  • ai_tools lists detected Cursor, Devin, Claude Code, Codex, and ChatGPT installations.
  • ai_tool_usage returns saved used and remaining percentages, reset times, plan and credit details, and freshness information. Pass tool to select one.

Cursor and ChatGPT are detected for inventory purposes, but are reported as usageSupported: false because the extension has no reliable local quota source for them.

The MCP tools return Unix-millisecond timestamps (timestampUnit: "unix_ms"), fetchedAt, ageSeconds, refreshDue, and stale. refreshDue means the status worker is allowed to collect again; it does not mean the saved usage is unreliable. If no editor instance is running, tools return the last saved snapshot instead of making a background request. Local detection paths are omitted by default and are available only through include_diagnostics: true.

How It Works

The extension only collects enough local usage data to show status-bar percentages and hover details.

Each agent provider is read-only from the agent's point of view:

  • Codex usage is requested through Codex's local app-server. The extension does not read Codex auth files directly.
  • Claude usage uses the existing local Claude Code sign-in token. The token is kept in memory only and is not written to the extension cache.
  • Devin usage is read from exact plan-cache rows in the local IDE SQLite database when current and fully checkpointed. The Devin API fallback is used only when configured with DEVIN_API_KEY.

The extension stores normalized usage snapshots under ~/.ai-status-bar so multiple windows—and the occasional different IDE—reuse the same data and do not query providers in parallel. One worker runs in each extension host, but a shared atomic lock permits only one request per provider and polling window. Different providers refresh concurrently, so one slow provider does not delay the others. Those snapshots contain usage details, not agent credentials.

Codex

Codex handles its own authentication. AI Status Bar asks the local Codex app-server for usage limits and does not inspect Codex credential files.

Claude Code

Claude Code authentication stays with Claude Code. AI Status Bar uses the existing local sign-in token to request usage, keeps that token in memory only, and caches only the resulting usage snapshot.

Devin

For the normal Devin IDE case, AI Status Bar queries only the relevant cached plan rows already stored locally by Devin. Expired rows and databases with an active write-ahead log are ignored rather than reported as current. No DEVIN_API_KEY is needed unless you choose to use the API fallback.

Settings

All settings are under aiStatusBar.

Setting Default Description
pollSeconds 60 Minimum interval between shared provider refreshes. Multiple windows reuse the same request.
barCells 3 Number of segments in the compact status-bar gauge.
showWeekly true Show the secondary weekly or billing-cycle usage window. The primary 5-hour or daily window is otherwise always shown.
replacePrimaryWithWeeklyOnLimit true When the secondary weekly or billing-cycle limit is reached, show that exhausted budget in the primary status-bar slot instead of the 5-hour or daily budget.
presentationMode agentDefault agentDefault, used, or remaining.
cautionAt 70 Used percentage where the status indicator turns yellow.
warnAt 90 Used percentage where the status indicator turns red and warning notifications can appear.
locale "" BCP-47 locale for reset times, for example de-DE. Empty uses the system locale.
mcp.enabled false Enable the local read-only MCP server and show its configuration action. First-time installs are asked before this is enabled.
claude.enabled true Enable or disable Claude Code detection and display.
codex.enabled true Enable or disable Codex detection and display.
codex.command codex Codex executable path or command. This is machine-scoped for safety.
devin.enabled true Enable or disable Devin detection and display.
devin.apiKeyEnv DEVIN_API_KEY Optional environment variable containing a Devin cog_ API key for the API fallback.
devin.orgId "" Devin organization ID for the API fallback. Usually discovered from /v3/self when the token allows it.
devin.userId "" Devin user ID to query for consumption in the API fallback.
devin.cycleAcuLimit 0 Optional quota/ACU limit when the API does not return an organization cycle limit.
devin.usageFile "" Optional local JSON usage snapshot override.

Example:

{
  "aiStatusBar.presentationMode": "remaining",
  "aiStatusBar.locale": "de-DE",
  "aiStatusBar.warnAt": 90,
  "aiStatusBar.mcp.enabled": false,
  "aiStatusBar.claude.enabled": true,
  "aiStatusBar.codex.enabled": true,
  "aiStatusBar.devin.enabled": true,
  "aiStatusBar.devin.userId": "user_...",
  "aiStatusBar.codex.command": "C:\\Users\\you\\AppData\\Roaming\\npm\\node_modules\\@openai\\codex\\node_modules\\@openai\\codex-win32-x64\\vendor\\x86_64-pc-windows-msvc\\codex\\codex.exe"
}

macOS and Linux

This extension is not yet tested on macOS or Linux.

Best-effort support is included:

  • Claude uses ~/.claude/.credentials.json, which should be platform-neutral.
  • Codex first checks known bundled binary locations for the current platform.
  • If no bundled binary is found, Codex falls back to codex on PATH.

For non-Windows environments, first verify this works in a terminal:

codex app-server

If Codex is installed somewhere custom, set aiStatusBar.codex.command to the full executable path in user or machine settings.

Privacy and Security

This extension is intentionally read-only from the agents' point of view.

What it reads:

  • Claude's local credentials file, only to get the existing OAuth token.
  • Codex usage data through codex app-server.
  • Devin's local IDE usage cache, or an optional local JSON file when configured.
  • Devin usage through the documented Devin API only when no local cache is available and DEVIN_API_KEY is set.
  • Its own cache files under ~/.ai-status-bar.

What it writes:

  • Usage snapshots, provider locks, and installed-tool inventory under ~/.ai-status-bar. When MCP is enabled, this also includes its state and a stable launcher and copied MCP server runtime.
  • MCP configuration entries only when you run Install MCP config and explicitly select targets.

What it does not do:

  • It does not write, replace, or refresh Claude credentials.
  • It does not read Codex auth files directly.
  • It does not read Devin browser/session auth secrets directly.
  • It does not transmit tokens to any third-party service.
  • It does not trust workspace settings for the Codex executable path.

Security choices:

  • Claude OAuth tokens are kept in memory only.
  • Usage cache files contain usage snapshots, not credentials or raw provider error text.
  • MCP is disabled by default and must be explicitly enabled on first install.
  • The MCP server is cache-only and cannot force a provider refresh.
  • MCP reports budgets but cannot stop agents or guarantee that a provider will not charge for overage.
  • aiStatusBar.codex.command is machine-scoped so a workspace cannot override it with a repository-local executable.
  • Devin API settings are machine-scoped, and the API key is read from an environment variable rather than stored in settings.
  • .cmd and .bat Codex shims are rejected on Windows to avoid future shell-injection footguns.
  • Tooltip content from APIs and process output is escaped before rendering.
  • Codex child processes are cleaned up on timeout, failure, and extension disposal.

Troubleshooting

  • Reload the editor or MCP host after installing or upgrading. The first usage snapshot can take about three seconds after extension activation.
  • Refresh respects the shared polling and backoff window; it does not force another paid or rate-limited provider request.
  • If Codex is missing, verify codex app-server runs or set aiStatusBar.codex.command to its executable.
  • If MCP does not start, verify node --version reports Node.js 18 or newer and re-run AI Status Bar: Install MCP config.
  • If Devin usage disappears, open Devin to refresh its local cache. Expired or uncheckpointed SQLite data is intentionally rejected.

Build

npm install
npm run build
npm run pack

The generated .vsix can be installed with:

code --install-extension ai-status-bar-1.2.1.vsix --force

See PRIVACY.md for local data notes and CHANGELOG.md for release history.

Limitations

  • The extension is unofficial.
  • Claude usage uses an internal/undocumented endpoint and may break if Claude changes it.
  • Codex support depends on the local codex app-server protocol.
  • MCP is advisory and read-only; it cannot enforce agent or billing limits.
  • Devin API support requires a cog_ API key with consumption permissions. Self-serve quota details may still require Devin's Settings > Plans page if not exposed to your token.
  • Windows is the only tested platform at this time.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft