Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
chrisbanes avatar

Grove Config

  • 3 installs
  • 20 repo stars
  • Updated February 25, 2026
  • chrisbanes/grove

Sets up Grove in a git repo by detecting the build system, writing .grove/config.json, and adding a warmup command and post-clone hook.

About

Configures Grove for a repository by verifying git, detecting the build system, and writing config plus a post-clone hook. A developer uses it the first time they want Grove workspaces in a project that lacks .grove/config.json.

  • Detects Gradle, Node, Rust, Go, Python, or C/C++ and picks a warmup command
  • Writes and chmods an executable .grove/hooks/post-clone hook

Grove Config by the numbers

  • 3 all-time installs (skills.sh)
  • Ranked #1,120 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
  • Data as of Jul 31, 2026 (Skillselion catalog sync)
npx skills add https://github.com/chrisbanes/grove --skill grove-config

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3
repo stars20
Last updatedFebruary 25, 2026
Repositorychrisbanes/grove

What it does

Sets up Grove in a git repo by detecting the build system, writing .grove/config.json, and adding a warmup command and post-clone hook.

Files

SKILL.mdMarkdownGitHub ↗

I'm using the grove-config skill to set up Grove for this project.

Workflow

Step 1: Verify git repo

git rev-parse --show-toplevel

If the command fails, stop. Grove requires a git repository.

Step 2: Check if already initialized

test -f .grove/config.json

If .grove/config.json exists, report that Grove is already initialized and ask the user whether they want to re-initialize. Stop unless they confirm.

Step 3: Detect build system

Scan for marker files in the following priority order. Use the first match. If multiple top-level markers exist, ask the user which is the primary build system.

Build SystemMarker File(s)Warmup CommandPost-Clone Hook
Gradlebuild.gradle.kts or build.gradle./gradlew assembleClean lock files, configuration-cache
Node.jspackage.jsonnpm run buildClean node_modules/.cache
RustCargo.tomlcargo buildClean target/debug/incremental
Gogo.modgo build ./...Minimal — Go handles relocatable caches well
Pythonpyproject.toml or requirements.txtpoetry install or pip install -e .Clean __pycache__ dirs
C/C++Makefile or CMakeLists.txtmake or cmake --build buildProject-specific

If no marker is found, ask the user to provide a warmup command.

Step 4: Present proposed config for confirmation

Show the user:

  • Warmup command
  • Workspace directory (default: system temp under a grove subdirectory)
  • Post-clone hook content

Ask for confirmation before proceeding.

Step 5: Run grove config

grove config --warmup-command "<cmd>"

Step 6: Write post-clone hook

Write the post-clone hook script to .grove/hooks/post-clone and make it executable:

chmod +x .grove/hooks/post-clone

Step 7: Suggest git add

Tell the user to commit the Grove configuration:

git add .grove/config.json .grove/hooks/
git commit -m "chore: add Grove configuration"

Quick Reference

CommandPurpose
grove config --warmup-command "<cmd>"Initialize Grove
grove updateRefresh golden copy build state

Common Mistakes

  • Running `grove config` outside a git repo — Grove requires git; always verify first.
  • Skipping the post-clone hook — without it, workspaces inherit stale lock files or cache artifacts.
  • Not committing `.grove/` — commit so collaborators and CI get the same warmup behavior.

Red Flags

  • grove config fails with a permissions error — check grove is installed and the user has write access.
  • Warmup command exits non-zero during grove config — fix unresolved dependencies before initializing.
  • Multiple package.json and build.gradle at the root — polyglot monorepo; ask which is primary.

Integration

  • Standalone — not called by other skills automatically
  • Suggested by: grove:using-grove when .grove/config.json is not found
  • Invoked via: /grove-config slash command

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.