Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.