ivar vs git worktree scripts (gwq, gtr)
gwq and gtr manage git worktrees per repository; ivar coordinates real worktrees across repos on one branch. As of 2026-10-06.
gwq and gtr make worktrees fast inside one repository. ivar uses the same git worktrees, then coordinates them across repositories: one feature branch, one view directory, and writes guarded to the repos you promote (kernel-enforced on Linux; see Limitations).
At a glance
Claims about gwq and gtr are as of 2026-10-06 and come from the sources at the bottom.
| gwq | gtr | ivar | |
|---|---|---|---|
| What it manages | worktrees, like ghq; -g covers worktrees of all repos | worktrees, each repo independent ("Repository-scoped") | a feature across repos |
| Language, license | Go, Apache-2.0 | Bash, Apache-2.0 | Rust, Apache-2.0 |
| Agent workflow | parallel agents, tmux, per-repo setup | PR-to-worktree with git gtr pr 123 (needs gh) | session per feature in Claude Code, OpenCode or OMP |
| Common branch across repos | not documented | not documented | the same branch name in every promoted repo |
| Pull request creation | not documented | git gtr pr starts from an existing PR; it does not create one | one per promoted repo, at deliver, via gh, on GitHub |
What a worktree manager does well
gwq lists, opens, removes and shows the status of worktrees across all your repos with -g, and its README covers parallel agents, tmux and setup per repo. gtr keeps each repo's worktrees independent, creates a worktree from an existing PR with git gtr pr 123, and cleans up worktrees of closed PRs with git gtr clean.
What changes with three repos
gwq's -g lists and navigates worktrees across repos and has per-repo setup. gtr is repository-scoped. A shared branch across repos and pull request creation are not documented for either. ivar makes those a feature.
What ivar adds on top
- A versioned hall:
ivar syncbrings a fresh checkout in line withivar.json. - A feature: one branch name across the repos you promote.
- Promote: repos you have not promoted are guarded (kernel-enforced on Linux; see Limitations).
- A setup script per repo, harness config, and a plan with approval gates.
- Deliver: one pull request per repo, via
gh, on GitHub.
When a script is enough
One repo, one developer, no agent. A worktree manager is lighter than a hall and does that job well.
Migrating
ivar does not hide the worktrees. They are real git worktrees, and git worktree list keeps working.
Using them together
Using them together is not documented for gwq or gtr.
FAQ
Does gwq or gtr create a pull request?
Not documented for gwq. gtr creates a worktree from an existing PR and does not create the PR.
Does ivar replace git worktree?
No. It creates ordinary git worktrees and coordinates them across repos.
Are the worktrees in ivar real?
Yes. Each repo is a bare clone with one worktree per branch under .ivar/repos/<repo>/.
Back to all comparisons, or see ivar with Claude Code for a harness walkthrough.
Sources
- gwq, v0.1.2, accessed 2026-10-06.
- git-worktree-runner (gtr), v2.11.1, accessed 2026-10-06.