grove

module
v1.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2026 License: MIT

README

Grove logo

Grove (gw)

grove /ɡrōv/ noun — a small group of trees growing together.

CI Release License Go Report Card

Why?

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.

Install

Homebrew

brew install nicksenap/grove/grove

Go install

go install github.com/nicksenap/grove/cmd/gw@latest

From source

git clone https://github.com/nicksenap/grove.git
cd grove && go build -o gw ./cmd/gw
mv gw /usr/local/bin/

Upgrading

brew update && brew upgrade grove

Then 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.nu

This enables gw go to change your working directory and auto-cds into new workspaces after gw create.

Usage

# 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 setup

All interactive menus support type-to-search filtering, arrow-key navigation (single-select), or arrow + tab (multi-select) with an (all) shortcut.

Documentation

  • 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

Requirements

No dependencies — single static binary. Requires git on PATH.

Directories

Path Synopsis
cmd
gw command
internal
lifecycle
Package lifecycle runs global lifecycle hooks defined in ~/.grove/config.toml [hooks].
Package lifecycle runs global lifecycle hooks defined in ~/.grove/config.toml [hooks].
logging
Package logging provides rotating file logging for Grove.
Package logging provides rotating file logging for Grove.
mcp
plugin
Package plugin implements external binary plugin discovery and execution.
Package plugin implements external binary plugin discovery and execution.
update
Package update provides non-blocking version checking against GitHub releases.
Package update provides non-blocking version checking against GitHub releases.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL