Show HN: forestui – TUI for git worktrees with Claude Code + GitHub integration
I built forestui to manage the chaos of working on multiple features/branches simultaneously. It's a tmux-powered TUI that orchestrates your worktrees, editors, terminals, and Claude Code sessions across organized tmux windows (edit:repo:branch, claude:repo:branch, term:repo:branch). Switch contexts without losing state.
Why? Git worktrees let you have multiple branches checked out at once without stashing or juggling, but I find managing them with raw git commands painful.
What it does:
- Worktree management: Create, rename, archive, delete worktrees with single keypresses. Each worktree gets its own directory, so you can have feat/auth, fix/bug-123, and main all open in different editor windows simultaneously.
- GitHub integration: Lists your open issues directly in the TUI (using the gh cli). See an issue you want to work on? One keypress creates a worktree with an auto-generated branch name (42-fix-login-bug) and optionally pulls latest first.
- Deep Claude Code integration: Tracks sessions per-worktree, shows recent sessions with message counts and last activity, resume any session with one keypress. Also trigger Claude's YOLO mode for fast iteration in a wt using a single button press.
Tech: Python 3.14, Textual for the TUI (app is fully reactive and works with mouse well), Pydantic for models, libtmux for tmux integration. Strict mypy, async everywhere so the UI never blocks.
Install:
# One-liner (installs uv if needed)
curl -fsSL https://raw.githubusercontent.com/flipbit03/forestui/main/install.sh | bash
# If you already use uv
uv tool install forestui
Auto-updates on startup via uv. Requires tmux and, optionally, the gh cli.
Hope you enjoy!