
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-configAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3 |
|---|---|
| repo stars | ★ 20 |
| Last updated | February 25, 2026 |
| Repository | chrisbanes/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
I'm using the grove-config skill to set up Grove for this project.
Workflow
Step 1: Verify git repo
git rev-parse --show-toplevelIf the command fails, stop. Grove requires a git repository.
Step 2: Check if already initialized
test -f .grove/config.jsonIf .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 System | Marker File(s) | Warmup Command | Post-Clone Hook |
|---|---|---|---|
| Gradle | build.gradle.kts or build.gradle | ./gradlew assemble | Clean lock files, configuration-cache |
| Node.js | package.json | npm run build | Clean node_modules/.cache |
| Rust | Cargo.toml | cargo build | Clean target/debug/incremental |
| Go | go.mod | go build ./... | Minimal — Go handles relocatable caches well |
| Python | pyproject.toml or requirements.txt | poetry install or pip install -e . | Clean __pycache__ dirs |
| C/C++ | Makefile or CMakeLists.txt | make or cmake --build build | Project-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-cloneStep 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
| Command | Purpose |
|---|---|
grove config --warmup-command "<cmd>" | Initialize Grove |
grove update | Refresh 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 configfails with a permissions error — checkgroveis installed and the user has write access.- Warmup command exits non-zero during
grove config— fix unresolved dependencies before initializing. - Multiple
package.jsonandbuild.gradleat the root — polyglot monorepo; ask which is primary.
Integration
- Standalone — not called by other skills automatically
- Suggested by:
grove:using-grovewhen.grove/config.jsonis not found - Invoked via:
/grove-configslash command