Skip to content

Repository files navigation

treehouse

A Stream Deck plugin for git worktree dashboards. See all your worktrees at a glance, track task status, and jump between projects without leaving your desk.

Built for the Elgato Stream Deck MK.2 (15-button, no encoders).

What it does

When you're working in Ghostty (or any terminal), treehouse detects the active git repo and populates your Stream Deck with:

  • Repo index button (top-left) showing the repo-level worktree overview
  • One button per worktree with live status: active, parked, or untracked
  • Visual indicators for task tracker presence, branch name, and current focus
  • One-press navigation to open task tracker dashboards or the worktree index in Chrome

Architecture

Ghostty (terminal)
    |
    | AppleScript: get working directory
    v
treehouse plugin (Node.js/TypeScript)
    |
    | Read .claude/tmp/task-tracker.json (sidecar)
    | Read git worktree list
    v
Stream Deck buttons
    |
    | Button press
    v
Open task-tracker.html or worktree-index.html in Chrome

Data flow

  1. Detect — poll for focused Ghostty terminal, get its cwd via AppleScript
  2. Discover — run git worktree list to enumerate all worktrees in the repo
  3. Read — check each worktree for .claude/tmp/task-tracker.json sidecar files
  4. Render — update Stream Deck button labels, colors, and icons from sidecar state
  5. Act — on button press, open the corresponding dashboard in Chrome

Sidecar format

treehouse reads the task-tracker.json sidecar written by the task-tracker Claude Code skill:

{
  "project": "feature-name",
  "branch": "feat/something",
  "state": "active",
  "current_focus": "Building the thing",
  "next_step": "Write tests",
  "commits_ahead": 3,
  "has_handoff": false
}

Tech stack

  • Runtime: Node.js 24+ (Stream Deck SDK requirement)
  • Language: TypeScript
  • SDK: @elgato/streamdeck
  • macOS integration: AppleScript (Ghostty terminal queries, window management)

Status

Early development. Not yet functional.

Future ideas

  • Split-screen action: open terminal on left + task tracker in Chrome on right
  • Auto-switch Stream Deck profile when Ghostty gains/loses focus
  • Button status colors matching the worktree-index theme (green/gray/orange)
  • Live commit-ahead count on each button
  • Integration with other terminals beyond Ghostty

License

MIT

About

Stream Deck plugin for git worktree dashboards. Detects Ghostty terminals, reads task-tracker sidecars, renders worktree status on physical buttons.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages