Skip to content

Run Claude Code sessions on your dev machine, access them from anywhere.

Notifications You must be signed in to change notification settings

henrypldev/grove

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grove

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.

Requirements

Installation

Homebrew (recommended)

brew tap henrypldev/grove
brew install grove

From source

git clone https://github.com/henrypldev/grove.git
cd grove
bun install

Usage

Start the server

grove start              # Start server (interactive)
grove start -b           # Start in background
grove start --port 3001  # Custom port
grove stop               # Stop background server

Run a command with mobile access

grove run claude     # Run Claude Code in a tmux+ttyd session accessible over Tailscale

This launches the command in the current directory, sets up a secure terminal session, and prints the HTTPS URL you can open from your phone.

CLI Options

-b, --background    Start server in background
-h, --help          Show help message
--port <number>     Set server port (default: 3000)

How it works

  1. grove CLI starts the server and sets up a Tailscale Funnel for external access
  2. grove server exposes a REST API for managing repos, worktrees, and terminal sessions
  3. Terminal sessions are tmux sessions running Claude Code, served via ttyd over HTTPS
  4. Grove mobile app (separate repo) connects to the server to create and manage sessions

API Endpoints

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

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.

Configuration

Config is stored in ~/.config/grove/:

  • config.json - Registered repositories
  • sessions.json - Active session state

Development

bun run dev      # Start server with watch mode
bun run cli      # Run CLI in dev mode

License

MIT

About

Run Claude Code sessions on your dev machine, access them from anywhere.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •