Newer
Older
openstack-caracal-dc-dc / docs / archive / memory-20260718 / multi-workstation-remote-control.md

name: multi-workstation-remote-control description: Operator hops workstations; drives ONE live jumphost session via Remote Control (claude.ai/code or mobile); batch tasks OK but cloud mutations stay gated metadata: node_type: memory type: user originSessionId: e5fa05aa-1418-4d5c-80ab-b4d6c72e8fe9

modified: 2026-07-19T07:50:20.711Z

The operator works across multiple workstations and likes to keep a session productive during the time between desks by having batch tasks run. The durable setup for this:

  • Claude Code runs on the jumphost (vopenstack-jesse); workstations are just the control surface. remoteControlAtStartup: true is set in the jumphost's ~/.claude/settings.json, so every session auto-registers with Remote Control -- drive the SAME live session from claude.ai/code (web) or the mobile app, no re-attach.
  • To pick up a still-running session from a new workstation: ATTACH (Remote Control, or SSH + claude agents), never claude --resume (that forks a SECOND session -- the fragmentation that spawned the runaway agent at the start of the 2026-07-15 session).
  • ONE session against the live clone at a time. Between workstations: push before switching; never leave an auto-permission background agent running.
  • Batch/unattended work is fine for read-only/safe tasks, but live-cloud mutations must stay GATED -- they queue for approval, which the operator grants from Remote Control on check-in. This is the line between "productive batch" and "runaway agent". See also the session-open hygiene (process/daemon scan before claude; claude daemon stop --any).
  • Walls vs gates (ruled 2026-07-19): the operator cannot always run commands in a second terminal, so a classifier HARD-DENY is a wall that stalls work. When a tool call gets classifier-denied, do NOT work around it -- add a TARGETED ask rule for that surface to .claude/settings.json (the Edit itself prompts; self-service is by design) so it arrives as an approve prompt in Remote Control. Never a catch-all Bash(*) ask (kills frictionless reads; ask appears to preempt allow), never additions to allow for mutations. Posture history: repo changelogs 2026-07-18 (ask-preempts-classifier) and 2026-07-19 (session changelog, out-of-batch item).