Server and CLI for managing Git repositories and terminal sessions from your phone. Run Claude Code sessions on your dev machine, access them from anywhere.
brew tap henrypldev/grove
brew install grovegit clone https://github.com/henrypldev/grove.git
cd grove
bun installgrove start # Start server (interactive)
grove start -b # Start in background
grove start --port 3001 # Custom port
grove stop # Stop background servergrove run claude # Run Claude Code in a tmux+ttyd session accessible over TailscaleThis launches the command in the current directory, sets up a secure terminal session, and prints the HTTPS URL you can open from your phone.
-b, --background Start server in background
-h, --help Show help message
--port <number> Set server port (default: 3000)
- grove CLI starts the server and sets up a Tailscale Funnel for external access
- grove server exposes a REST API for managing repos, worktrees, and terminal sessions
- Terminal sessions are tmux sessions running Claude Code, served via ttyd over HTTPS
- Grove mobile app (separate repo) connects to the server to create and manage sessions
| Method | Endpoint | Description |
|---|---|---|
| GET | /repos |
List registered repositories |
| POST | /repos |
Add a repository |
| DELETE | /repos/:id |
Remove a repository |
| GET | /sessions |
List active terminal sessions |
| POST | /sessions |
Create a new session |
| DELETE | /sessions/:id |
Kill a session |
| GET | /worktrees/:repoId |
List worktrees for a repo |
| POST | /worktrees |
Create a new worktree |
| DELETE | /worktrees |
Delete a worktree |
| GET | /events |
SSE stream for real-time updates |
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.
Config is stored in ~/.config/grove/:
config.json- Registered repositoriessessions.json- Active session state
bun run dev # Start server with watch mode
bun run cli # Run CLI in dev modeMIT