Platforms · every surface, one daemon

BurnBar runs on the screens you actually look at.

One Mac, one daemon, one local journal — surfaced anywhere it matters. The menu bar is the home base; the phone, the tablet, the Nest Hub on the kitchen counter, and the pixel clock on the desk are everywhere else. Below: live re-renders of the in-app preview code on every device. No screenshots.

The smart-display showcase

Faithful re-renders. Live data. Today's pick.

Your menu bar is one surface. Your Nest Hub on the kitchen counter and your Ulanzi pixel clock on the desk are two more — already shipping. The mockups below are faithful re-renders of the in-app preview code, hydrated from today's live router rundown.

Shipping (per-device QA matrix)

Google Nest Hub

Google · 7-inch smart display · Cast V2

BurnBar casts a live provider dashboard to the Nest Hub on your kitchen counter. Refresh, brightness, theme, and provider filter are all controlled from the Mac app.

  • Cast V2 + Home Assistant blueprints — no third-party server
  • Provider rail, big-total, ambient, photo-blend layouts ship today
  • Acceptance probe before "healthy" — `docs/SMART_DISPLAY_DEVICE_QA.md`
Shipping (per-device QA matrix)

ULANZI TC001

Pixel clock · 32×8 LED matrix · AWTRIX HTTP

A faithful 32×8 LED matrix render — same glyph tables, same palette, same per-pixel glow blur the BurnBar daemon paints to AWTRIX firmware.

  • AWTRIX HTTP — works on stock or community firmware
  • Four layouts · provider dashboard, quota carousel, burn status, alerts
  • Ember & whimsy palette by default · five palettes ship
Surface matrix

Every surface BurnBar ships on. Status pill on every one.

The two devices above have live mockups. Every other surface is listed here with its current shipping status, scope, and CTA. Nothing is hidden, even the planned ones.

  • Shipping macOS 14+

    macOS menu bar app

    The home base. Lives in the menu bar, reads local agent logs, surfaces cost, tokens, quota, sessions, and insights.

    • LSUIElement — no Dock icon, no windows stealing focus
    • Dashboard, providers, models, sessions, projects, streams, search
    • Hermes chat panel sits inside the dashboard
    • Daily digest, smart insights, quota refresh, daemon-backed control plane
    • Optional Firebase sync, optional iCloud session mirror, optional Sentry diagnostics
  • In App Store review iOS 17+

    iPhone & iPad companion

    Your whole burn picture, in your pocket. The Mac does the work; the phone and tablet show it — and reach back to it.

    • See spend the moment it happens — charts drawn from your own numbers
    • Live on the lock screen and Dynamic Island, plus a “What's my burn today?” Siri shortcut
    • Floo — see, steer, and unlock your Mac right from your phone
    • Watch an agent work, or approve its moves, on the go
    • Ask your Mac's assistant from anywhere — privately (paid)
  • Source-only beta Cursor / VS Code 1.95+

    Cursor & VS Code extension

    An activity-bar panel that hooks into the daemon over the local UNIX socket. Build locally and load unpacked — no marketplace listing yet.

    • Burn for the active workspace, scoped to the current Cursor agent run
    • Quota panel pulled from the same daemon the menu bar reads
    • Routed-provider gateway support — Z.ai, MiniMax, Ollama Cloud via Cloudflare tunnel
    • Open VSX / VS Marketplace publication is on the roadmap, not shipped
  • Shipping Embedded in macOS app

    Local daemon

    The control plane. A launchd-managed UNIX socket service every surface talks to.

    • Auth-token-gated JSON-RPC + HTTP gateway
    • Owns provider routing, quota refresh, retrieval, mission control
    • JSONL run journal — every agent invocation, every tool call, replayable
    • Repairs itself when launched from a stale plist or moved app bundle
  • Shipping macOS

    Command-line interface

    openburnbar — eight commands for scripting, agents, and operators. Same daemon, no extra account.

    • health · controller · questions · followups · missions
    • mission-approve · simulator-runs · simulator-replay
    • Pipes cleanly into git hooks, CI, and other agent scripts
  • Shipping (with iOS app) iOS / iPadOS

    Widgets & Live Activity

    Lock-screen quota, Dynamic Island countdown, home-screen cost sparkline. Siri shortcut: "What's my burn today?"

    • Hero small, cost sparkline medium, dashboard large
    • Live Activity on iOS 16.1+ with top provider + tokens + cost
    • App Intents for Spotlight + Siri
  • Shipping (per-device QA matrix) Nest Hub · Pixel Clock · Chromecast

    Smart displays

    One-click "Make display work" — casts a live OpenBurnBar dashboard, with proof of acceptance before marking healthy.

    • Google Nest Hub via Cast V2 + Home Assistant blueprints
    • ULANZI TC001 via AWTRIX HTTP or stock-firmware simulator
    • Per-device QA matrix gates support claims — see docs/SMART_DISPLAY_DEVICE_QA.md
  • Feature-complete · Play Store pending Android 8+

    Android companion

    Everything the iPhone app does, now on Android — your burn, your sessions, the assistant, and Floo. Built and tested; not yet on the Play Store.

    • Full parity with the iPhone & iPad app, screen for screen
    • Floo media and the assistant, same as on iOS
    • Not yet distributed through the Play Store — that's the last step
  • Shipping Local stdio · Hosted Streamable HTTP · macOS + any OS

    MCP integration

    Three Model Context Protocol surfaces let Codex, Claude Code, Cursor, Droid, Kimi, Forge, and Hermes query your OpenBurnBar history as grounded evidence — local SQLite for free, encrypted hosted memory for Pro.

    • Local Python MCP — 26 tools over your OpenBurnBar SQLite, read-mostly by default
    • Hosted Remote MCP — live at https://mcp.burnbar.ai/mcp, 8 tools, BurnBar Pro entitlement
    • Local stdio shim — bridges stdio-only clients to the hosted endpoint, decrypts on-device
    • Default privacy mode is local_decrypt_shim — server never sees plaintext queries or bodies
