Skip to content
grove
Esc
↑↓navigate↵open⌘Jpreview
On this page

CLI

Every grove command in one place, the flags they share, the exit codes they promise, and where each one is documented in full.

grove init                       write a grove.toml for this project
grove install                    set this machine up: authority, trust, port 443
grove uninstall                  stop grove and untrust its root
grove exec [-s <name>] -- <cmd>  run a command in this context
grove env [--format shell|json]  print that environment instead of running
grove ls [--all]                 this context's routes, or every lease on the machine
grove hold                       take this context's detached ports
grove release [name...]          let them go
grove forget [context...]        drop the records of worktrees that are gone
grove context [--json]           how this directory resolves
grove doctor                     DNS, trust, the daemon, and port 443
grove start | stop | restart     the daemon, which is one process for the machine

grove --version prints the version, and grove completion <shell> generates a completion script.

Flags most commands share

Flag Meaning
--socket The control socket to reach the daemon on. Defaults to GROVE_SOCKET or the platform path.
--state-dir The directory holding the CA. Defaults to GROVE_STATE_DIR or the platform path.
-y, --yes On install and uninstall: run the privileged step without asking.
--force On stop and uninstall: go ahead while a running command is served. On init: overwrite an existing file.

Exit codes

Exit codes are contracts.

Code Meaning
0 Done. For doctor, every check passed or warned.
1 Grove failed, and said why on stderr. For doctor, a check failed.
2 A bad invocation: an unknown flag, the wrong arguments, or a value a flag doesn’t take.
anything else From exec, the child’s own exit code. A child killed by a signal exits the way a shell reports it.

Errors name the fix

Messages are written for someone who has never heard of grove, and they spell the command in the form you can actually run. Inside a package that installed grove from npm, that’s pnpm grove doctor or npx grove doctor rather than grove doctor.

Last updated on September 22, 2026

Was this page helpful?