agent-browser-priv 0.27.3-priv.4 → 0.27.3-priv.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/bin/agent-browser-priv-darwin-arm64 +0 -0
- package/bin/agent-browser-priv-linux-arm64 +0 -0
- package/bin/agent-browser-priv-linux-x64 +0 -0
- package/bin/agent-browser-priv-win32-x64.exe +0 -0
- package/package.json +1 -1
- package/skill-data/core/SKILL.md +6 -0
- package/skill-data/core/references/commands.md +3 -0
- package/skill-data/core/references/proxy-support.md +7 -33
package/README.md
CHANGED
|
@@ -76,9 +76,9 @@ Detects your installation method (npm, Homebrew, or Cargo) and runs the appropri
|
|
|
76
76
|
|
|
77
77
|
### Requirements
|
|
78
78
|
|
|
79
|
-
- **Patchright backend** - Run `agent-browser install` to install Patchright and its browser artifacts for the default local backend.
|
|
79
|
+
- **Patchright backend** - Run `agent-browser install` to install pinned Patchright and its browser artifacts for the default local backend. Requires Node.js and npm for install and runtime launch.
|
|
80
80
|
- **Chrome backend** - Use `agent-browser install chrome` to download Chrome from [Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) for `--backend chrome`. Existing Chrome, Brave, Playwright, and Puppeteer installations are detected automatically.
|
|
81
|
-
- **Node.js 24+ and pnpm 11+** -
|
|
81
|
+
- **Node.js 24+ and pnpm 11+** - pnpm is only needed when building from source; Node.js is also needed by the default Patchright backend.
|
|
82
82
|
- **Rust** - Only needed when building from source (see From Source above).
|
|
83
83
|
|
|
84
84
|
## Quick Start
|
|
@@ -115,6 +115,7 @@ agent-browser find role button click --name "Submit"
|
|
|
115
115
|
```bash
|
|
116
116
|
agent-browser open # Launch browser (no navigation); stays on about:blank
|
|
117
117
|
agent-browser open <url> # Launch + navigate to URL (aliases: goto, navigate)
|
|
118
|
+
agent-browser open --wait-until none <url> # Return immediately after navigation is sent
|
|
118
119
|
agent-browser click <sel> # Click element (--new-tab to open in new tab)
|
|
119
120
|
agent-browser dblclick <sel> # Double-click element
|
|
120
121
|
agent-browser focus <sel> # Focus element
|
|
@@ -782,6 +783,11 @@ Patchright is used only to launch the local Chrome-compatible browser and expose
|
|
|
782
783
|
CDP on localhost. It does not solve CAPTCHA, Turnstile, or other human
|
|
783
784
|
verification pages; preserve those pages for human handoff.
|
|
784
785
|
|
|
786
|
+
The default Patchright backend honors `--proxy`, `--proxy-bypass`,
|
|
787
|
+
`--user-agent`, `--ignore-https-errors`, `--download-path`, and custom launch
|
|
788
|
+
args. Remote-debugging address and port args are reserved by agent-browser and
|
|
789
|
+
are forced to localhost.
|
|
790
|
+
|
|
785
791
|
## Observability Dashboard
|
|
786
792
|
|
|
787
793
|
Monitor agent-browser sessions in real time with a local web dashboard showing a live viewport and command activity feed.
|
|
@@ -1260,7 +1266,7 @@ Connect to `ws://localhost:9223` to receive frames and send input:
|
|
|
1260
1266
|
agent-browser uses a client-daemon architecture:
|
|
1261
1267
|
|
|
1262
1268
|
1. **Rust CLI** - Parses commands, communicates with daemon
|
|
1263
|
-
2. **Rust Daemon** -
|
|
1269
|
+
2. **Rust Daemon** - Rust daemon using direct CDP. The default Patchright backend uses a small Node.js host to launch Patchright; `--backend chrome` remains the pure Rust local launcher.
|
|
1264
1270
|
|
|
1265
1271
|
The daemon starts automatically on first command and persists between commands for fast subsequent operations. To auto-shutdown the daemon after a period of inactivity, set `AGENT_BROWSER_IDLE_TIMEOUT_MS` (value in milliseconds). When set, the daemon closes the browser and exits after receiving no commands for the specified duration.
|
|
1266
1272
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
package/skill-data/core/SKILL.md
CHANGED
|
@@ -14,6 +14,10 @@ launcher when that lane behaves better for a target. Accessibility-tree
|
|
|
14
14
|
snapshots with compact `@eN` refs let agents interact with pages in ~200-400
|
|
15
15
|
tokens instead of parsing raw HTML.
|
|
16
16
|
|
|
17
|
+
The default Patchright backend requires Node.js at runtime; `agent-browser
|
|
18
|
+
install` installs pinned Patchright browser artifacts. The `--backend chrome`
|
|
19
|
+
lane remains the pure Rust local Chrome launcher.
|
|
20
|
+
|
|
17
21
|
Do not add CAPTCHA solving, Turnstile solving, proxy rotation policy, or
|
|
18
22
|
production stealth defaults. If a challenge remains, classify it and preserve
|
|
19
23
|
artifacts for human handoff.
|
|
@@ -26,6 +30,7 @@ web pages — see [When to load another skill](#when-to-load-another-skill).
|
|
|
26
30
|
|
|
27
31
|
```bash
|
|
28
32
|
agent-browser open <url> # 1. Open a page
|
|
33
|
+
agent-browser open --wait-until none <url> # Send nav and return immediately
|
|
29
34
|
agent-browser snapshot -i # 2. See what's on it (interactive elements only)
|
|
30
35
|
agent-browser click @e3 # 3. Act on refs from the snapshot
|
|
31
36
|
agent-browser snapshot -i # 4. Re-snapshot after any page change
|
|
@@ -421,6 +426,7 @@ and [references/authentication.md](references/authentication.md).
|
|
|
421
426
|
--backend <name> # local backend: patchright (default), chrome
|
|
422
427
|
--profile <name|path> # use a Chrome profile (login state survives)
|
|
423
428
|
--headers <json> # HTTP headers scoped to the URL's origin
|
|
429
|
+
--wait-until <state> # navigation wait: none, domcontentloaded, load, networkidle
|
|
424
430
|
--proxy <url> # proxy server
|
|
425
431
|
--state <path> # load saved auth state from JSON
|
|
426
432
|
--session-name <name> # auto-save/restore session state by name
|
|
@@ -9,6 +9,7 @@ agent-browser open # Launch browser (no navigation); stays on about:b
|
|
|
9
9
|
# Pair with `network route`, `cookies set --curl`, or
|
|
10
10
|
# `addinitscript` to stage state before the first navigation.
|
|
11
11
|
agent-browser open <url> # Launch + navigate (aliases: goto, navigate)
|
|
12
|
+
agent-browser open --wait-until none <url> # Send navigation and return immediately
|
|
12
13
|
# Supports: https://, http://, file://, about:, data://
|
|
13
14
|
# Auto-prepends https:// if no protocol given
|
|
14
15
|
agent-browser back # Go back
|
|
@@ -310,9 +311,11 @@ agent-browser --session <name> ... # Isolated browser session
|
|
|
310
311
|
agent-browser --json ... # JSON output for parsing
|
|
311
312
|
agent-browser --headed ... # Show browser window (not headless)
|
|
312
313
|
agent-browser --cdp <port> ... # Connect via Chrome DevTools Protocol
|
|
314
|
+
agent-browser --backend <name> ... # Local backend: patchright (default), chrome
|
|
313
315
|
agent-browser -p <provider> ... # Cloud browser provider (--provider)
|
|
314
316
|
agent-browser --proxy <url> ... # Use proxy server
|
|
315
317
|
agent-browser --proxy-bypass <hosts> # Hosts to bypass proxy
|
|
318
|
+
agent-browser --wait-until <state> # Navigation wait: none, domcontentloaded, load, networkidle
|
|
316
319
|
agent-browser --headers <json> ... # HTTP headers scoped to URL's origin
|
|
317
320
|
agent-browser --executable-path <p> # Custom browser executable
|
|
318
321
|
agent-browser --extension <path> ... # Load browser extension (repeatable)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Proxy Support
|
|
2
2
|
|
|
3
|
-
Proxy configuration for geo-testing,
|
|
3
|
+
Proxy configuration for controlled egress, geo-testing, and corporate environments.
|
|
4
4
|
|
|
5
5
|
**Related**: [commands.md](commands.md) for global options, [SKILL.md](../SKILL.md) for quick start.
|
|
6
6
|
|
|
@@ -37,6 +37,11 @@ export HTTPS_PROXY="http://proxy.example.com:8080"
|
|
|
37
37
|
agent-browser open https://example.com
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
The default Patchright backend and the built-in Chrome backend both honor
|
|
41
|
+
`--proxy` and `--proxy-bypass`. Patchright receives these settings through its
|
|
42
|
+
persistent-context launch options; Chrome receives them as Chromium launch
|
|
43
|
+
arguments.
|
|
44
|
+
|
|
40
45
|
## Authenticated Proxy
|
|
41
46
|
|
|
42
47
|
For proxies requiring authentication:
|
|
@@ -100,37 +105,6 @@ for proxy in "${PROXIES[@]}"; do
|
|
|
100
105
|
done
|
|
101
106
|
```
|
|
102
107
|
|
|
103
|
-
### Rotating Proxies for Scraping
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
#!/bin/bash
|
|
107
|
-
# Rotate through proxy list to avoid rate limiting
|
|
108
|
-
|
|
109
|
-
PROXY_LIST=(
|
|
110
|
-
"http://proxy1.example.com:8080"
|
|
111
|
-
"http://proxy2.example.com:8080"
|
|
112
|
-
"http://proxy3.example.com:8080"
|
|
113
|
-
)
|
|
114
|
-
|
|
115
|
-
URLS=(
|
|
116
|
-
"https://site.com/page1"
|
|
117
|
-
"https://site.com/page2"
|
|
118
|
-
"https://site.com/page3"
|
|
119
|
-
)
|
|
120
|
-
|
|
121
|
-
for i in "${!URLS[@]}"; do
|
|
122
|
-
proxy_index=$((i % ${#PROXY_LIST[@]}))
|
|
123
|
-
export HTTP_PROXY="${PROXY_LIST[$proxy_index]}"
|
|
124
|
-
export HTTPS_PROXY="${PROXY_LIST[$proxy_index]}"
|
|
125
|
-
|
|
126
|
-
agent-browser open "${URLS[$i]}"
|
|
127
|
-
agent-browser get text body > "output-$i.txt"
|
|
128
|
-
agent-browser close
|
|
129
|
-
|
|
130
|
-
sleep 1 # Polite delay
|
|
131
|
-
done
|
|
132
|
-
```
|
|
133
|
-
|
|
134
108
|
### Corporate Network Access
|
|
135
109
|
|
|
136
110
|
```bash
|
|
@@ -191,4 +165,4 @@ export NO_PROXY="*.cdn.com,*.static.com" # Direct CDN access
|
|
|
191
165
|
2. **Set NO_PROXY appropriately** - Avoid routing local traffic through proxy
|
|
192
166
|
3. **Test proxy before automation** - Verify connectivity with simple requests
|
|
193
167
|
4. **Handle proxy failures gracefully** - Implement retry logic for unstable proxies
|
|
194
|
-
5. **
|
|
168
|
+
5. **Keep challenge pages intact** - If a bot or human-verification page remains, preserve artifacts for human handoff instead of bypassing it
|