@ulpi/browse 1.1.1 → 1.3.0

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/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@ulpi/browse",
3
- "version": "1.1.1",
3
+ "version": "1.3.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ulpi-io/browse"
7
7
  },
8
8
  "dependencies": {
9
9
  "@lightpanda/browser": "^1.2.0",
10
+ "@modelcontextprotocol/sdk": "^1.27.1",
10
11
  "@ulpi/browse": "^0.3.0",
11
12
  "better-sqlite3": "^11.0.0",
12
13
  "diff": "^7.0.0",
@@ -41,7 +42,7 @@
41
42
  "access": "public"
42
43
  },
43
44
  "scripts": {
44
- "build": "esbuild src/cli.ts --bundle --format=cjs --platform=node --target=node18 --outfile=dist/browse.cjs --external:playwright --external:playwright-core --external:better-sqlite3 --external:electron --external:chromium-bidi --banner:js='#!/usr/bin/env node\nconst __import_meta_url = require(\"url\").pathToFileURL(__filename).href;' --define:import.meta.url=__import_meta_url",
45
+ "build": "esbuild src/cli.ts --bundle --format=cjs --platform=node --target=node18 --outfile=dist/browse.cjs --external:playwright --external:playwright-core --external:better-sqlite3 --external:electron --external:chromium-bidi --external:@modelcontextprotocol/sdk --banner:js='#!/usr/bin/env node\nconst __import_meta_url = require(\"url\").pathToFileURL(__filename).href;' --define:import.meta.url=__import_meta_url",
45
46
  "build:all": "bash scripts/build-all.sh",
46
47
  "dev": "tsx src/cli.ts",
47
48
  "server": "tsx src/server.ts",
package/skill/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: browse
3
- version: 3.4.0
3
+ version: 3.5.0
4
4
  description: |
5
5
  Fast web browsing and web app testing for AI coding agents via persistent headless Chromium daemon.
6
6
  Browse any URL, read page content, click elements, fill forms, run JavaScript, take screenshots,
@@ -120,6 +120,12 @@ browse cookie-import chrome --domain .site.com
120
120
 
121
121
  # Persistent profiles
122
122
  browse --profile mysite goto https://app.com
123
+
124
+ # Cloud providers (encrypted API keys, never visible to agents)
125
+ browse provider save browserbase <api-key>
126
+ browse --provider browserbase goto https://example.com
127
+ browse provider list
128
+ browse provider delete browserbase
123
129
  ```
124
130
 
125
131
  ## Command Reference
@@ -369,6 +375,7 @@ browse record stop Stop recording, keep steps for export
369
375
  browse record status Recording state and step count
370
376
  browse record export browse [path] Export as chain-compatible JSON (replay with browse chain)
371
377
  browse record export replay [path] Export as Chrome DevTools Recorder (Playwright/Puppeteer)
378
+ browse record export replay --selectors css,aria [path] Filter selector types in export
372
379
  ```
373
380
 
374
381
  ### React DevTools
@@ -386,9 +393,17 @@ browse react-devtools owners <sel> Parent component chain
386
393
  browse react-devtools context <sel> Context values consumed by component
387
394
  ```
388
395
 
396
+ ### Cloud Providers
397
+ ```
398
+ browse provider save <name> <key> Save provider API key (encrypted)
399
+ browse provider list List saved providers
400
+ browse provider delete <name> Delete provider key
401
+ ```
402
+
389
403
  ### Handoff (human takeover)
390
404
  ```
391
- browse handoff [reason] Swap to visible browser for user to solve CAPTCHA/MFA
405
+ browse handoff [reason] Swap to Chrome for user to solve CAPTCHA/MFA (bypasses bot detection)
406
+ browse handoff --chromium Force Playwright Chromium instead of Chrome
392
407
  browse resume Swap back to headless, returns fresh snapshot
393
408
  ```
394
409
 
@@ -416,9 +431,12 @@ browse inspect Open DevTools (requires BROWSE_DEBUG_PORT)
416
431
  | `--allowed-domains <d,d>` | Block navigation/resources outside allowlist |
417
432
  | `--max-output <n>` | Truncate output to N characters |
418
433
  | `--headed` | Run browser in headed (visible) mode |
434
+ | `--chrome` | Launch system Chrome (real browser, bypasses bot detection) |
419
435
  | `--cdp <port>` | Connect to Chrome on a specific debugging port |
420
436
  | `--connect` | Auto-discover and connect to a running Chrome instance |
421
- | `--runtime <name>` | Browser engine: playwright (default), rebrowser (stealth), lightpanda |
437
+ | `--provider <name>` | Cloud browser provider (browserless, browserbase) |
438
+ | `--runtime <name>` | Browser engine: playwright (default), rebrowser (stealth), lightpanda, chrome |
439
+ | `--mcp` | Run as MCP server (for Cursor, Windsurf, Cline) |
422
440
 
423
441
  ## Reference Files
424
442
 
@@ -154,6 +154,7 @@ Read this section when you're unsure which command to use for a task.
154
154
  | Find suspense blockers | `react-devtools enable` then `suspense` |
155
155
  | Bypass bot detection | `--runtime rebrowser goto <url>` |
156
156
  | Persistent login state | `--profile mysite` then browse then close then reopen (still logged in) |
157
+ | Cloud browser (CI/CD) | `provider save browserbase <key>` then `--provider browserbase goto <url>` |
157
158
 
158
159
  ## Architecture
159
160