feat: add CDP tab-group plugin handshake with silent fallback

This commit is contained in:
leeguooooo
2026-03-03 12:17:14 +09:00
parent d04cf59238
commit 2a766cfe48
19 changed files with 1079 additions and 249 deletions
+13 -8
View File
@@ -116,7 +116,7 @@ agent-browser wait --download [path] # Wait for download
Control how `open`/`navigate` handles verification or captcha interstitials:
```bash
agent-browser --risk-mode warn open https://example.com # default: retry and warn with riskSignals
agent-browser --risk-mode warn open https://example.com # default: wait for auto-clear, then retry/warn with riskSignals
agent-browser --risk-mode block open https://example.com # fail fast on detection
agent-browser --risk-mode off open https://example.com # disable detection/retry
```
@@ -134,17 +134,21 @@ Use `--download-path <dir>` (or `AGENT_BROWSER_DOWNLOAD_PATH` env) to set a defa
```bash
agent-browser open https://example.com
# Local Chromium launch auto-groups tabs under "Agent Browser Stealth"
# CDP mode groups tabs when tab-group plugin is installed
# Override the default group title
agent-browser --tab-group "My Agent Group" open https://example.com
```
Local Chromium launches auto-create/reuse the `Agent Browser Stealth` tab group and move newly opened agent tabs into that group.
CDP mode uses a browser extension handshake to group tabs.
- Supported only for local Chromium launches.
- In CDP (`--cdp` / `--auto-connect`) and cloud provider modes, the flag is ignored with a warning.
- Use `--tab-group` or `AGENT_BROWSER_TAB_GROUP` to override the default group title.
- Extension available: tabs are grouped by `session`.
- Extension missing/unavailable: silent no-op (commands still succeed).
- Default titles:
- `default` session: `Agent Browser Stealth`
- non-default: `Agent Browser Stealth • <session>`
- Use `--tab-group` / `AGENT_BROWSER_TAB_GROUP` for base title.
- Use `AGENT_BROWSER_TAB_GROUP_PLUGIN_ID` (or `--tab-group-plugin-id`) to override expected extension ID.
## Mouse
@@ -276,7 +280,7 @@ agent-browser reload # Reload page
```bash
--session <name> # Isolated browser session
--session-name <name> # Auto-save/restore session state (cookies, localStorage)
--session-name <name> # Auto-save/restore session state (defaults to --session when omitted)
--state <path> # Load storage state from JSON file
--headers <json> # HTTP headers scoped to URL's origin
--executable-path <path> # Custom browser executable
@@ -296,7 +300,8 @@ agent-browser reload # Reload page
--headed # Show browser window (not headless)
--cdp <port|url> # Connect via Chrome DevTools Protocol (port or WebSocket URL)
--auto-connect # Auto-discover and connect to running Chrome
--tab-group <name> # Override default agent tab group title (Chromium local launch only)
--tab-group <name> # Base title for agent tab groups (CDP plugin mode)
--tab-group-plugin-id <id> # Expected extension ID for tab-group handshake
--debug # Debug output (includes stealth connection type + capabilities)
```
+30 -5
View File
@@ -281,7 +281,16 @@ Every CLI flag can be set in the config file using its camelCase equivalent:
<td>
<code>--tab-group</code>
</td>
<td>string (override default tab group title; Chromium local launch only)</td>
<td>string (base title for session tab grouping via CDP plugin handshake)</td>
</tr>
<tr>
<td>
<code>tabGroupPluginId</code>
</td>
<td>
<code>--tab-group-plugin-id</code>
</td>
<td>string (expected extension ID for tab-group plugin handshake)</td>
</tr>
<tr>
<td>
@@ -308,6 +317,9 @@ Every CLI flag can be set in the config file using its camelCase equivalent:
`riskMode` defaults to `warn` when unset.
For tab grouping in CDP mode, grouping is best-effort through the extension handshake:
extension available => grouped by session; extension missing/unavailable => silent no-op.
## Common Configurations
### Local Development
@@ -419,8 +431,21 @@ These environment variables configure additional daemon and runtime behavior:
<td>
<code>AGENT_BROWSER_TAB_GROUP</code>
</td>
<td>Override default auto-group title for agent tabs (Chromium local launch only).</td>
<td>(disabled)</td>
<td>
Base title for tab grouping. Session suffix is appended automatically in CDP mode.
</td>
<td>
<code>Agent Browser Stealth</code>
</td>
</tr>
<tr>
<td>
<code>AGENT_BROWSER_TAB_GROUP_PLUGIN_ID</code>
</td>
<td>Expected extension ID for CDP tab-group plugin handshake.</td>
<td>
<code>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</code>
</td>
</tr>
<tr>
<td>
@@ -447,8 +472,8 @@ These environment variables configure additional daemon and runtime behavior:
<td>
<code>AGENT_BROWSER_SESSION_NAME</code>
</td>
<td>Auto-save/load state persistence name.</td>
<td>(none)</td>
<td>Auto-save/load state persistence name (defaults to <code>AGENT_BROWSER_SESSION</code> when unset).</td>
<td>(same as <code>AGENT_BROWSER_SESSION</code>)</td>
</tr>
<tr>
<td>