grove grove

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 stats finds and executes the cx binary with the stats argument, providing a single entry point for all tools.
  • Tool Management: Manages the lifecycle of Grove tools through install, update, and version commands. It resolves inter-tool dependencies, downloads official releases, and can build and install from the main branch.
  • Local Development Support: The grove dev command 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: Uses gh to monitor CI/CD workflows and grove llm to generate changelogs from commit history. It manages a dependency-aware, multi-stage release process across all ecosystem repositories.
  • grove repo add: Uses gh to 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 as cx stats, in each discovered workspace.
  • grove setup git-hooks: Installs a commit-msg hook that calls grove internal validate-commit-msg to 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:

  1. Workspace Override: It first checks for an override in the current workspace’s .grove/overrides.json file. This allows a specific project to point to a binary from another location, which is useful for testing integrations.
  2. Workspace Binary (Opt-in): If GROVE_DELEGATION_MODE=workspace is configured, grove searches for binaries within the current workspace directory. This mode prioritizes local builds within their development context.
  3. 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 install or grove version use.

Installation

Install the Grove meta-CLI:

bash
# Install instructions from Grove Installation Guide

Verify installation:

bash
grove version

See the complete Grove Installation Guide for detailed setup instructions.

Test again