codeburn/docs
Resham Joshi f3f6c4c3b0
feat: CodeBurn for VS Code (#1670)
* refactor(app): move the bridge handlers out of main.ts

createBridgeHandlers and the argv builders now live in
app/electron/bridge-handlers.ts with no electron import, so a host other
than Electron can run the same channel to argv mapping. main.ts keeps its
default deps and re-exports, so the desktop app and its tests are unchanged.

Two additive hooks for that host: scopeProjectFilter narrows the saved
project filter before it becomes argv, and CODEBURN_NODE_BIN runs the
bundled CLI with a named Node instead of Electron-as-Node.

* feat(app): let the renderer run inside an editor

The bridge can now say it is the VS Code host. When it does, the chord
shortcuts and their hints step aside for the editor's own, Settings hands
theme, language, default period and refresh to the editor's settings,
the top bar shows a this workspace / all projects switch, and the editor
can send a section, a period or a refresh to an open dashboard.

formatResetTime moves to lib/format.ts so the status bar and the summary
use the Plans wording. New strings are in all six locales. Nothing
changes in the desktop app.

* feat(app): build the renderer for VS Code webviews

app/vite.vscode.config.ts builds two webview entries into
vscode/dist/webview: the whole dashboard and the activity bar summary.
renderer/vscode/bridge.ts implements window.codeburn over postMessage,
forwarding only the channels in channels.ts; telemetry, update checks and
the desktop companions are answered in the webview. localStorage is
prefixed per scope so one workspace's cached views never paint in
another's, and the theme follows the editor's light, dark and high
contrast kinds through its --vscode-* tokens.

* feat(vscode): CodeBurn extension for VS Code and its forks

A status bar item with today's spend (~ when estimated) and a tooltip
with the week, the month, this workspace, the top model and plan quotas;
an activity bar summary; the desktop dashboard in an editor tab, scoped
to the open workspace; eight commands and eight settings.

The bundled CLI runs as the desktop's resident serve child through the
shared client. Current VS Code, Cursor and Antigravity ship Node 24, so
it runs on the editor's own Node; an older editor gets a system Node
22.13+ or a degraded run that says what it cannot read. A workspace
folder maps to a rooted --project the way the CLI keys sessions,
worktrees folding into their main repository.

npm run package:vscode builds the .vsix. Unit tests cover the bridge
host, status bar formatting, workspace mapping, settings and runtime
choice; test:smoke drives a real VS Code against a fixture home.

* ci, docs: build, test and package the VS Code extension

A vscode job typechecks, unit tests, packages the .vsix, runs the smoke
test in VS Code under xvfb and uploads the .vsix. docs/vscode.md covers
the architecture, the measured editor runtimes and how to test.

* fix(vscode): keep the currency setting out of workspace settings

Changing codeburn.currency runs the CLI's own currency command, which
every CodeBurn app shares, so a repository's .vscode/settings.json must
not be able to set it: the setting is application scoped now.

The smoke test also checks that the dashboard's renderer booted inside
the webview and called the host, not only that its tab opened.

* feat(vscode): version the extension 1.0.0, apart from the CLI

The extension carried the CLI's 0.9.25. It now has its own version,
1.0.0. The host passes it to the webview, and the dashboard's nav
footer, About dialog and Settings show it there instead of the
renderer's package version; Settings adds "Bundled CLI 0.9.25" beneath
it. The desktop app is unchanged. Nothing in the build or packaging
writes the extension's version from the CLI.

* fix(vscode): run the smoke test in Cursor, keep the demo shim out

Cursor 3 opens its Agents window on a fresh profile, which starts no
extension host, so the smoke run against Cursor.app hung; it now passes
--classic for Cursor. The webview build no longer copies
renderer/public/demo-shim.js, a browser demo harness, into the .vsix.

* feat(vscode): a quiet star line in the summary, and a Star on GitHub command

From the third day of use, the activity bar summary ends with the
desktop's "Enjoying CodeBurn? Star us on GitHub" line, in the same six
languages, with a close button. Clicking it or closing it hides it for
good (kept in the extension's globalState). It is never a notification.
The new "CodeBurn: Star on GitHub" command opens the repository page.
No tracking parameters, no telemetry.

* docs(vscode): marketplace screenshots in the README

Five screenshots of the extension on real data (Overview in dark and
light, the why it cost view, the status bar hover and the activity bar
summary), 1600 px wide, each with a one-line caption. They live in
vscode/media/screenshots, stay out of the .vsix, and the package script
points vsce at the raw GitHub URLs on main.

* fix(vscode): review fixes for settings trust, serve lifecycle and the tooltip

- codeburn.provider and codeburn.quotaProviders are application scoped,
  like currency, so a repository's settings cannot turn quota requests
  back on, even in Restricted Mode.
- deactivate removes the serve pid file once the child is stopped, and
  changing codeburn.nodePath restarts the serve child on the new Node.
- codeburn.currency is applied at startup when the CLI's currency
  differs, not only when the setting changes.
- The dashboard's Settings no longer shows per-plan quota switches in the
  editor, where the editor setting rewrites them on every boot; it points
  to the editor settings instead.
- Workspace and model names are escaped in the status bar tooltip.
- The README lists the dashboard actions that reach the network.
- The staged CLI drops its dependencies' tests and TypeScript sources
  (466 files, 9.9 MB to 9.2 MB).
2026-10-07 16:46:23 +02:00
..
design feat(dock): one Claude ring per config directory, with its own sessions and today (#1570) 2026-09-28 19:06:53 +02:00
providers feat(providers): add Command Code (#1658) 2026-10-07 00:18:50 +02:00
release-acceptance test(perf): add Phase 0 wait-path harness and pin main baselines 2026-08-29 23:45:46 +05:30
sync feat(sync): additive CB-3 usage-span fields and coverage watermark (Teams boundary spec section 7) (#1135, #1140) (#1147) 2026-08-25 11:32:45 -07:00
architecture.md feat(providers): add Command Code (#1658) 2026-10-07 00:18:50 +02:00
by-branch.md Add spend-by-branch report (spend --format branch-json) 2026-09-12 13:09:00 -07:00
cli.md Track peak vs off-peak usage for first-party DeepSeek and Z.ai routes (#1561) 2026-09-28 18:48:38 +02:00
compare-cohorts.md Wire cohort samples to the real drill-through, scope and serve the new flags 2026-09-12 14:02:01 -07:00
compare-periods.md Compare periods: lead sentence, three tiles, day bars, top movers (#1446) 2026-09-15 23:12:12 +02:00
configuration.md README: tell the story first, keep the manual in docs (#1527) 2026-09-22 16:28:27 +02:00
drill-through.md Fix drill-through provider, day and model attribution 2026-09-12 12:22:19 -07:00
guard.md README: tell the story first, keep the manual in docs (#1527) 2026-09-22 16:28:27 +02:00
how-it-works.md chore: remove Roo Code support (#1551) 2026-09-24 21:34:39 +02:00
mcp.md README: tell the story first, keep the manual in docs (#1527) 2026-09-22 16:28:27 +02:00
menubar.md feat(dock): one Claude ring per config directory, with its own sessions and today (#1570) 2026-09-28 19:06:53 +02:00
optimize.md README: tell the story first, keep the manual in docs (#1527) 2026-09-22 16:28:27 +02:00
plans-and-quota.md README: tell the story first, keep the manual in docs (#1527) 2026-09-22 16:28:27 +02:00
README.md feat: CodeBurn for VS Code (#1670) 2026-10-07 16:46:23 +02:00
vscode.md feat: CodeBurn for VS Code (#1670) 2026-10-07 16:46:23 +02:00
web.md README: tell the story first, keep the manual in docs (#1527) 2026-09-22 16:28:27 +02:00
yield.md README: tell the story first, keep the manual in docs (#1527) 2026-09-22 16:28:27 +02:00

Docs index

One line per file in this directory, recursively.

docs/

  • architecture.md — A map of the codebase.
  • by-branch.md — The Spend view in CodeBurn Desktop has a By branch panel: pick a project and see where its AI spend went, per git branch, with the recorded worktrees and the individual sessions behind each branch.
  • cli.md — Every CodeBurn command and keyboard shortcut, plus the report-focused flags for filtering, JSON output, and diagnosing detection.
  • compare-cohorts.md — The classic Compare view answers "how do these two models differ across my whole history?" by aggregating everything each model ever did.
  • compare-periods.md — Compare two date ranges side by side and see exactly what drove the change in usage and cost.
  • configuration.md — Currency, model aliases, local/custom-priced/proxy models, and environment variables.
  • drill-through.md — CodeBurn Desktop can open any aggregate as a session list that explains exactly what composes it, without losing your place.
  • guard.md — Opt-in Claude Code hooks that watch session cost while you work: soft cap, hard cap, checkpoint nudge, session openers.
  • how-it-works.md — Pricing, task categories, breakdowns, one-shot rate, per-tool data locations and parsing, and how to read the dashboard.
  • mcp.md — codeburn mcp runs a local MCP server over stdio so an AI agent can ask about your usage and savings mid-conversation.
  • menubar.md — The macOS menu bar app, Windows tray app (with WSL discovery), and Linux GNOME Shell extension.
  • optimize.md — codeburn optimize scans your Claude Code sessions and your ~/.claude/ setup, reports what is costing tokens without earning them, and grades the setup A to F.
  • plans-and-quota.md — Subscription plan tracking and live provider quota via codeburn quota.
  • vscode.md — The VS Code extension: how it reuses the CLI client and the desktop renderer, which Node it runs on, workspace scope, and how to build and test it.
  • web.md — The local browser dashboard and combining usage across your paired devices.
  • yield.md — codeburn yield correlates AI sessions with git commits to show what actually shipped.

docs/design/

  • design/capacity-dock.md — Status: implementation specification (Epic: Quota Intelligence #725).
  • design/codeburn-desktop-plan.md — Goal: a standalone Electron desktop app that renders the approved v6 "indigo instrument" wireframes, fed entirely by spawning the codeburn CLI for JSON.
  • design/codeburn-desktop.md — Build CodeBurn Desktop, a standalone, resizable native desktop application (Electron) that renders the approved v6 "indigo instrument" wireframes.
  • design/codeburn-mcp-plan.md — Goal: add a codeburn mcp stdio MCP server exposing CodeBurn's usage/cost data to AI agents via two tools (get_usage, get_savings).
  • design/codeburn-mcp.md — CodeBurn already aggregates rich AI-coding usage/cost data (by task, model, project, provider; retry tax; routing waste; optimize findings; 365-day history).
  • design/desktop-data-lifecycle.md — Status: implementation contract for the quality/performance epic.
  • design/perf-cache-fix.md — codeburn status --format menubar-json was measured taking 25-90+ seconds per call, with no speedup on a repeat call against an unchanged, freshly-warmed cache.

docs/providers/

docs/release-acceptance/

docs/sync/

  • sync/README.md — Push your AI usage telemetry to a shared backend so teams can track adoption, budgets, and ROI across developers.
  • sync/DEVELOPER.md — Architecture, protocol, server contract, and testing for codeburn sync.