grove /ɡrōv/ noun — a small group of trees growing together.
Monorepos solve cross-project work, but not everyone has one. You've got separate repos, separate CI, separate deploys — and that's fine until you need to work across them.
One feature across three services means git worktree add three times, tracking three branches, jumping between three directories, cleaning up three worktrees when you're done. It's annoying.
Grove gives you the multi-repo worktree workflow that monorepos get for free. One command, one workspace, all repos on the same branch.
brew install nicksenap/grove/grovego install github.com/nicksenap/grove/cmd/gw@latestgit clone https://github.com/nicksenap/grove.git
cd grove && go build -o gw ./cmd/gw
mv gw /usr/local/bin/brew update && brew upgrade groveThen add shell integration:
Bash / Zsh — add to .zshrc or .bashrc:
eval "$(gw shell-init)"Nushell — generate and source the init file:
gw shell-init --shell nu | save -f ~/.config/nushell/grove.nu
# then add to config.nu:
source grove.nuThis enables gw go to change your working directory and auto-cds into new workspaces after gw create.
# Setup — register one or more directories containing your repos
gw init ~/dev ~/work/microservices
gw add-dir ~/other/repos
gw remove-dir ~/old/repos
gw explore # deep-scan for repos (2–3 levels)
# Workspaces
gw create my-feature -r svc-a,svc-b -b feat/login # create workspace
gw list # list workspaces (compact)
gw list -s # list with git status summary
gw ws show my-feature # show workspace details
gw status my-feature # git status across repos
gw sync my-feature # rebase all repos onto base branch
gw go my-feature # cd into workspace
gw run my-feature # run dev processes (TUI)
gw add-repo my-feature -r svc-c # add a repo to existing workspace
gw remove-repo my-feature -r svc-a # remove a repo from workspace
gw rename my-feature --to new-name # rename a workspace
gw doctor # diagnose workspace health issues
gw delete my-feature # clean up (worktrees + branches)
# Presets — save repo groups for quick workspace creation
gw preset add backend -r svc-auth,svc-api,svc-worker
gw preset list # list presets (compact)
gw preset show backend # show preset details
gw preset remove backend
gw create my-feature -p backend # use a preset instead of -r
# Plugins — extend gw with external commands
gw plugin install nicksenap/gw-claude # Claude Code integration
gw plugin install nicksenap/gw-zellij # Zellij terminal integration
gw plugin install nicksenap/gw-dash # agent monitoring dashboard
gw plugin list # list installed plugins
gw plugin upgrade # upgrade all plugins
gw plugin remove dash # uninstall a plugin
gw wizard # interactive plugin + hook setupAll interactive menus support type-to-search filtering, arrow-key navigation (single-select), or arrow + tab (multi-select) with an (all) shortcut.
- Hooks — global hooks (terminal integration) & per-repo hooks (
.grove.toml,gw run) - Plugins — extend gw with external commands
- AI coding tools — Claude Code workflows, MCP server
No dependencies — single static binary. Requires git on PATH.
