@xbrowser/cli 1.0.0 → 1.0.2

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.
Files changed (46) hide show
  1. package/README.md +17 -26
  2. package/dist/{browser-GURRY444.js → browser-GITRHHFO.js} +4 -3
  3. package/dist/{browser-DSVV4GHS.js → browser-R56O3CW6.js} +3 -3
  4. package/dist/{browser-53KUFEEM.js → browser-ZJOZB5CR.js} +4 -4
  5. package/dist/{cdp-driver-MNPR3HZH.js → cdp-driver-BE3FOMRN.js} +324 -58
  6. package/dist/{cdp-driver-SSXUGXP6.js → cdp-driver-TOPYJIFL.js} +3 -3
  7. package/dist/chunk-2SVQTI2O.js +2794 -0
  8. package/dist/{chunk-2MFXKN32.js → chunk-ACFE6PKF.js} +1013 -119
  9. package/dist/chunk-BBMRDUYQ.js +260 -0
  10. package/dist/{chunk-E4O5ZU3H.js → chunk-CAFNSGYM.js} +393 -95
  11. package/dist/{chunk-DTJRVA76.js → chunk-ETCO4SNK.js} +2 -2
  12. package/dist/{chunk-YKOHDEFV.js → chunk-JPA2ZT2R.js} +69 -36
  13. package/dist/{chunk-T4J4C2NZ.js → chunk-JPHCY4TC.js} +12 -2
  14. package/dist/chunk-KFQGP6VL.js +33 -0
  15. package/dist/{chunk-ITKPSIP7.js → chunk-MDAPTB7C.js} +6 -25
  16. package/dist/chunk-OZKD3W4X.js +417 -0
  17. package/dist/{chunk-42RPMJ76.js → chunk-PPG4D2EW.js} +325 -59
  18. package/dist/{chunk-IDVD44ED.js → chunk-Q4IGYTKR.js} +19 -7
  19. package/dist/{chunk-2BQZIT3S.js → chunk-QIK2I3VQ.js} +86 -2501
  20. package/dist/chunk-WJRE55TN.js +83 -0
  21. package/dist/cli.js +1435 -1077
  22. package/dist/{convert-EGFYNICZ.js → convert-LB3GJTLR.js} +3 -3
  23. package/dist/{convert-EKQVHKB4.js → convert-R3XXYKC6.js} +2 -2
  24. package/dist/{daemon-client-3VM7VU7O.js → daemon-client-DRCUMNHK.js} +25 -74
  25. package/dist/{daemon-client-YAVQ343A.js → daemon-client-UZZEHHIV.js} +2 -2
  26. package/dist/daemon-main.js +2200 -1691
  27. package/dist/{extract-JUOQQX4V.js → extract-2ZFW2MX7.js} +1 -1
  28. package/dist/{extract-L2IW3IUB.js → extract-BSYBM4MR.js} +1 -1
  29. package/dist/{filter-HC4RA7JY.js → filter-KCFO4RSV.js} +1 -1
  30. package/dist/{filter-VID2GGZ7.js → filter-T7DSZ2X7.js} +1 -1
  31. package/dist/{human-interaction-W753RVJB.js → human-interaction-UKAS5ZXV.js} +2 -2
  32. package/dist/index.d.ts +165 -108
  33. package/dist/index.js +2531 -1680
  34. package/dist/launcher-QUJ4M2VS.js +19 -0
  35. package/dist/{launcher-KA7J32K5.js → launcher-YARP45UY.js} +1 -1
  36. package/dist/{network-store-66A2RATI.js → network-store-XGZ25FFC.js} +1 -1
  37. package/dist/{network-store-BN6QEZ7R.js → network-store-YVDNUREI.js} +1 -1
  38. package/dist/{parse-action-dsl-T3DYC33D.js → parse-action-dsl-UM333TL2.js} +1 -1
  39. package/dist/{proxy-WKGUCH2C.js → proxy-LV4BJ5RC.js} +1 -1
  40. package/dist/session-recorder-RTDGURIJ.js +8 -0
  41. package/dist/session-recorder-YI7YYM36.js +7 -0
  42. package/dist/session-replayer-GLTUICSD.js +276 -0
  43. package/dist/site-knowledge-SYC6VCDB.js +23 -0
  44. package/package.json +5 -4
  45. package/dist/screenshot-CWAWMXVA.js +0 -28
  46. package/dist/session-recorder-MA75PKTQ.js +0 -7
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # xbrowser
2
2
 
3
- > **Browser automation CLI** for web scraping, headless browsing, SEO analysis, and AI agent workflows. 35+ commands, 67+ plugins. A command-line alternative to Playwright, Puppeteer, and Selenium — **no code required**.
3
+ > **Browser automation CLI** for web scraping, headless browsing, SEO analysis, and AI agent workflows. 49 commands, 69 plugins. A command-line alternative to Playwright, Puppeteer, and Selenium — **no code required**.
4
4
 
