What it shows
- Every local worktree with its branch, commits ahead or behind the remote default branch, whether it would merge cleanly, and the files changed since the merge base.
- Open pull requests from GitHub. Opening one shows its files and its conversation, with review summaries, oldest first.
- Finished worktrees can be synced or deleted in a batch.
How it works
Each repository gets one worker thread that runs git tasks one at a time, because git locks the repository. Workers for different repositories run in parallel and send updates to the UI over a channel. Fetches, the git merge-tree conflict check and the GitHub request all run off the UI thread, so the table keeps repainting while git works.
git and gh run as child processes, not libraries, so the user's own git config, credential helper and gh login work as they are. Each child gets no stdin, so a prompt for a password fails fast instead of taking over the terminal.