Worktrees
A local dashboard of every open git worktree. One board for all your projects — branches, unique commits, pull requests, and dirty files.
The board
Every project is a column. Under it: the git worktrees that are actually open — extra checkouts of that repo, each on its own branch.
The main folder you cloned is not counted as a worktree. If a project has none, it stays off the board. You can still see it in settings.
Each project has its own pastel. Columns are 340px wide and fill leftover space; the last column of the page is always left empty.
Branches
Each worktree is listed by its branch name, in the same rhythm as a commit row.
If that branch has an open pull request on GitHub, the name is a link. A draft PR is underlined with dashes.
Uncommitted work shows as “3 changed files”, plus when you last touched them. The date on the right is when the worktree was created.
Commits
You only see commits that are not already on the main branch. Shared history does not repeat under every tree. Merge commits stay off the board.
+12 is lines added, in the project color. −4 is lines removed, in grey. Zero counts are omitted.
If the branch name contains an ID like Mf42tC-3, only commits that mention that ID are listed.
Focus
Click a project name to hide everything else. The other columns stay in place so nothing jumps.
Click the “2 worktrees” line to look at one tree at a time.
Click in the empty space to the left or right of the column to move to the previous or next project. Press Escape to walk back one step.
History
Click the project name a second time to read the full git log — hash, subject, diff, date — same as the board, just longer.
Keep scrolling to load more, a hundred commits at a time. Click the branch count to switch which branch you are reading.
Click the name again to return to the full board.
Projects
Click the Worktrees title (top left) to open settings.
Click Projects to add a folder with the macOS picker. Click a project to remove it — it asks Yes / No, and never deletes the folder on disk.
The list lives in projects.json. Git is never rewritten.
Atmosphere
Click Background to cycle the picture: flower, Night bloom, Black pine, Daylight.
Choose Fine dither, Posterized, or None. Check Upside down to flip the picture. Daylight is the light theme.
The picture is remembered in this browser.
Live
The board reloads from git every ten seconds. A failed poll turns the title red; the next tick recovers on its own.
Pull requests come from the gh CLI, cached two minutes per repo. Pankado remotes use JAS-Pankado; everything else uses Jo4712.
Local only. Run node server.js, then open http://localhost:4777.