claude-code - 💡(How to fix) Fix [BUG] remoteControlAtStartup: true does not trigger the "Remote Control active" footer indicator (data populated, UI not rendered) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#56175Fetched 2026-05-05 05:56:14
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Author
Participants
Timeline (top)
labeled ×5

Error Message

Error Messages/Logs

(none — this is a silent UI rendering miss, not a runtime error)

Fix Action

Fix / Workaround

Workaround (for affected users)

Code Example

(none — this is a silent UI rendering miss, not a runtime error)

---

"remoteControlAtStartup": true

---

cat ~/.claude/sessions/*.json | jq '.bridgeSessionId'
# Returns "session_..." (non-null), confirming remote control is on.

---

session_id=$(echo "${input}" | jq -r '.session_id // ""')
for sf in "${HOME}"/.claude/sessions/*.json; do
  [ -f "${sf}" ] || continue
  if grep -q "\"sessionId\":\"${session_id}\"" "${sf}"; then
    bridge=$(jq -r '.bridgeSessionId // ""' "${sf}")
    if [ -n "${bridge}" ] && [ "${bridge}" != "null" ]; then
      echo "● RC active"
    fi
    break
  fi
done
RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

When Remote Control is auto-enabled at startup via "remoteControlAtStartup": true in settings.json, the green "Remote Control active" indicator next to the statusLine footer is not displayed.

Remote control itself functions normally — the session is reachable at https://claude.ai/code/session_… printed during startup, and external clients can connect. The session data file (~/.claude/sessions/{PID}.json) has its bridgeSessionId field populated correctly. Only the footer UI confirmation is missing, which makes it ambiguous from the CLI whether remote control is actually active.

Manually invoking /remote-control from inside the session does produce the indicator as expected.

What Should Happen?

The green "Remote Control active" text should appear next to the statusLine footer whenever remote control is active — regardless of whether activation came from remoteControlAtStartup: true or from the user invoking /remote-control. Both paths should produce identical UI feedback.

Error Messages/Logs

(none — this is a silent UI rendering miss, not a runtime error)

Steps to Reproduce

  1. Add the following to ~/.claude/settings.json:

    "remoteControlAtStartup": true
  2. Quit Claude Code completely.

  3. Start a new session: claude (or claude --resume).

  4. Look at the bottom statusLine area in the terminal.

Expected: green "Remote Control active" text on the right. Actual: no indicator, even though the bridge session is active.

To confirm the bridge is active despite the missing UI:

cat ~/.claude/sessions/*.json | jq '.bridgeSessionId'
# Returns "session_..." (non-null), confirming remote control is on.

Now invoke /remote-control manually from inside the same session — the indicator appears. The data was already correct; only the UI trigger was missing on the auto-enable path.

Claude Model

Opus

Is this a regression?

No, this never worked

Last Working Version

No response

Claude Code Version

2.1.128

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

iTerm2

Additional Information

Diagnostic Findings

The data layer is correct in both paths — the difference is purely in UI rendering:

StatebridgeSessionId in sessions JSONFooter "Remote Control active"
Auto-enabled at startuppopulated (e.g. "session_017a4f…")❌ not shown
Manual /remote-controlpopulated✅ shown
Disconnected (/remote-control toggle off)null❌ not shown

This strongly suggests the footer rendering is hooked only to the user-command path (/remote-control), and the auto-enable path activates the bridge but skips the UI trigger.

Additionally, the JSON input passed to custom statusLine commands does not include any remote-control field in either case, so users who want to surface this state in a custom statusLine cannot do so via documented input — only by reading ~/.claude/sessions/{PID}.json directly.

Workaround (for affected users)

A custom statusLine command script can detect the state by checking the bridgeSessionId in the matching session file:

session_id=$(echo "${input}" | jq -r '.session_id // ""')
for sf in "${HOME}"/.claude/sessions/*.json; do
  [ -f "${sf}" ] || continue
  if grep -q "\"sessionId\":\"${session_id}\"" "${sf}"; then
    bridge=$(jq -r '.bridgeSessionId // ""' "${sf}")
    if [ -n "${bridge}" ] && [ "${bridge}" != "null" ]; then
      echo "● RC active"
    fi
    break
  fi
done

Suggested Fix

Trigger the same footer-rendering path used by /remote-control after the auto-enable activation completes, so both paths produce identical UI feedback.

As a separate (and arguably more valuable) improvement, exposing remote_control / bridge_session_id in the statusLine JSON input would let users build their own indicators without reading internal session files.

extent analysis

TL;DR

Trigger the footer-rendering path used by /remote-control after auto-enable activation completes to display the "Remote Control active" indicator.

Guidance

  • Verify that the bridgeSessionId field in the session JSON file is populated when remote control is auto-enabled at startup.
  • Check the code that handles the auto-enable activation of remote control to ensure it triggers the same UI update as the manual /remote-control command.
  • Consider exposing remote_control or bridge_session_id in the statusLine JSON input to allow users to create custom indicators.
  • Use the provided workaround script as a temporary solution to detect and display the remote control state in the status line.

Example

The workaround script provided in the issue can be used as a temporary solution:

session_id=$(echo "${input}" | jq -r '.session_id // ""')
for sf in "${HOME}"/.claude/sessions/*.json; do
  [ -f "${sf}" ] || continue
  if grep -q "\"sessionId\":\"${session_id}\"" "${sf}"; then
    bridge=$(jq -r '.bridgeSessionId // ""' "${sf}")
    if [ -n "${bridge}" ] && [ "${bridge}" != "null" ]; then
      echo "● RC active"
    fi
    break
  fi
done

Notes

The issue seems to be related to the UI rendering of the remote control indicator, and the provided workaround script can help detect and display the remote control state. However, a more permanent fix would involve updating the code to trigger the same UI update for both auto-enable and manual activation of remote control.

Recommendation

Apply the suggested fix by triggering the footer-rendering path used by /remote-control after auto-enable activation completes, and consider exposing remote_control or bridge_session_id in the statusLine JSON input for custom indicators. This will provide a more consistent

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING