Native user-hosted persistent sessions, drivable from desktop + mobile without the tmux/Remote-Control ceremony
Feedback: Claude Code needs native user-hosted persistent sessions (the Codex experience)
From: a paying Claude Max subscriber who wants to stay on Claude, not switch.
Date: 2026-07-21
Platform: macOS (Apple Silicon Mac mini as the host; MacBook + iOS app as clients)
The one-line ask
Let me start a Claude Code session scoped to a repo/project that runs on my own machine, and drive
it seamlessly from both the desktop app and the mobile app, with instant sync and no manual
ceremony — the way OpenAI Codex reportedly already does.
What the competitor does out of the box (my direct experience)
With Codex I initiate a session inside a repository/project, it spawns on my Mac mini, and I drive it
interchangeably from my laptop and my phone. Both stay instantly in sync. There is no setup — no
terminal multiplexer, no screen-sharing, no re-authentication dance. It just works. (This is my direct
user experience with Codex, offered as the benchmark; I'm not claiming to know its internals.)
What Claude Code currently requires to achieve the same thing
To get a session that (a) survives my laptop closing and (b) is reachable from laptop + phone, I had to
build and document a multi-step workaround. The ceremony:
- The desktop app's SSH-remote mode makes the laptop the owner of the process that runs on the
mini — close the lid and the session dies with the SSH connection. So SSH-remote is unusable for
a persist-and-roam workflow.
- Instead: run
claude --remote-controlinside tmux on the mini so the mini owns the session. - But the tmux server must be bootstrapped from a GUI login session (Warp reached via Screen
Sharing). A session spawned from a plain SSH shell shows "Not logged in" and silently never
registers — because macOS Keychain access depends on the security context the process is born in.
This failure is completely silent: the process is alive, tmux looks healthy, nothing appears in
the apps.
- The folder-trust prompt hangs a detached session forever with nobody to answer it.
- After all that, it works — but see the failure modes below, which recur in daily use.
I wrote a ~400-line runbook to make this repeatable. A first-class product should not need one.
Concrete defects and gaps found in real use (each reproducible)
Bugs / silent failures:
- Remote Control connections drop silently. The session keeps running on the mini, but becomes
unreachable. The app shows either "not connected via remote control" or a frozen last state where
typed input vanishes — I hit retry six times against a dead channel; none of it reached the mini
(verified: the session's transcript sat unwritten for 30+ minutes). There is no error surfaced to
the user and no self-heal: /remote-control fails to reconnect, and /login is refused over
Remote Control. The only fix is to kill and resume the session.
- The desktop app and mobile app disagree on connection state. The desktop showed "not connected"
for sessions the phone (and the machine itself) showed as connected. Users can't trust the indicator.
Design gaps vs. the Codex experience:
- No native user-hosted session. Claude Code on web/mobile runs only in Anthropic's cloud; there is
no supported way to point it at my own machine. Remote Control + tmux is a community-grade bridge,
not a product feature.
- Login expiry is a remote lockout. The login is machine-wide, expires (~daily banner), and can
only be renewed from a non-Remote-Control terminal — /login is refused over Remote Control. A
user who is fully remote (laptop shut, driving from phone) can be locked out with no way to renew
until they physically reach the machine / screen-share in. Please allow re-auth over Remote Control,
or a long-lived token path that doesn't strand remote users.
- No cross-surface session lifecycle. No native way to list/spawn/kill/resume user-hosted sessions
from the apps; naming is fragmented across three layers (tmux name vs. app display name vs. stored
title) that routinely disagree.
- A reboot kills everything and forces the full GUI bootstrap again (Screen Sharing).
- Resource cost is high and unmanaged. Each idle session holds ~1.2 GB RAM, ~52% of it MCP
servers, spawned per-session with no built-in scoping (I had to use --strict-mcp-config manually)
and no lifecycle guidance — a handful of sessions can exhaust a 24 GB machine.
- Ephemeral working state is silently purged. Session scratchpad files under
/private/tmpare
removed by macOS after ~3 days of no access, without a reboot — quietly destroying verification
baselines and intermediate artifacts for any session idle a few days.
What "good" looks like
- Initiate a project-scoped Claude Code session that runs on my own machine, from any surface.
- It survives laptop close, network blips, and ideally reboots (auto-respawn).
- Reachable and instantly synced across desktop + mobile, with a trustworthy connection indicator.
- Re-authentication possible from any surface (no physical-access requirement).
- Native session list / lifecycle across surfaces; one coherent name per session.
- Sensible default resource footprint with per-session capability scoping.
Why I'm sending this rather than switching
I'm a paying customer and I want to keep paying Anthropic specifically — I value the principled,
safety-first approach and would rather my money go here than to competitors. That's exactly why the
feature gap matters: the product is lagging a competitor on a workflow I use daily, and it's costing
real friction. Please close the gap. I'll happily keep paying a premium for it.