Skip to content

Releases: sindrej/treeswitch

v1.1.1

Choose a tag to compare

@sindrej sindrej released this 02 Jun 08:14
cfbfce1

Fixed

  • Reset to main now works for the common layout where main lives in the project's primary checkout (not a separate worktree). Previously every repo was skipped with "no worktree on its main branch". It now switches the primary checkout to the default branch and starts from there; if the switch can't happen (conflicting uncommitted changes, or the branch is checked out in another worktree) the repo is skipped with a clear notification — never forced.

Full changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@sindrej sindrej released this 01 Jun 11:56
92ad623

Visual setup — no config file to hand-edit

  • ➕ Add repo — native Finder folder picker + prompts for name, port, and start command; validates it's a git checkout and writes the config for you. Available on first run (a welcome screen replaces the old "No config found" dead-end) and from the footer.
  • ✎ Edit repo — the same prompts, pre-filled. The config key stays stable, so running state and the PR cache survive.
  • ✕ Remove repo — confirm, then drop it from the menu only. Your repo, its worktrees, and any running server are left untouched.

Compatibility & robustness

  • Menu-bar title falls back to a text glyph on non-SwiftBar hosts (xbar), so it's never a blank/unclickable entry.
  • Edit/Remove rewrite the config canonically and keep a config.zsh.bak.
  • Fixed the Remove confirmation dialog never appearing (AppleScript quote/newline escaping).

Full changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@sindrej sindrej released this 01 Jun 10:56
a373b36

First public release.

treeswitch is a macOS menu-bar tool (SwiftBar plugin) for switching your local dev servers between git worktrees.

Features

  • A submenu per configured repo listing its git worktrees, with a ✓ on the one that's running.
  • Click a worktree to kill that repo's server and relaunch it from the chosen worktree — headless, in its own process group (clean kill of the whole tree), with per-launch log rotation.
  • ↩ Reset to main — one click switches every repo back to its default-branch worktree.
  • GitHub PR numbers next to worktree branches (via gh, cached + background-refreshed; works with GitHub Enterprise).
  • Dirty / ahead-behind hints, failure notifications, Stop all, restart, open-in-browser.
  • install.sh / uninstall.sh and a non-destructive smoke-test.sh.

Requirements

macOS, SwiftBar, zsh, git; gh optional (for PR numbers).