[FEATURE] Remote Control: one server per machine, pick the project and worktree per session (like Desktop SSH, for always-on hosts)

Status Open
Reported on v2.1.292
Maintainer reply None cached
Activity 0 comments · opened Oct 7, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Note: this extends #88404 (project picker for Remote Control), which is labeled platform:windows only. The limitation is cross-platform; this issue covers the Linux / headless-server case and the per-session worktree choice that #88404 doesn't mention.

Problem Statement

A claude remote-control server is bound to the directory it was launched in, and its spawn mode (same-dir / worktree / session) is fixed for the whole server at launch. From claude.ai/code or the mobile app you can't pick which project a new session runs in, nor whether it gets its own worktree.

This matters most on an always-on remote machine. On my headless Linux dev VPS, Remote Control is the only way to reach Claude Code when my laptop is off: Desktop SSH sessions depend on the laptop being on. So to work on several projects I run one always-on server per project, as a systemd user template claude-remote@<project>.service. That's N processes and N entries in the environment picker, plus another server per project if I also want worktree mode.

Proposed Solution

Let one Remote Control server per machine act as a host, the way a Desktop SSH connection does, without depending on the client machine:

  • Project picker: when starting a new session from claude.ai/code or mobile, choose its working directory from the projects Claude Code already knows (~/.claude.json), or browse under a configured root (e.g. claude remote-control --root ~/Projects). Trust rules still apply per directory.
  • Per-session worktree choice: choose at session creation whether the session runs in the folder directly or in a fresh git worktree, instead of a server-wide --spawn flag.

Alternative Solutions

  • One always-on server per project (what I do now): works, but wastes processes and clutters the picker, and needs a second server per project for worktree mode.
  • One server on a parent directory (~/Projects) and asking Claude to cd into a subfolder: sessions are still rooted, labeled and permissioned at the parent, /cd doesn't work in Remote Control sessions (#82670), and there's no worktree choice.
  • Desktop app over SSH: has exactly the right UX (pick folder, choose worktree), but only works while the laptop running the app is on.

Priority

High - Significant impact on productivity

Feature Category

CLI commands and flags

Use Case Example

  1. A headless Ubuntu 24.04 VPS runs a single claude remote-control --root ~/Projects systemd user service, always on.
  2. Laptop is off. From the Claude mobile app, I open the VPS environment, tap "New session", choose high-intent, and toggle "own worktree".
  3. The session starts in a new worktree of ~/Projects/high-intent. Later, from a browser, I start another session in ~/Projects/codex-monteur directly in the folder, on the same server.

Additional Context

  • Platform: Linux (Ubuntu 24.04, headless, systemd user service with linger), Claude Code 2.1.292. Not Windows-specific: applies on every platform.
  • Prior art: Codex's remote mode exposes a project list on a single remote host and starts sessions in the chosen project.
  • Related: #88404 (project registry picker, Windows-labeled), #96269 (--name ignored, so multiple servers are hard to tell apart in the picker, which makes the one-server-per-project workaround worse), #82670 (/cd doesn't work in Remote Control sessions).

View original on GitHub ↗