Expand description
§Grove
A lightweight CLI for managing multiple git/jj repositories with per-project environment variables and centralized worktree management.
§Core Concepts
- Project Registry — Track multiple repositories under short names.
Register with
grove add, list withgrove list. - Environment Variables — Layered env vars stored outside the repo.
Project-level defaults, worktree-level overrides, and repo-level
defaults in
.grove/config.toml. Integrates with mise for automatic shell injection. - Worktree Management — Create and manage git worktrees (or jj workspaces) across all projects from a single command. Worktrees get their own database instances and env var overrides.
§Quick Start
# Register a project
grove add myapp /path/to/repo
# Set environment variables
grove env set myapp DATABASE_URL=postgres:///myapp_dev
# Create a worktree and start working
grove start myapp my-feature
# List all worktrees across projects
grove worktree list§Modules
Modules§
- config 🔒
- Configuration management for grove.
- error 🔒
- Error types for grove operations.
- vcs 🔒
- VCS backend abstraction for worktree and workspace management.
Structs§
- Cli 🔒
Enums§
Constants§
Functions§
- cleanup_
and_ 🔒remove_ worktree - cmd_add 🔒
- cmd_
env_ 🔒export - cmd_
env_ 🔒list - cmd_
env_ 🔒set - cmd_
env_ 🔒unset - cmd_
init_ 🔒mise - cmd_
list 🔒 - cmd_
remove 🔒 - cmd_
start 🔒 - cmd_
worktree_ 🔒list - cmd_
worktree_ 🔒new - cmd_
worktree_ 🔒rm - create_
database 🔒 - create_
worktree_ 🔒with_ hooks - drop_
database 🔒 - main 🔒
- mise_
data_ 🔒dir - open_
editor 🔒 - Opens
$EDITORpointed at the given path, if$EDITORis set. - parse_
vcs_ 🔒override - run 🔒
- run_
mise_ 🔒trust - run_
post_ 🔒create_ hooks - run_
setup_ 🔒command - validate_
worktree_ 🔒exists - Validate that a worktree actually exists for a project.
- validate_
worktree_ 🔒name - Validate worktree name contains only alphanumeric, hyphens, and underscores.