Developers

How Vibe Guard fits together.

Vibe Guard watches your AI usage everywhere you build — the browser, your editor, the terminal, the cloud. Every surface pushes into one hub keyed by your account; your apps read from it. Here's the whole map, and how to wire up each piece.

The big picture

One hub, many surfaces

Each source measures usage where you work and pushes tokens, plan limits, and context to a single Supabase table, keyed by your account. Each reader — phone, watch, widget, web, the Mac HUDs — pulls from that same row. Connect one source or all of them; the picture just gets more complete.

SOURCES → PUSHHUBREADERS ← PULLSupabasepaired_usagekeyed byACCOUNTtokens · limits · contextChrome extensionbrowser AI tools · source=browserDesktop companion (Mac)Xcode + CLI logs, context, HUDsClaude Code pluginstatusline · terminal CLICodex CLI hookPlus/Pro rate-limitsProvider API keysAnthropic · OpenAI · xAI (in app)Apple Intelligenceon-device token APIiPhone & iPad apprings · Coach · alertsApple Watchglanceable limit ringHome-screen widget3-ring at a glanceWeb dashboardall gauges in the browserMac HUDsContext + Qwen Coach floats
Push — sources write tokens, limits & context to your row. Pull — readers display it live. Your account — the only thing that links them. Sign in once; no codes.
The glue

Everything connects through your account

There's no code to copy. Sign in once with your Vibe Guard account on this computer (open the Vibe Guard app or run the meter) — every source on that machine then reports to your account automatically. Advanced / self-host only: you can still force a legacy key with an environment variable:

# Legacy override only — normally you just sign in, no code needed
export VIBEGUARD_PAIR=ABC123

# Or read the auto-generated one
cat ~/.vibeguard_pair
Privacy: sources push counts — tokens, percentages, reset times, context size — never your prompts or code. The Coach is zero-injection: it sees only the situation plus your message — never your prompts, code, or files. It runs on-device via Apple Core AI, escalating to Private Cloud Compute (Apple's stateless, verifiable servers) only for heavy lifts — all inside Apple's privacy boundary.
Setup

Wire up each surface

Pick the surfaces you actually use. One Vibe Guard subscription covers all of them.

Browser lane

Chrome extension

In review

Counts tokens and catches loops, prompt-injection, and overspend on the web AI tools — ChatGPT, Claude, Gemini, bolt, v0, Replit. Tags everything source=browser.

  1. Install from the Chrome Web Store when approved — or load the unpacked vibeguard-extension/ folder via chrome://extensions → Developer mode → Load unpacked.
  2. Open the popup and sign in with your account.
    The popup shows your live count and which site it's watching.
  3. Keep coding — it pushes to your row automatically.
Desktop / IDE lane

Desktop companion (Mac)

Download

A menu-bar app — no terminal needed. Reads your local coding-agent logs (Claude Code, Codex, Claude-in-Xcode, Codex-in-Xcode, Gemini CLI, Cline, Aider), plus your plan limits and live context window. It floats the Context HUD over Xcode, and the Qwen Coach runs on-device via Apple Core AI (with Private Cloud Compute for heavy lifts).

  1. Download vibeguard-desktop-meter.zip from the downloads page and unzip.
  2. Double-click to run. A bolt appears in your menu bar with your token count.
  3. Pair it: the menu shows your code — type it into the app.
  4. Float the Context HUD over Xcode — see the ~200K wall coming:
    python3 vibeguard-context-hud.py
    The Qwen Coach float runs on-device through Apple Core AI (escalating to PCC for heavy lifts), so it ships inside the native companion app rather than a script.
The packaged one-double-click .app (menu bar + both HUDs bundled, signed & notarized) is the next release. The scripts above are the same code, available today.
Terminal lane

Claude Code plugin

Plugin

A statusline that shows tokens, cost, your Claude rate-limit %, and your context fill right in the terminal — and a Stop hook that mirrors your daily total to your phone.

  1. Install the plugin:
    /plugin marketplace add BTSInnovationsLLC/vibe-guard-plugin
    /plugin install vibe-guard
  2. Turn on the statusline — add this once to ~/.claude/settings.json:
    {
      "statusLine": {
        "type": "command",
        "command": "python3 ~/.claude/plugins/marketplaces/vibe-guard/statusline.py"
      }
    }
  3. Sign in once with your Vibe Guard account (open the app or run the meter) — the plugin then reports to your account automatically.
Why the context readout matters: IDE integrations are hard-capped at 200K context. The statusline shows ctx N% so you see the auto-compaction wall before it resets your agent.
Terminal lane

Codex CLI hook

Hook

A Stop hook that sums today's Codex usage from ~/.codex/sessions and pushes your running total and Plus/Pro rate-limits to your phone.

  1. Copy the hook:
    mkdir -p ~/.codex/vibeguard
    cp hooks/push.py ~/.codex/vibeguard/push.py
  2. Add the Stop entry — copy hooks/hooks.json to ~/.codex/hooks.json (or merge it).
  3. Enable hooks in ~/.codex/config.toml:
    [features]
    codex_hooks = true
  4. Sign in with your Vibe Guard account on this computer — it links automatically.
Direct-in-app lane

Provider API keys

In app

No desktop needed. The app queries each provider's usage API directly — Anthropic, OpenAI, and xAI — for org/API usage, with the account email for Max-style plans.

  1. In the app, open Token Count and pick a platform's page.
  2. Tap Sign in and paste that provider's API key (and account email where the plan needs it).
  3. That platform gets its own ring and stats page. Keys are stored in the device keychain.
Agent lane

MCP server

Coming soon

A Model Context Protocol server so any MCP client — Claude, Cursor, ChatGPT — can ask Vibe Guard "how much context and limit do I have left?" as a tool, mid-task, and back off before it hits the wall. Not shipped yet — this is on the roadmap, and we're building it honestly rather than faking it.

Join the waitlist →
Reference

Effective context windows

The counter warns you at the window your agent actually runs — not the model's headline max. Agents auto-compact (and lose continuity) near their effective window, which is often far below the advertised number.

Agent (Jun 2026)Headline maxEffective in the agentCounter denominator
Claude (Opus / Sonnet) in Xcode & IDEs1,000,000capped at 200,000 in IDE/VS Code extensions200K
Claude Code (standalone terminal, Max)1,000,000up to 1M when enabledreported value
GPT-5.5 / Codex1,000,000 (API)400,000 — Codex caps it400K
Gemini 3 / 3.1 Pro1,000,0001,000,0001M
The reason agents blow up at 200K in Xcode: the IDE integrations are hard-capped at 200K regardless of plan or model. There's no setting to lift it today — so the only defenses are the context counter warning you before the wall, and a CLAUDE.md handoff guardrail that stops a post-compaction agent from deleting the previous one's work. Want the full 1M runway? Run Claude Code in the terminal, not the Xcode/VS Code extension.

One subscription, every surface

The apps, the browser guards, the desktop companion, and the developer tools are all included. Connect what you use.