Introduction
gwt (GitWorkTower) is a CLI tool that turns git worktrees into a complete development environment. It manages terminal sessions, a development reverse proxy, AI agent integrations, and a full merge pipeline — all from one command.
Why gwt?
Git worktrees let you work on multiple branches simultaneously without stashing or switching. But managing worktrees by hand gets tedious: creating them, setting up terminal layouts, remembering ports, cleaning up after merge.
gwt automates all of that. When you attach a repository, it creates a Zellij session with tabs for each worktree — each tab has a chat agent, a gateway dashboard, and a shell. When you’re done with a branch, one command verifies, rebases, squashes, merges, and cleans up.
How it works
gwt sits on top of three systems:
- Git worktrees — isolated working directories for each branch, stored in
.worktrees/ - Zellij — a terminal multiplexer that provides the tabbed session layout
- A reverse proxy (gateway) — routes dev apps via subdomains (
app.localhost:54846)
You configure your project once with gwt init, then gwt attach sets everything up. From there, gwt switch, gwt create, and gwt merge handle the branch lifecycle.
Optional: Diffity Code Review
If Node.js is available, gwt integrates with Diffity for browser-based code review with AI-powered comment handling. This is fully optional — gwt works without it.