← back to selected work

selected work · 2026

VibeDeck

Local-first observability for AI coding sessions across every provider, branch, and worktree.

summary

  • Unifies AI coding sessions from Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Kiro, and other local tools.
  • Stores provider, model, repo, worktree, branch, tool, token, and cost events in a local SQLite ledger.
  • Turns scattered terminal output and vendor dashboards into one readable operational view for engineering teams.
  • Ships the same data through a macOS app, Next.js dashboard, desktop widgets, and typed Node CLI.

problem

  • Agent work lands across vendor dashboards, editor history, and terminal scrollback with no shared audit trail.
  • Reviewers need to know which model touched a branch, what is still running, and why spend shifted suddenly.
  • Token cost stays detached from the repo, worktree, review, and agent session that actually created it.

approach

  • Adapters translate stdout and RPC events into one Session record before anything reaches the local ledger.
  • SQLite keeps writes local and append-only, while rollups group activity by repo, model, branch, and time.
  • The macOS app, widgets, dashboard, and CLI read one schema so live state and cost history stay aligned.

outcome

  • Teams get one local operating picture for live sessions, historical rollups, cost, and branch attribution.
  • Cost reviews become explainable because token usage is tied to model, repo, worktree, branch, and provider.
  • DMG, Homebrew, npm, and widgets make the observability layer usable in everyday desktop workflows.

stack

TypeScriptSwiftSwiftUISQLiteNext.jsHomebrewnpmmacOS