5
5
  [![CI Status](https://github.com/dyyz1993/xbrowser/workflows/CI/badge.svg)](https://github.com/dyyz1993/xbrowser/actions)
6
6
  [![codecov](https://codecov.io/gh/dyyz1993/xbrowser/branch/master/graph/badge.svg)](https://codecov.io/gh/dyyz1993/xbrowser)
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## 特性
11
11
 
12
- - **35+ 浏览器命令** — 导航、交互、查询、存储、截图,覆盖常见自动化场景
12
+ - **49 浏览器命令** — 导航、交互、查询、存储、截图,覆盖常见自动化场景
13
13
  - **命令链** — 用 `&&`、`,`、`+`、`->`、`;` 串联多个命令,一行搞定复杂流程
14
14
  - **管道 & Heredoc** — 支持 stdin 管道和 heredoc 批量执行
15
15
  - **录制 / 回放** — 录制浏览器操作为 YAML,随时回放,可转换为 JS/Python/Bash 脚本
@@ -71,7 +71,7 @@ npm install -g @xbrowser/cli
71
71
 
72
72
  ```bash
73
73
  # 打开浏览器,导航到页面
74
- xbrowser session open https://example.com
74
+ xbrowser goto https://example.com
75
75
 
76
76
  # 获取页面标题
77
77
  xbrowser title
@@ -89,7 +89,7 @@ xbrowser session close
89
89
 
90
90
  ### 单行命令链
91
91
 
92
- 不需要先 `session open`,命令链会自动启动浏览器并在执行完毕后关闭:
92
+ 会话会自动创建,命令链会自动启动浏览器并在执行完毕后关闭:
93
93
 
94
94
  ```bash
95
95
  # 用逗号分隔
@@ -178,19 +178,17 @@ xbrowser --cdp auto "goto https://example.com , title"
178
178
 
179
179
  | 命令 | 说明 | 示例 |
180
180
  |------|------|------|
181
- | `session open <url>` | 打开浏览器并创建会话 | `xbrowser session open https://example.com` |
182
- | `session open <url> --name work` | 以指定名称创建会话 | `xbrowser session open https://example.com --name work` |
183
181
  | `session close` | 关闭当前会话 | `xbrowser session close` |
184
- | `session close --name work` | 关闭指定会话 | `xbrowser session close --name work` |
182
+ | `session close --session work` | 关闭指定会话 | `xbrowser session close --session work` |
185
183
  | `session close --all` | 关闭所有会话 | `xbrowser session close --all` |
186
184
  | `session list` | 列出所有活跃会话 | `xbrowser session list` |
187
- | `session kill [--name <n>]` | 强制终止会话 | `xbrowser session kill --name work` |
185
+ | `session kill [--session <n>]` | 强制终止会话 | `xbrowser session kill --session work` |
188
186
 
189
187
  ### 页面导航
190
188
 
191
189
  | 命令 | 说明 | 示例 |
192
190
  |------|------|------|
193
- | `goto <url>` | 导航到指定 URL | `xbrowser goto https://example.com` |
191
+ | `goto <url>` / `open <url>` | 导航到指定 URL | `xbrowser goto https://example.com` |
194
192
  | `goto <url> --waitUntil networkidle` | 指定等待条件 | `xbrowser goto https://example.com --waitUntil networkidle` |
195
193
  | `back` | 浏览器后退 | `xbrowser back` |
196
194
  | `forward` | 浏览器前进 | `xbrowser forward` |
@@ -314,15 +312,6 @@ xbrowser --cdp auto "goto https://example.com , title"
314
312
  | `setViewport <width> <height>` | 设置视口大小 | `xbrowser setViewport 1920 1080` |
315
313
  | `setViewport 375 812 --isMobile true` | 移动设备模式 | `xbrowser setViewport 375 812 --isMobile true` |
316
314
 
317
- ### Daemon 进程
318
-
319
- | 命令 | 说明 | 示例 |
320
- |------|------|------|
321
- | `daemon start` | 启动 daemon | `xbrowser daemon start` |
322
- | `daemon start --port 9223` | 指定端口启动 | `xbrowser daemon start --port 9223` |
323
- | `daemon stop` | 停止 daemon | `xbrowser daemon stop` |
324
- | `daemon status` | 查看 daemon 状态 | `xbrowser daemon status` |
325
-
326
315
  ### 配置管理
327
316
 
328
317
  | 命令 | 说明 | 示例 |
@@ -458,7 +447,7 @@ project > browser > page > element
458
447
  命令执行前会自动检查 Scope 是否满足。不满足时会提示:
459
448
 
460
449
  ```
461
- Error: 需要活跃的页面,请先执行 xbrowser session open <url>
450
+ Error: 需要活跃的页面,请先执行 xbrowser goto <url>
462
451
  ```
463
452
 
464
453
  ## 插件系统
@@ -554,14 +543,14 @@ xbrowser 自带以下插件:
554
543
 
555
544
  ```bash
556
545
  # 百度搜索
557
- xbrowser session open https://www.baidu.com
546
+ xbrowser goto https://www.baidu.com
558
547
  xbrowser baidu search --query "AI 编程"
559
548
 
560
549
  # 百度热搜
561
550
  xbrowser baidu hotsearch
562
551
 
563
552
  # GitHub 资料获取
564
- xbrowser session open https://github.com
553
+ xbrowser goto https://github.com
565
554
  xbrowser github get-profile
566
555
  ```
567
556
 
@@ -570,8 +559,8 @@ xbrowser github get-profile
570
559
  ### 录制
571
560
 
572
561
  ```bash
573
- # 1. 打开会话
574
- xbrowser session open https://example.com
562
+ # 1. 打开会话(自动创建)
563
+ xbrowser goto https://example.com
575
564
 
576
565
  # 2. 开始录制
577
566
  xbrowser record start --url https://example.com
@@ -686,6 +675,8 @@ xbrowser filter raw.yaml clean.yaml --exclude hover_enter,hover_leave
686
675
  |------|------|--------|
687
676
  | `XBROWSER_CHROMIUM_PATH` | Chromium 可执行文件路径 | `/Applications/Chromium.app/Contents/MacOS/Chromium` |
688
677
  | `XBROWSER_DAEMON_PORT` | Daemon 端口 | `9222` |
678
+ | `XBROWSER_CDP` | 默认 CDP 连接地址(可被 `--cdp` 覆盖) | — |
679
+ | `XBROWSER_SESSION` | 默认会话名称(可被 `--session` 覆盖) | `default` |
689
680
 
690
681
  ### 命令行配置
691
682
 
@@ -812,7 +803,7 @@ done
812
803
  ### 示例 6:使用插件采集百度热搜
813
804
 
814
805
  ```bash
815
- xbrowser session open https://www.baidu.com
806
+ xbrowser goto https://www.baidu.com
816
807
  xbrowser baidu hotsearch --category tech
817
808
  xbrowser session close
818
809
  ```
@@ -856,7 +847,7 @@ npm run validate
856
847
  ```
857
848
  xbrowser/
858
849
  ├── src/
859
- │ ├── commands/ # 35 个浏览器命令定义
850
+ │ ├── commands/ # 49 个浏览器命令定义
860
851
  │ ├── builtins/ # CLI 内置命令(config, plugin, session, create)
861
852
  │ ├── recorder/ # 录制引擎(录制器 + 回放器)
862
853
  │ ├── session/ # 会话管理
@@ -885,7 +876,7 @@ xbrowser/
885
876
  | **Setup** | `npm i -g` — 0 config | Install + browser download | Install + browser download | Install + WebDriver + drivers |
886
877
  | **Web Scraping** | Built-in (`scrape`, `crawl`, `map`) | Write custom scripts | Write custom scripts | Write custom scripts |
887
878
  | **Search** | Built-in multi-engine (`search`) | No | No | No |
888
- | **Plugin Ecosystem** | 67+ plugins | Limited | Limited | No |
879
+ | **Plugin Ecosystem** | 69 plugins | Limited | Limited | No |
889
880
  | **No Code Required** | ✅ CLI commands | ❌ Must write JS/TS | ❌ Must write JS/TS | ❌ Must write code |
890
881
  | **Headless Mode** | ✅ Default | ✅ | ✅ | ✅ |
891
882
  | **Record/Replay** | ✅ Built-in (`record`/`replay`) | ✅ Codegen | ❌ | ❌ |
@@ -20,9 +20,10 @@ import {
20
20
  saveSessionDiskMeta,
21
21
  setActivePage,
22
22
  touchSession
23
- } from "./chunk-E4O5ZU3H.js";
24
- import "./chunk-T4J4C2NZ.js";
25
- import "./chunk-3RG5ZIWI.js";
23
+ } from "./chunk-QIK2I3VQ.js";
24
+ import "./chunk-PPG4D2EW.js";
25
+ import "./chunk-BBMRDUYQ.js";
26
+ import "./chunk-KFQGP6VL.js";
26
27
  export {
27
28
  closeAllSessions,
28
29
  closeEphemeralContext,
@@ -20,9 +20,9 @@ import {
20
20
  saveSessionDiskMeta,
21
21
  setActivePage,
22
22
  touchSession
23
- } from "./chunk-2BQZIT3S.js";
24
- import "./chunk-T4J4C2NZ.js";
25
- import "./chunk-3RG5ZIWI.js";
23
+ } from "./chunk-CAFNSGYM.js";
24
+ import "./chunk-BBMRDUYQ.js";
25
+ import "./chunk-KFQGP6VL.js";
26
26
  export {
27
27
  closeAllSessions,
28
28
  closeEphemeralContext,
@@ -20,11 +20,11 @@ import {
20
20
  saveSessionDiskMeta,
21
21
  setActivePage,
22
22
  touchSession
23
- } from "./chunk-YKOHDEFV.js";
24
- import "./chunk-42RPMJ76.js";
25
- import "./chunk-T4J4C2NZ.js";
23
+ } from "./chunk-JPA2ZT2R.js";
24
+ import "./chunk-PPG4D2EW.js";
25
+ import "./chunk-BBMRDUYQ.js";
26
26
  import "./chunk-ZZ2TFWIV.js";
27
- import "./chunk-3RG5ZIWI.js";
27
+ import "./chunk-KFQGP6VL.js";
28
28
  export {
29
29
  closeAllSessions,
30
30
  closeEphemeralContext,