cdpilot 0.4.3 → 0.4.4
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 +65 -12
- package/package.json +1 -1
- package/src/cdpilot.py +1 -1
package/README.md
CHANGED
|
@@ -37,22 +37,34 @@ AI agents and developers need browser control that **just works**:
|
|
|
37
37
|
- **AI control warning** — Red toast notification appears when you hover during active automation
|
|
38
38
|
- **Privacy-first** — Everything runs locally. No data leaves your machine
|
|
39
39
|
|
|
40
|
-
###
|
|
40
|
+
### Browser Selection (Workload-Aware Auto-Pick)
|
|
41
41
|
|
|
42
|
-
cdpilot
|
|
42
|
+
cdpilot picks the right browser for what you're doing. `auto` (default) is a
|
|
43
|
+
two-axis policy — extension workload × platform stability:
|
|
43
44
|
|
|
44
|
-
|
|
|
45
|
-
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
| **Fingerprint protection** | Native | None | Better privacy for automated sessions |
|
|
49
|
-
| **Chromium-based** | Full CDP support | Full CDP support | Same DevTools Protocol, same power |
|
|
50
|
-
| **Open source** | Yes (MPL 2.0) | Chromium yes, Chrome no | Transparent, auditable |
|
|
51
|
-
| **Resource usage** | Lower memory | Higher memory | Better for running alongside your work |
|
|
45
|
+
| Your workload | Auto-pick order |
|
|
46
|
+
|---|---|
|
|
47
|
+
| Has extensions registered (`ext-install`) | vivaldi → brave → edge → chromium → chrome |
|
|
48
|
+
| No extensions (pure automation) | chrome → vivaldi → edge → chromium → brave |
|
|
52
49
|
|
|
53
|
-
|
|
50
|
+
Override anytime:
|
|
54
51
|
|
|
55
|
-
|
|
52
|
+
```bash
|
|
53
|
+
cdpilot browser # show current pick + reason
|
|
54
|
+
cdpilot browser vivaldi # pin to Vivaldi
|
|
55
|
+
cdpilot browser auto # restore smart default
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Why the split?**
|
|
59
|
+
- **Chrome 147+ silently drops `--load-extension`** for unpacked extensions
|
|
60
|
+
(no error, no warning). Verified — `chrome://extensions` shows 0 items.
|
|
61
|
+
- **Vivaldi, Brave, Edge, Chromium** honor `--load-extension` (tested).
|
|
62
|
+
- On **macOS 26 (Tahoe)** Brave 1.89 crashes deterministically at ~7min
|
|
63
|
+
uptime (SIGTRAP in ThreadPoolForegroundWorker). cdpilot detects the OS
|
|
64
|
+
and demotes Brave automatically until a fixed Brave release ships.
|
|
65
|
+
|
|
66
|
+
Each browser gets its own isolated profile (`~/.cdpilot/.../profile-vivaldi`
|
|
67
|
+
etc.) so switching never causes prefs corruption.
|
|
56
68
|
|
|
57
69
|
## Installation
|
|
58
70
|
|
|
@@ -187,6 +199,47 @@ cdpilot dialog auto-accept # Auto-accept dialogs
|
|
|
187
199
|
cdpilot permission grant geo # Grant geolocation
|
|
188
200
|
```
|
|
189
201
|
|
|
202
|
+
### Stealth & CAPTCHA
|
|
203
|
+
|
|
204
|
+
Zero-dependency anti-fingerprint layer — patches `navigator.webdriver`,
|
|
205
|
+
`chrome.runtime`, plugins (proper `PluginArray` inheritance), WebGL
|
|
206
|
+
vendor/renderer, permissions, hardware concurrency, and the `Worker`
|
|
207
|
+
constructor. Injected via `Page.addScriptToEvaluateOnNewDocument` before
|
|
208
|
+
any page script runs. Disabled by default; opt-in.
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
cdpilot stealth on # enable fingerprint patches (opt-in)
|
|
212
|
+
cdpilot stealth off # disable (default)
|
|
213
|
+
cdpilot stealth status # show which patches are applied
|
|
214
|
+
|
|
215
|
+
cdpilot captcha-check # JSON detection of Turnstile/hCaptcha/reCAPTCHA/
|
|
216
|
+
# DataDome/PerimeterX/Arkose/GeeTest. Exit 0/3
|
|
217
|
+
cdpilot captcha-wait [sec] # block until user solves (interactive)
|
|
218
|
+
# or poll with JSON stream (non-interactive)
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Verified against public bot-detection panels:
|
|
222
|
+
- **bot.sannysoft.com:** 24/24 PASS (WebDriver, Chrome obj, Plugins as PluginArray, WebGL, PHANTOM_*, HEADCHR_*, SELENIUM_DRIVER)
|
|
223
|
+
- **bot.incolumitas.com** intoli: 6/6 OK — new-tests: 6/7 OK (one FAIL = pure CDP presence, cannot be JS-patched)
|
|
224
|
+
- **nowsecure.nl** (Cloudflare full challenge): passed
|
|
225
|
+
- **arh.antoinevastel.com/areyouheadless:** "You are not Chrome headless"
|
|
226
|
+
|
|
227
|
+
### Reliability
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
cdpilot browser [name|auto] # workload-aware browser selection
|
|
231
|
+
cdpilot health # JSON: alive, port, tabs, browser, today's crashes
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
`cdpilot health` is designed for shell watchdogs:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
until cdpilot health >/dev/null; do cdpilot launch; sleep 2; done
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Surfaces today's Brave crash count from `~/Library/Logs/DiagnosticReports/`
|
|
241
|
+
on macOS — spot degradation before your automation silently stalls.
|
|
242
|
+
|
|
190
243
|
## Use with AI Agents
|
|
191
244
|
|
|
192
245
|
cdpilot is designed to be called by AI agents as a tool:
|
package/package.json
CHANGED