[Feature] claude-in-chrome: status bar should reflect active tab connection, not just MCP server availability
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:
- "Running" suggests active use — A user glancing at the status bar sees
claude-in-chrome: runningand 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.
- No state change after disconnect — When a
/dev-endworkflow navigates the tab away from the target page (or the user closes the tab entirely), the status bar still showsrunning. There's no visual feedback that the browser session has ended.
- 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
runningin 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
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