Registry Config Paths
Surface registry website/src/data/surfaces.ts
Device registry website/src/data/platform-surfaces.ts
[SYSTEM PORT STATUS // DATA PIPELINE CAST]
DAEMON LINK: OK
DAEMON 01 // SCHEMA DECLARE 02 // MODEL LAYOUT 03 // HARDWARE QA CASTED tvOS iOS Nest
READONLY
123456789101112
export const SURFACES: Surface[] = [
  // ... previous surfaces ...
  {
    id: "apple-tv",
    name: "Apple TV Dashboard",
    platform: "tvOS 17+",
    status: "beta",
    statusLabel: "Public Beta",
    bullets: [
      "Native tvOS Swift charts",
      "Real-time Local Daemon Cast"
    ]
  }
];
123456789101112
export const PLATFORM_DEVICES: PlatformDevice[] = [
  // ... previous devices ...
  {
    id: "apple-tv-4k",
    name: "Apple TV 4K",
    formFactor: "Apple · 4K Smart TV box",
    surfaceId: "apple-tv",
    mockup: "apple-tv-mockup",
    aspect: { w: 16, h: 9 },
    marqueeBullets: [
      "Full 4K HDR layout casting support"
    ]
  }
];
12345
# Smart Display Hardware QA Matrix
## tvOS [apple-tv]
- [ ] **Acceptance**: Run `scripts/qa-tvos-relay`
- [ ] **Acceptance**: Validate Cast V2 connection
- [ ] **Probe**: Screen size/aspect ratio validation
SYS.DIAGNOSTIC.PROBE v1.0.4 CONNECTED
[00:42:01] [SYSTEM] Spawning local network tvOS hardware probe...
[00:42:02] [SYSTEM] Pinging Apple TV 4K at 192.168.1.144:8080...
[00:42:02] [PROBE] Negotiating secure pairing... SUCCESS
[00:42:03] [PROBE] Verifying encrypted link latency: 4.2ms... OPTIMAL
[00:42:04] [PROBE] Validating Cast v2 local daemon loopback... SUCCESS
[00:42:04] [PROBE] Resolving display aspect ratio: 16:9 (3840x2160)... MATCH
[00:42:05] [SYSTEM] All acceptance checks passed. Committing tvOS status to SHIPPING.

Pick the screen you'll actually look at.

Free menu-bar app, $400 of hosted quota per month covered by the included plans, every surface optional.