feat: per-session Remote Control mode (Claude Code /remote-control) - #7
Merged
Merged
Conversation
Design for a Switchboard feature that toggles Claude Code's native Remote Control (/remote-control) per session, shows which sessions are remote-controlled, and surfaces the session URL/QR. No custom networking — Claude Code's Anthropic-API transport does the work. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8 TDD tasks: pure remote-control.js helpers, launch-flag wiring (local + SSH), runtime /remote-control toggle IPC, state tracking + URL parsing + events, New Session checkbox, sidebar/grid badge, header toggle button, and copy-link/QR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e to RC sessions Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ions Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… nonexistent .session-name) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds a small popover anchored near the header RC button showing the confirmed Remote Control URL, with Copy link (clipboard) and Open (default browser) actions, plus a close control. Auto-opens once per "on" streak the moment a session's URL is confirmed, and hides on RC off/pending or when switching to a session without a confirmed URL. QR code display is intentionally out of scope (Claude Code already prints a scannable QR in the terminal) — no vendored QR library added. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…med sessions Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…emote toggle - A: re-key sessionRcState/sessionRcPopoverShown/rcPopoverSessionId in onSessionForked so RC badge/header state survives fork/plan-accept re-keying. - B: clear sessionRcState/sessionRcPopoverShown in onProcessExited so a stopped session doesn't keep showing a stale "active" RC badge. - C: allow toggling Remote Control on remote Claude sessions at runtime — both the main.js IPC guard and the renderer's updateRcHeader isClaude check now treat session.remoteMode === 'claude' as a Claude session even though remote sessions are isPlainTerminal/type:'terminal'. - D: drop a dead !session.remoteControl check and a no-op ternary in main.js; add a comment clarifying that manually-toggled RC inside the terminal (outside Switchboard's own launch-flag/button flow) is intentionally undetected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
HAN-oQo
force-pushed
the
feat/remote-control
branch
from
July 14, 2026 06:41
8052847 to
d9b5d1b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds per-session Remote Control for Claude Code sessions, wrapping Claude Code's native
/remote-controlfeature. Switchboard adds no networking of its own — Claude's Anthropic-API transport does the work.claude --remote-control [name]) via a New Session checkbox (local and SSH)./remote-controlon a running Claude session from a header 📱 button (only when idle).claude.ai/code/…session URL and offers Copy link / Open so you can jump to your phone.New pure, unit-tested module
remote-control.js(+test/remote-control.test.js), wired intomain.js,preload.js, andpublic/{dialogs,app,index,style}.Notes / caveats
maindoesn't have that yet, so this PR's diff also includes the Phase 1–3 SSH commits + the popover-unify commit. The Remote-Control-only changes areremote-control.jsand thefeat(remote-control):/fix(remote-control):commits. The clean, RC-only PR to upstreammainwill follow once Add remote SSH sessions: remote projects, indexing/search/resume, IDE over SSH doctly/switchboard#78 merges./login) onapi.anthropic.com— it does not work through a customANTHROPIC_BASE_URLgateway.--remote-controlsession, which registers it on the Anthropic account) is a manual smoke test.Design spec:
docs/superpowers/specs/2026-07-14-remote-control-design.mdImplementation plan:
docs/superpowers/plans/2026-07-14-remote-control.md🤖 Generated with Claude Code