[Feature] claude-in-chrome: status bar should reflect active tab connection, not just MCP server availability

Resolved 💬 2 comments Opened Mar 17, 2026 by nengelmann Closed Apr 14, 2026

Problem

The Claude Code status bar currently shows claude-in-chrome as running (green) whenever the MCP server process is connected — regardless of whether Claude is actually interacting with any browser tab. This is misleading because:

  1. "Running" suggests active use — A user glancing at the status bar sees claude-in-chrome: running and assumes Claude is actively connected to and watching a browser tab. In reality, it only means the Chrome extension's native messaging host is responding to the MCP protocol handshake.
  1. No state change after disconnect — When a /dev-end workflow navigates the tab away from the target page (or the user closes the tab entirely), the status bar still shows running. There's no visual feedback that the browser session has ended.
  1. Ambiguity during setup — When starting a new session, users can't tell from the status bar whether the Chrome extension has successfully connected to a tab group or is just idle. The status stays running in both cases.

Current behavior

claude-in-chrome: running    ← always green once MCP server connects

This status never changes regardless of:

  • Whether a tab group exists
  • Whether any tabs are open
  • Whether tabs are navigated to the target app or to chrome://newtab
  • Whether the extension is actively being used

Requested behavior

The status bar should reflect the actual browser session state, not just MCP server availability. Suggested states:

| State | When | Example display |
|-------|------|-----------------|
| Connected | MCP server is up AND at least one tab in the tab group has a non-empty URL (not chrome://newtab, not about:blank) | claude-in-chrome: connected |
| Ready / Idle | MCP server is up but no active tab group exists, or all tabs are empty/new-tab | claude-in-chrome: ready |
| Error | MCP server fails to connect or extension is not installed | claude-in-chrome: error (existing behavior) |

The exact naming (connected/ready/idle/standby/pending) is up to the team — the key insight is that there should be a distinction between "MCP protocol is healthy" and "Claude is actively working with browser tabs".

Why this matters

Users who build development workflows around claude-in-chrome (e.g., /dev to start a server + open a browser tab, /dev-end to shut everything down) need clear visual confirmation that the browser session is active or has been cleanly ended. Without distinct states, the status bar provides no useful information beyond "the extension is installed."

Environment

  • Claude Code (latest)
  • Linux (Ubuntu 24.04), but this applies to all platforms
  • Chrome with Claude in Chrome extension

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