Grove

Configuration

Grove configuration files and options.

Grove stores its configuration in ~/.config/grove/.

Files

FileDescription
cli.jsonCLI configuration (port, etc.)
config.jsonRegistered repositories
sessions.jsonActive session state
certs/Tailscale TLS certificates for ttyd
pidPID file for the background server process

CLI Configuration

The CLI configuration file at ~/.config/grove/cli.json stores persistent settings.

{
  "port": 3000
}

Options

KeyTypeDefaultDescription
portnumber3000Server port

The port can also be set per-invocation with the --port flag, which takes precedence and updates the saved config.

Sessions

Active terminal sessions are tracked in ~/.config/grove/sessions.json. This file is managed automatically — sessions are added when created and removed when cleaned up.

Each session entry contains:

  • Session ID
  • Repository name and branch
  • Working directory
  • Terminal URL and port
  • ttyd process PID
  • The command being run (for grove run sessions)

Environment Files

When creating a new worktree, Grove automatically copies untracked .env* files (e.g. .env.local, .env.development.local) from the repository root into the new worktree. This ensures new worktrees have the same environment configuration as the main working directory without manual setup.

Only files that are not tracked by Git are copied, so checked-in .env files that are already part of the worktree checkout are not duplicated.

TLS Certificates

Grove uses Tailscale certificates for HTTPS terminal access. Certificates are generated automatically using tailscale cert and stored in ~/.config/grove/certs/. They are reused across sessions for the same Tailscale hostname.

On this page