Feature request: `tabs` needs an `activate` action (background tabs get Chromium timer throttling, and there is no way to bring an agent-owned tab forward)
Environment: BrowserOS neo 0.49.5.0 · Chromium 148.0.7988.97 (Official Build) (arm64) · macOS · client = Claude (Cowork) driving neo over MCP (mcp__remote-devices__BrowserOS_neo__*). Source references are against main @ ca9c37d (2026-09-11), packages/browseros-agent/packages/browser-mcp/.
Context
tabs new opens pages in the background by design (good — it does not steal the user's focus). But a hidden tab is subject to Chromium's background-tab timer throttling (≈1 wake/s after a few seconds hidden, ≈1/min after ~5 min). For page-driven work that is fatal: in my run the same search-and-settle step took ~3 s on a page I had just opened and ~20 s once the tab had been hidden for a few minutes (document.hidden === true confirmed from inside the page).
What is missing
The tabs tool has list / active / new / close (src/tools/tabs.ts, z.enum(['list','active','new','close'])). There is no activate / select. browser.pages.newPage(url, { background: false }) is the only foregrounding path and it creates a new page. browser-core/src/core/windows.ts already wraps Browser.activateWindow; Page.bringToFront over CDP would do the tab-level equivalent.
Proposal
tabs gains action: "activate" with page: <id> (CDP Page.bringToFront on the page's session, plus Browser.activateWindow on its window), restricted to pages the agent owns, same as close. Optionally a browser.pages.activate(pageId) SDK method so run scripts can do it. The user keeps the ability to click back to their own tab at any time; the agent just gets to un-hide its page while it works.
Happy to PR this too.
Source: browseros-ai/BrowserOS