grove

module
v1.1.11 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2026 License: MIT

README

Grove logo

Grove (gw)

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

CI Release License

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

# Register your repo directories (one-time)
gw init ~/dev ~/work/microservices

# Create a workspace: name the branch, pull repos from a preset or a list
gw create -b feat/login -p backend        # repos from a saved preset
gw create -b feat/login -r svc-a,svc-b    # …or an ad-hoc repo list

# Work across the whole workspace
gw go my-feature       # cd into the workspace
gw status my-feature   # git status across every repo
gw sync my-feature     # rebase all repos onto their base branch
gw run my-feature      # run dev processes (TUI)

# Clean up when done
gw delete my-feature   # removes worktrees + branches

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

Presets, plugins, hooks, and the full command reference are covered in Workflows and Operations.

Documentation

Full documentation lives in the OpenWiki — start with the quickstart, then dive into the area you need:

  • Quickstart — install, first commands, key concepts, and a source map
  • Architecture — layered design, data model, concurrency, and key decisions
  • Workflows — how each command maps to code (create, sync, run, delete, presets…)
  • Operations — configuration, hooks, state, troubleshooting, and release process
  • Integrations — plugins, the MCP server, and workspace source provenance

Focused topic guides

  • 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.
streamio
Package streamio provides shared io helpers for streaming subprocess output live to the terminal with a per-line prefix, so concurrent or long-running commands (hooks, dev servers) remain attributable and never look hung.
Package streamio provides shared io helpers for streaming subprocess output live to the terminal with a per-line prefix, so concurrent or long-running commands (hooks, dev servers) remain attributable and never look hung.
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