Grove CLI
Grove opens a Zellij session with one tab per git worktree, each with LazyGit, a shell and an AI agent.
- 81 ★ on the repository
- Last commit
Extended access
Why this level
- The installer downloads and runs a script, installs packages through Homebrew and edits the shell profile.
- Agents in the panes work with full access to their own worktree.
Install
- Works in
Manual install
bash <(curl -fsSL https://raw.githubusercontent.com/thisguymartin/grove/main/install/install.sh)The recommended README installer for bash and zsh: it asks which agent to install. Read the script before running it.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The installer downloads and runs a script, installs packages through Homebrew and edits the shell profile.
- Agents in the panes work with full access to their own worktree.
This is third-party code. Review the repository files before installing.
What it does
Grove starts a Zellij session for a repository. Each branch sits in its own git worktree and gets a tab with three panes: LazyGit, a working shell and the chosen agent (`claude`, `gemini`, `opencode` or `codex`). The first tab shows a status overview with the branches that need attention first. Running `grove` again attaches to the live session without restarting agents or shells. Branches are created with `grove new` and `grove add`, removed with `grove rm` and `grove prune`, and tabs switch with `Alt+Left` and `Alt+Right`.
Who it is for. Developers who run several branches in parallel with one agent each, without constant stashing and switching.
Good fit when
- A feature and an urgent bugfix are in progress at once, and each branch needs its own agent.
- An agent session should stay in the background and be resumed with `grove`.
- You want an overview of which branches have open pull requests and failing checks.
- Stale branches should be removed together with their worktrees via `grove prune`.
Not a fit when
- Work happens in one branch and git worktrees are not needed.
- The workspace should live in a graphical environment, not a terminal.
- Homebrew cannot be used: the README installer relies on `brew`.
Example request
Create a worktree for the fix-login branch, run `grove` and open the agent in the new tab.Limitations
The README installer uses Homebrew for dependencies, and Zellij asks permission to load the bundled `zjstatus` plugin. Grove does not replace agents: one of the CLIs is required and is installed during setup or separately. On fish, installation goes through a pipe and needs the `--agent` flag. The repository states no license, so clarify the terms of use with the author. The project is a set of shell scripts for now, and there are no ready packages for other package managers.
How to disable. Delete the Grove clone (`~/.local/share/grove` by default) and the `source` line for `git-worktree-aliases.sh` from `~/.zshrc` or `~/.bashrc`. The `~/.config/grove/config` file can be deleted too.
FAQ
Which agents does Grove support?
Codex, OpenCode, Claude Code and Gemini CLI. The installer installs only the one you pick.
What does `grove up --fresh` do?
It replaces the repository session with a new one. Plain `grove` attaches to the existing session and restarts nothing.
How do I get the stock Zellij bars back?
Launch `GROVE_ZELLIJ_BAR=stock grove` to keep the native Zellij bars instead of the Grove bar.
How do I clean up finished branches?
`grove rm` removes a branch and its worktree, and `grove prune` clears finished branches in bulk.
What does the first tab show?
A live status table where branches that need attention come first. For typed git, checks and agent status you can set `GROVE_STATUS_BIN`.
Discussion
No questions or reviews yet.
Related
CLI toolsA git worktree CLI built for running Claude Code and Codex in parallel: the wt command, a plugin, and automation hooks
A Git client with a built-in MCP server for Windows, macOS and Linux: an agent reads repos, PRs, issues and CI logs, read-only
A Zellij sidebar showing the status of Claude Code, Codex and other agents per tab: working, waiting, done or failed
gitai is an open source-control server for hundreds of agents: landing by compare-and-swap, server-side history and the graft CLI.
A skill that splits changes into logical Conventional Commits and safely handles branches, pushes and pull requests.
A local gate in front of git push: the branch goes through review, tests, docs and lint in a separate worktree before it reaches the remote with a PR
Comparison with similar tools
Cards that share the main search query, and how they differ.
README in short
The README explains the tab layout, gives a one-line install and a manual path. It then lists commands, settings and a way to test the Zellij layout.