See what your AI coding tools are doing — locally, in your editor.
Claude Code cost tracking. Cursor token usage. Codex spend. Captures,
normalises, and analyses tool-call activity across
31 adapters — Claude Code, Codex,
Cursor, Cline, Copilot, Gemini CLI, Aider, Goose, Devin, and more.
Zero telemetry. No data leaves your machine.
⚡ 5-minute quick start
1. You just installed the extension. Now what?
The extension wraps the observer binary — a small, local Go service
that watches your AI tools' log files and exposes a dashboard. The
binary either downloads automatically on first activation (~21 MB
from GitHub Releases) or uses one you've installed elsewhere
(npm install -g @superbased/observer works too).
2. Verify your install
Open the command palette (Ctrl+Shift+P / ⌘⇧P) and run:
SuperBased: Doctor
A terminal opens with a health-check. All four lines should show ✅.
If anything fails, the error tells you what to fix.
3. The daemon starts itself
Nothing to do — the extension ships in auto mode. It attaches to a
daemon you already have running, and otherwise starts one for you. It
only ever stops a daemon it started itself, so a daemon you launched in
a terminal is left alone when you close the editor.
Prefer to run it yourself?
observer start
Keep that terminal open. The extension attaches to it automatically.
4. Open the dashboard
SuperBased: Open Dashboard
Or click the spend indicator in the bottom-right status bar
($(graph) $0.00 until your AI tools generate activity).
The full React analytics dashboard renders inside a VS Code editor
tab. This is where you see your metrics. Nine sections, all
linked to your real captured activity:
Tab
Shows
Overview
Today's spend, top model, burn rate, month projection.
Sessions
Every AI coding session with cost, duration, tool — drill into action-by-action timelines.
Schema-driven editor for every config knob in ~/.observer/config.toml.
5. Capture an AI session
Open a terminal in VS Code. Click the down-arrow next to the
+ in the terminal panel → choose "AI Coding Tool
(SuperBased-proxied)". The new terminal already has
ANTHROPIC_BASE_URL, OPENAI_BASE_URL, and ENABLE_TOOL_SEARCH=true
exported.
Run your AI CLI from that terminal:
claude # or: cursor-agent, codex, cline-cli, gh copilot, …
Everything routes through the local proxy. Within ~30 seconds your
session shows up in the dashboard with accurate token counts
(not the ~3.4× over-bill you get from non-proxied JSONL adapters).
🎯 What you get
Surface
What it does
How to access
Status bar
Today's spend at a glance, polled every 60s. Hover for delta vs yesterday, top model, burn rate, month projection.
Bottom-right corner. Click → open dashboard.
Sidebar
Four trees — Today, Sessions, Discovery, Costs (7d) — refreshed automatically.
Click the SuperBased icon in the activity bar (left rail).
Dashboard webview
The full React analytics SPA in an editor tab. Same surface as http://127.0.0.1:8081/.
SuperBased: Open Dashboard or status-bar click.
File freshness
Small dot in the file explorer next to files your AI tools touched in the last 24h. Hover shows last-read-by, edit count, stale re-reads flagged.
Just open a file — visible immediately.
Notifications
Budget breach (80% of monthly cap) + watcher-lag warnings. Deduped so they don't nag.
Automatic. Tunable thresholds in settings.
Terminal profile
"AI Coding Tool (SuperBased-proxied)" — pre-exports proxy env vars so AI CLIs launched from it route through observer.
Terminal panel → dropdown next to + → pick the profile.
Instruction-file CodeLens
"Refresh from SuperBased learnings" + "Preview suggestions" on CLAUDE.md / AGENTS.md / .cursorrules. Auto-updates the file from your captured patterns.
Open one of those three files — appears at the top.
Get Started walkthrough
7-step interactive tour.
Help → Welcome → "Get Started with SuperBased".
⚙️ Settings
Setting
Default
Purpose
observer.daemon.mode
auto
auto attaches if a daemon is running, otherwise spawns one (and only stops what it spawned); managed behaves the same; detect attaches only and never spawns.
observer.binary.path
empty
Absolute path to override binary auto-detection.
observer.dashboard.port
8081
Where the dashboard listens.
observer.proxy.port
8820
Where the API reverse proxy listens.
observer.statusBar.enabled
true
Today-spend status bar item.
🎛️ Common commands
Open the command palette (Ctrl+Shift+P / ⌘⇧P) and type SuperBased:
Command
Use it when
SuperBased: Open Dashboard
You want to see your metrics.
SuperBased: Doctor
Something seems off — health-check the install.
SuperBased: Start Daemon
You picked managed or auto mode and need to (re)start.
SuperBased: Copy Proxy Env Vars
You want to set up proxy routing in an existing terminal.
SuperBased: Refresh All Trees
The sidebar feels stale.
🤖 Supported AI tools
Claude Code (CLI + IDE) — via proxy + MCP server
Cursor (CLI + IDE) — via proxy + agent-transcripts
Kilo Code (legacy IDE extension kilocode.kilo-code — Cline + Roo fork) + Kilo Code CLI (@kilocode/cli, OpenCode fork) — via JSONL / SQLite adapters
Aider, Goose, Devin, Qoder, Crush, Kimi Code, Grok, Kiro CLI, Qwen Code — via JSONL / SQLite adapters
Factory droid, Open Interpreter, Command Code — via JSONL adapters
31 adapters total. Five more (chatgpt-web, claude-web, perplexity-web,
gemini-web, copilot-web) capture browser-based chat via an opt-in
browser extension that today installs unpacked only — not yet in the
Chrome Web Store.
Zero telemetry. Respects telemetry.telemetryLevel. No usage
reporting, no crash analytics, no session beacons.
No outbound network calls at runtime. The only network traffic
the extension ever generates is the first-install binary download
from GitHub Releases when no observer is found locally. After
that, all communication is to 127.0.0.1:<dashboard.port> on
your workspace host.
No data leaves your machine. Every byte captured stays in
~/.observer/observer.db.
Codespaces / Remote-SSH / WSL2 / Dev Containers all work via
portMapping — data still doesn't cross any wire that wasn't
already part of your VS Code remote-dev session.