Treebeard is a macOS desktop app for managing Git worktrees across repositories.
- Manage worktrees across multiple repositories from one dashboard
- Search and filter worktrees by branch or path
- Drag and drop repository sections to reorder them
- Show Jira issue badges parsed from branch names
- Show GitHub PR status and CI check status per branch
- Show dirty status (
+/-lines, unpushed, unpulled commits) - Open worktrees in VS Code or Ghostty with one click
- Create and delete worktrees directly from the app
- Built-in auto-update support for packaged releases
- macOS
- Git
- GitHub CLI (
gh) for PR and CI badges - Jira CLI (
jira) for Jira badges - VS Code (
codecommand available in PATH) for the VS Code launch button - Ghostty for the terminal launch button
Treebeard works without optional CLIs, but related badges/actions are unavailable.
pnpm install
pnpm dev| Command | Description |
|---|---|
pnpm dev |
Run Treebeard in development mode |
pnpm build |
Build a packaged app via Electrobun |
pnpm test |
Run the Vitest suite once |
pnpm test:watch |
Run Vitest in watch mode |
pnpm test:coverage |
Run Vitest with V8 coverage output |
pnpm typecheck |
Run TypeScript type-checking (tsc --noEmit) |
pnpm start:packaged |
Open the packaged app from build/stable-macos-arm64/Treebeard.app |
pnpm screenshot |
Launch packaged app and capture treebeard-current.png |
pnpm screenshot auto-captures the Treebeard window when Accessibility permissions are available, and falls back to manual window selection when they are not.
Treebeard is built with Electrobun:
- Bun-powered main process (
src/bun/) - React renderer in the main view (
src/mainview/,src/components/,src/hooks/) - Typed RPC between renderer and main process (
src/shared/rpc-types.ts) - Shared app/domain types in
src/shared/types.ts
High-level structure:
src/
bun/ # main process + services (git, github, jira, launcher, config)
mainview/ # renderer entrypoint and view shell
components/ # UI components
hooks/ # renderer data hooks
shared/ # shared types and RPC schema
App settings are persisted at:
~/.config/treebeard
This file stores repository paths, polling interval, update settings, and collapsed repo state.
See CONTRIBUTING.md for development setup, coding guidelines, and pull request expectations.
