majorwiki/02-selfhosting/services/claude-code-remote-control.md
MajorLinux eef1f32172 Document iOS app 1.260618.0 Remote Control crash as known issue
Mobile build 1.260618.0 hard-crashes on opening a Remote Control
session (iPad Pro + iPhone 16 Pro). App-side bug; browser works,
reinstall does not help. Links upstream issues #70144/#70165 and
crash-log export steps.
2026-06-23 10:04:38 -04:00

6.1 KiB

title domain category tags status created updated
Claude Code Remote Control — Mobile Access to a Persistent Host Session selfhosting services
claude-code
anthropic
remote-control
tmux
tailscale
mobile
workflow
published 2026-04-20 2026-06-23

Claude Code Remote Control

Anthropic released Remote Control for Claude Code in February 2026. It bridges a locally-running Claude Code CLI process with Claude Mobile (iOS/Android) and claude.ai/code in any browser. The local session stays running on the host with full filesystem, environment, and MCP access; the phone or browser is just a thin front-end that attaches to it.

This article covers the setup pattern used at MajorsHouse — running Remote Control on an always-on host inside a tmux session over Tailscale SSH so the mobile connection survives client disconnects.

How Remote Control Works

  • All traffic flows through Anthropic's API over outbound HTTPS. No inbound ports on the host, no port forwarding, no reverse proxy.
  • The mobile/web client attaches to the existing session — same transcript, same context, same MCP servers, same working directory.
  • Terminal and mobile can be active at the same time; input is interchangeable and both views stay in sync.
  • Only one remote client per session is supported.
  • The session ends when the local claude process stops.
  • Must be started with claude remote-control from the beginning — a plain claude session already in flight cannot be retrofitted.
  • Requires Claude Pro or Max.

Why MajorRig Hosts the Session

The vault is Obsidian-synced across MajorAir, MajorMac, and MajorRig. Native Linux servers like majorlab or majorhome would be architecturally cleaner (true always-on, no Windows Update reboots) but have no vault sync — adding them would require another Obsidian Sync device slot, or an SMB/NFS mount, or git-only access to the MajorWiki subset. Until that's solved, MajorRig is the de facto primary.

WSL2's /mnt/c I/O is slow for heavy workloads (node_modules, fsync-heavy DBs) but not a practical issue for markdown reads/writes and FTS5 search across the vault.

Setup on MajorRig

1. Enable Remote Control by default

Inside any Claude Code session:

/config

Toggle "Enable Remote Control for all sessions". This means future claude invocations automatically expose a Remote Control endpoint — no need to remember the subcommand.

2. Install the mobile app

Inside Claude Code:

/mobile

A QR code appears for iOS and Android download links.

3. Start a persistent session via Tailscale SSH + tmux

From any fleet machine:

ssh majorrig
tmux new -s claude
claude remote-control

Detach with Ctrl+b d. The claude process survives SSH disconnect because it's owned by the tmux server, not the SSH session.

To reattach from the host later:

ssh majorrig
tmux attach -t claude

4. Connect from the phone

Open Claude Mobile → select the session from the list, or scan the QR code the host prints on start. The app connects over outbound HTTPS through Anthropic; no Tailscale required on the phone.

Alternatives

  • SSH + tmux directly from a mobile terminal app (Blink Shell, Termius) — works without Pro/Max, survives client drops, full shell access. UX on a phone screen is rough; no native paste/share affordances.
  • JessyTsui/Claude-Code-Remote (community) — routes Claude Code task output via email/Discord/Telegram. Not interactive; useful for notifications.

Constraints and Gotchas

  • Process death kills the session. If the claude process exits (crash, tmux kill-session, host reboot), the mobile connection drops and the transcript is lost. For true resilience, pair with a systemd user service that auto-restarts.
  • One remote per session. Phone and laptop browser cannot both attach at the same time.
  • Windows Update reboots on WSL2. MajorRig's uptime is gated by the Windows host. A scheduled-restart-free maintenance window is worth configuring if this pattern becomes primary.
  • Session must start with Remote Control. Restart claude if you realize mid-session you want phone access (unless /config toggle is already set).

Known Issues

iOS/iPadOS app 1.260618.0 — hard-crash on opening a Remote Control session

Status: Open upstream bug, fix pending in a future app build. (First hit 2026-06-23.)

The Claude mobile app build 1.260618.0 hard-crashes the instant you tap into a Remote Control (Code-tab) session. Observed at MajorsHouse on iPad Pro and iPhone 16 Pro simultaneously.

Distinguishing characteristics — this is an app-side bug, not a host/session problem:

  • Crashes on a brand-new session, so it is not transcript or tool-output size related.
  • The same session opens and works fine in a mobile browser (Safari/Chrome) — the host bridge is healthy.
  • Clean reinstall + re-login does not help. Don't waste time on it.
  • Root cause (per upstream reports) is a main-thread stack overflow in Swift KeyPath / SwiftUI metadata inside the app — nothing fixable on the host.

Workaround: use a mobile browser (claude.ai/code) instead of the app until a newer build ships.

Upstream tracking (anthropics/claude-code):

  • #70144 — iPad, v1.260618.0, any Code-tab session crashes (highest-traction canonical issue)
  • #70165 — iPhone 16 Pro Max, 1.260618.0, Remote Control hard-crash
  • Related: #70262, #70288, #65926

To file/confirm a report, export the crash log on each device: Settings → Privacy & Security → Analytics & Improvements → Analytics Data → Claude-<date>-*.ips, then attach it to the relevant issue above.

See Also