grove grove
grove is the CLI interface and package manager for the Grove ecosystem, providing a unified entry point for installing, managing, and orchestrating a suite of specialized tools.
Key Features
- Unified Command Interface: Acts as a command delegator. Running
grove cx statsfinds and executes thecxbinary with thestatsargument, providing a single entry point for all tools. - Tool Management: Manages the lifecycle of Grove tools through
install,update, andversioncommands. It resolves inter-tool dependencies, downloads official releases, and can build and install from the main branch. - Local Development Support: The
grove devcommand suite registers and switches between multiple local builds of any tool, allowing different versions from separate worktrees to be tested across the system. - Ecosystem Orchestration: Contains commands that operate across all projects in an ecosystem, including a parallel build system (
grove build), a command runner (grove run), and a dependency-aware, stateful release engine (grove release).
Ecosystem Integration
The grove CLI orchestrates other tools in the ecosystem by executing them as subprocesses.
grove release: Usesghto monitor CI/CD workflows andgrove llmto generate changelogs from commit history. It manages a dependency-aware, multi-stage release process across all ecosystem repositories.grove repo add: Usesghto create GitHub repositories and configure secrets for new projects.grove llm: Acts as a facade, delegating requests to the appropriate provider-specific tool (gemapi,grove-openai) based on the model name specified in the command or configuration.grove run: Executes arbitrary commands, such ascx stats, in each discovered workspace.grove setup git-hooks: Installs acommit-msghook that callsgrove internal validate-commit-msgto enforce conventional commit standards.
How It Works
The grove CLI functions as a command delegator. When a command like grove cx stats is run, grove searches for an executable named cx and executes it with the provided arguments.
The binary resolution follows a specific order of precedence:
- Workspace Override: It first checks for an override in the current workspace’s
.grove/overrides.jsonfile. This allows a specific project to point to a binary from another location, which is useful for testing integrations. - Workspace Binary (Opt-in): If
GROVE_DELEGATION_MODE=workspaceis configured,grovesearches for binaries within the current workspace directory. This mode prioritizes local builds within their development context. - Global Binary: If no override is found and workspace delegation is not active, it falls back to the globally managed binary at
~/.grove/bin/<tool>. This path is a symlink that points to one of two targets:- An active development link registered with
grove dev use. - An installed release version managed by
grove installorgrove version use.
- An active development link registered with
Installation
Install the Grove meta-CLI:
bash
# Install instructions from Grove Installation GuideVerify installation:
bash
grove versionSee the complete Grove Installation Guide for detailed setup instructions.
Test again