@ulpi/browse 1.1.1 → 1.3.1

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 CHANGED
@@ -143,6 +143,7 @@ browse wait --text "Welcome" # Wait for text to appear in page
143
143
  browse wait --fn "js expr" # Wait for JavaScript condition
144
144
  browse wait --load <state> # Wait for load state (load/domcontentloaded/networkidle)
145
145
  browse wait --network-idle # Wait for network idle
146
+ browse wait --download [path] # Wait for download to complete
146
147
  ```
147
148
 
148
149
  ### Snapshot
@@ -300,6 +301,7 @@ browse record stop # Stop recording
300
301
  browse record status # Check recording status
301
302
  browse record export browse [path] # Export as chain-compatible JSON (replay with browse chain)
302
303
  browse record export replay [path] # Export as Chrome DevTools Recorder (Playwright/Puppeteer)
304
+ browse record export replay --selectors css,aria [path] # Filter selector types in export
303
305
  ```
304
306
 
305
307
  ### React DevTools
@@ -321,11 +323,24 @@ browse react-devtools disable # Disable
321
323
  ### Handoff (Human Takeover)
322
324
 
323
325
  ```bash
324
- browse handoff [reason] # Swap to visible browser for CAPTCHA/MFA/OAuth
326
+ browse handoff [reason] # Swap to Chrome for CAPTCHA/MFA/OAuth (falls back to Chromium)
327
+ browse handoff --chromium # Force Playwright Chromium instead of Chrome
325
328
  browse resume # Swap back to headless, returns fresh snapshot
326
329
  ```
327
330
 
328
- Agent asks permission first via AskUserQuestion, then hands off. Server auto-suggests handoff after 3 consecutive failures.
331
+ Handoff defaults to your system Chrome (bypasses Turnstile and bot detection). Falls back to Playwright Chromium if Chrome is not installed. Agent asks permission first via AskUserQuestion, then hands off. Server auto-suggests handoff after 3 consecutive failures.
332
+
333
+ ### Cloud Providers
334
+
335
+ ```bash
336
+ browse provider save browserbase <api-key> # Save API key (encrypted)
337
+ browse provider save browserless <token> # Save token (encrypted)
338
+ browse --provider browserbase goto https://... # Use cloud browser
339
+ browse provider list # List saved providers
340
+ browse provider delete <name> # Remove saved key
341
+ ```
342
+
343
+ API keys are encrypted at rest in `.browse/providers/` — never visible to agents.
329
344
 
330
345
  ### State & Auth
331
346
 
@@ -340,6 +355,10 @@ browse auth save <name> <url> <user> --password-stdin # Password from stdin
340
355
  browse auth login <name> # Auto-login with saved credential
341
356
  browse auth list # List saved credentials
342
357
  browse auth delete <name> # Delete credential
358
+
359
+ browse cookie-import --list # List browsers with cookies
360
+ browse cookie-import chrome [--domain .example.com] # Import cookies from Chrome
361
+ browse cookie-import chrome --profile "Profile 1" # Specific browser profile
343
362
  ```
344
363
 
345
364
  ### Multi-Step (Chaining)
@@ -529,6 +548,61 @@ Core workflow:
529
548
  Use browse to test the login flow. Run browse --help to see available commands.
530
549
  ```
531
550
 
551
+ ## MCP Server Mode
552
+
553
+ Run browse as an [MCP](https://modelcontextprotocol.io/) server for editors that support the Model Context Protocol.
554
+
555
+ ```bash
556
+ browse --mcp
557
+ ```
558
+
559
+ Use `--json` alongside `--mcp` for structured responses (`{success, data, command}`).
560
+
561
+ > **Note:** Requires `npm install @modelcontextprotocol/sdk` alongside browse.
562
+
563
+ ### Cursor
564
+
565
+ `.cursor/mcp.json`:
566
+
567
+ ```json
568
+ {
569
+ "mcpServers": {
570
+ "browse": {
571
+ "command": "browse",
572
+ "args": ["--mcp"]
573
+ }
574
+ }
575
+ }
576
+ ```
577
+
578
+ ### Claude Desktop
579
+
580
+ `claude_desktop_config.json`:
581
+
582
+ ```json
583
+ {
584
+ "mcpServers": {
585
+ "browse": {
586
+ "command": "browse",
587
+ "args": ["--mcp"]
588
+ }
589
+ }
590
+ }
591
+ ```
592
+
593
+ ### Windsurf
594
+
595
+ ```json
596
+ {
597
+ "mcpServers": {
598
+ "browse": {
599
+ "command": "browse",
600
+ "args": ["--mcp"]
601
+ }
602
+ }
603
+ }
604
+ ```
605
+
532
606
  ## Options
533
607
 
534
608
  | Flag | Description |
@@ -540,9 +614,11 @@ Use browse to test the login flow. Run browse --help to see available commands.
540
614
  | `--allowed-domains <d,d>` | Block navigation/resources outside allowlist |
541
615
  | `--max-output <n>` | Truncate output to N characters |
542
616
  | `--headed` | Show browser window (not headless) |
617
+ | `--chrome` | Launch system Chrome (uses real browser, bypasses bot detection) |
543
618
  | `--cdp <port>` | Connect to Chrome on a specific debugging port |
544
619
  | `--connect` | Auto-discover and connect to a running Chrome instance |
545
- | `--runtime <name>` | Browser runtime: playwright (default), rebrowser (stealth), lightpanda |
620
+ | `--provider <name>` | Cloud browser provider (browserless, browserbase) |
621
+ | `--runtime <name>` | Browser runtime: playwright (default), rebrowser (stealth), lightpanda, chrome |
546
622
 
547
623
  ## Environment Variables
548
624
 
@@ -569,7 +645,9 @@ Use browse to test the login flow. Run browse --help to see available commands.
569
645
  | `BROWSE_CONFIRM_ACTIONS` | (none) | Commands requiring confirmation |
570
646
  | `BROWSE_ENCRYPTION_KEY` | auto-generated | 64-char hex AES key for credential vault |
571
647
  | `BROWSE_AUTH_PASSWORD` | (none) | Password for `auth save` (alt to `--password-stdin`) |
572
- | `BROWSE_RUNTIME` | playwright | Browser runtime (playwright, rebrowser, lightpanda) |
648
+ | `BROWSE_RUNTIME` | playwright | Browser runtime (playwright, rebrowser, lightpanda, chrome) |
649
+ | `BROWSE_CHROME` | (none) | Set to `1` to use system Chrome |
650
+ | `BROWSE_CHROME_PATH` | auto-detected | Override Chrome executable path |
573
651
 
574
652
  ## Architecture
575
653