@jackwener/opencli 1.1.0 → 1.2.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.
Files changed (769) hide show
  1. package/.agents/skills/cross-project-adapter-migration/SKILL.md +2 -2
  2. package/.github/pull_request_template.md +7 -0
  3. package/.github/workflows/doc-check.yml +36 -0
  4. package/.github/workflows/docs.yml +7 -42
  5. package/CHANGELOG.md +23 -0
  6. package/CLI-EXPLORER.md +9 -8
  7. package/CONTRIBUTING.md +39 -1
  8. package/README.md +33 -19
  9. package/README.zh-CN.md +64 -27
  10. package/SKILL.md +102 -33
  11. package/dist/browser/cdp.d.ts +4 -4
  12. package/dist/browser/cdp.js +45 -17
  13. package/dist/browser/daemon-client.d.ts +2 -1
  14. package/dist/browser/dom-helpers.js +38 -7
  15. package/dist/browser/dom-snapshot.d.ts +86 -0
  16. package/dist/browser/dom-snapshot.js +729 -0
  17. package/dist/browser/dom-snapshot.test.d.ts +11 -0
  18. package/dist/browser/dom-snapshot.test.js +212 -0
  19. package/dist/browser/index.d.ts +2 -0
  20. package/dist/browser/index.js +1 -0
  21. package/dist/browser/page.d.ts +18 -25
  22. package/dist/browser/page.js +44 -5
  23. package/dist/build-manifest.d.ts +11 -4
  24. package/dist/build-manifest.js +79 -34
  25. package/dist/build-manifest.test.js +58 -2
  26. package/dist/cli-manifest.json +4273 -1771
  27. package/dist/cli.d.ts +6 -0
  28. package/dist/cli.js +255 -162
  29. package/dist/clis/apple-podcasts/commands.test.d.ts +2 -0
  30. package/dist/clis/apple-podcasts/commands.test.js +76 -0
  31. package/dist/clis/apple-podcasts/search.js +2 -2
  32. package/dist/clis/apple-podcasts/top.js +9 -2
  33. package/dist/clis/arxiv/search.js +1 -1
  34. package/dist/clis/barchart/greeks.js +1 -1
  35. package/dist/clis/barchart/options.js +1 -1
  36. package/dist/clis/barchart/quote.js +1 -1
  37. package/dist/clis/bilibili/download.js +1 -1
  38. package/dist/clis/bilibili/dynamic.js +1 -1
  39. package/dist/clis/bilibili/favorite.js +1 -1
  40. package/dist/clis/bilibili/feed.js +1 -1
  41. package/dist/clis/bilibili/following.js +2 -2
  42. package/dist/clis/bilibili/history.js +1 -1
  43. package/dist/clis/bilibili/me.js +1 -1
  44. package/dist/clis/bilibili/ranking.js +1 -1
  45. package/dist/clis/bilibili/search.js +3 -3
  46. package/dist/clis/bilibili/subtitle.js +2 -2
  47. package/dist/clis/bilibili/user-videos.js +2 -2
  48. package/dist/{bilibili.d.ts → clis/bilibili/utils.d.ts} +1 -1
  49. package/dist/clis/bloomberg/businessweek.js +17 -0
  50. package/dist/clis/bloomberg/economics.js +17 -0
  51. package/dist/clis/bloomberg/feeds.d.ts +1 -0
  52. package/dist/clis/bloomberg/feeds.js +15 -0
  53. package/dist/clis/bloomberg/industries.d.ts +1 -0
  54. package/dist/clis/bloomberg/industries.js +17 -0
  55. package/dist/clis/bloomberg/main.d.ts +1 -0
  56. package/dist/clis/bloomberg/main.js +17 -0
  57. package/dist/clis/bloomberg/markets.d.ts +1 -0
  58. package/dist/clis/bloomberg/markets.js +17 -0
  59. package/dist/clis/bloomberg/news.d.ts +1 -0
  60. package/dist/clis/bloomberg/news.js +105 -0
  61. package/dist/clis/bloomberg/opinions.d.ts +1 -0
  62. package/dist/clis/bloomberg/opinions.js +17 -0
  63. package/dist/clis/bloomberg/politics.d.ts +1 -0
  64. package/dist/clis/bloomberg/politics.js +17 -0
  65. package/dist/clis/bloomberg/tech.d.ts +1 -0
  66. package/dist/clis/bloomberg/tech.js +17 -0
  67. package/dist/clis/bloomberg/utils.d.ts +34 -0
  68. package/dist/clis/bloomberg/utils.js +364 -0
  69. package/dist/clis/bloomberg/utils.test.d.ts +1 -0
  70. package/dist/clis/bloomberg/utils.test.js +129 -0
  71. package/dist/clis/boss/batchgreet.js +12 -99
  72. package/dist/clis/boss/chatlist.js +9 -26
  73. package/dist/clis/boss/chatmsg.js +11 -42
  74. package/dist/clis/boss/common.d.ts +92 -0
  75. package/dist/clis/boss/common.js +223 -0
  76. package/dist/clis/boss/detail.js +8 -50
  77. package/dist/clis/boss/exchange.js +13 -79
  78. package/dist/clis/boss/greet.js +20 -147
  79. package/dist/clis/boss/invite.js +26 -121
  80. package/dist/clis/boss/joblist.js +6 -31
  81. package/dist/clis/boss/mark.js +12 -85
  82. package/dist/clis/boss/recommend.js +10 -49
  83. package/dist/clis/boss/resume.js +18 -118
  84. package/dist/clis/boss/search.js +13 -61
  85. package/dist/clis/boss/send.js +18 -152
  86. package/dist/clis/boss/stats.js +20 -71
  87. package/dist/clis/chaoxing/assignments.js +1 -1
  88. package/dist/clis/chaoxing/exams.js +1 -1
  89. package/dist/{chaoxing.d.ts → clis/chaoxing/utils.d.ts} +1 -1
  90. package/dist/{chaoxing.js → clis/chaoxing/utils.js} +0 -2
  91. package/dist/clis/chaoxing/utils.test.d.ts +1 -0
  92. package/dist/{chaoxing.test.js → clis/chaoxing/utils.test.js} +1 -1
  93. package/dist/clis/chatgpt/read.js +1 -1
  94. package/dist/clis/chatwise/export.js +1 -1
  95. package/dist/clis/chatwise/model.js +2 -2
  96. package/dist/clis/chatwise/screenshot.js +1 -1
  97. package/dist/clis/codex/export.js +1 -1
  98. package/dist/clis/codex/model.js +2 -2
  99. package/dist/clis/codex/screenshot.js +1 -1
  100. package/dist/clis/coupang/add-to-cart.js +3 -4
  101. package/dist/clis/coupang/search.js +2 -4
  102. package/dist/clis/coupang/utils.test.d.ts +1 -0
  103. package/dist/{coupang.test.js → clis/coupang/utils.test.js} +1 -1
  104. package/dist/clis/ctrip/search.js +1 -1
  105. package/dist/clis/cursor/export.js +1 -1
  106. package/dist/clis/cursor/model.js +2 -2
  107. package/dist/clis/cursor/screenshot.js +1 -1
  108. package/dist/clis/devto/tag.yaml +34 -0
  109. package/dist/clis/devto/top.yaml +29 -0
  110. package/dist/clis/devto/user.yaml +33 -0
  111. package/dist/clis/douban/book-hot.d.ts +1 -0
  112. package/dist/clis/douban/book-hot.js +14 -0
  113. package/dist/clis/douban/marks.d.ts +1 -0
  114. package/dist/clis/douban/marks.js +115 -0
  115. package/dist/clis/douban/movie-hot.d.ts +1 -0
  116. package/dist/clis/douban/movie-hot.js +14 -0
  117. package/dist/clis/douban/reviews.d.ts +1 -0
  118. package/dist/clis/douban/reviews.js +106 -0
  119. package/dist/clis/douban/search.d.ts +1 -0
  120. package/dist/clis/douban/search.js +16 -0
  121. package/dist/clis/douban/shared.d.ts +4 -0
  122. package/dist/clis/douban/shared.js +155 -0
  123. package/dist/clis/douban/subject.yaml +76 -0
  124. package/dist/clis/douban/top250.yaml +70 -0
  125. package/dist/clis/douban/utils.d.ts +35 -0
  126. package/dist/clis/douban/utils.js +48 -0
  127. package/dist/clis/facebook/add-friend.yaml +43 -0
  128. package/dist/clis/facebook/events.yaml +44 -0
  129. package/dist/clis/facebook/feed.yaml +63 -0
  130. package/dist/clis/facebook/friends.yaml +42 -0
  131. package/dist/clis/facebook/groups.yaml +50 -0
  132. package/dist/clis/facebook/join-group.yaml +44 -0
  133. package/dist/clis/facebook/memories.yaml +39 -0
  134. package/dist/clis/facebook/notifications.yaml +40 -0
  135. package/dist/clis/facebook/profile.yaml +37 -0
  136. package/dist/clis/facebook/search.yaml +46 -0
  137. package/dist/clis/google/news.d.ts +5 -0
  138. package/dist/clis/google/news.js +58 -0
  139. package/dist/clis/google/search.d.ts +10 -0
  140. package/dist/clis/google/search.js +127 -0
  141. package/dist/clis/google/suggest.d.ts +5 -0
  142. package/dist/clis/google/suggest.js +34 -0
  143. package/dist/clis/google/trends.d.ts +5 -0
  144. package/dist/clis/google/trends.js +38 -0
  145. package/dist/clis/google/utils.d.ts +9 -0
  146. package/dist/clis/google/utils.js +23 -0
  147. package/dist/clis/google/utils.test.d.ts +1 -0
  148. package/dist/clis/google/utils.test.js +75 -0
  149. package/dist/clis/grok/ask.d.ts +14 -0
  150. package/dist/clis/grok/ask.js +257 -65
  151. package/dist/clis/grok/ask.test.d.ts +1 -0
  152. package/dist/clis/grok/ask.test.js +36 -0
  153. package/dist/clis/instagram/comment.yaml +52 -0
  154. package/dist/clis/instagram/explore.yaml +43 -0
  155. package/dist/clis/instagram/follow.yaml +41 -0
  156. package/dist/clis/instagram/followers.yaml +51 -0
  157. package/dist/clis/instagram/following.yaml +51 -0
  158. package/dist/clis/instagram/like.yaml +46 -0
  159. package/dist/clis/instagram/profile.yaml +42 -0
  160. package/dist/clis/instagram/save.yaml +46 -0
  161. package/dist/clis/instagram/saved.yaml +40 -0
  162. package/dist/clis/instagram/search.yaml +43 -0
  163. package/dist/clis/instagram/unfollow.yaml +38 -0
  164. package/dist/clis/instagram/unlike.yaml +46 -0
  165. package/dist/clis/instagram/unsave.yaml +46 -0
  166. package/dist/clis/instagram/user.yaml +54 -0
  167. package/dist/clis/jike/comment.js +2 -3
  168. package/dist/clis/jike/create.js +1 -2
  169. package/dist/clis/jike/feed.js +0 -1
  170. package/dist/clis/jike/like.js +1 -2
  171. package/dist/clis/jike/notifications.js +0 -1
  172. package/dist/clis/jike/post.yaml +1 -0
  173. package/dist/clis/jike/repost.js +2 -3
  174. package/dist/clis/jike/search.js +2 -3
  175. package/dist/clis/jike/topic.yaml +1 -0
  176. package/dist/clis/jike/user.yaml +1 -0
  177. package/dist/clis/jimeng/generate.yaml +1 -0
  178. package/dist/clis/jimeng/history.yaml +0 -1
  179. package/dist/clis/linkedin/search.js +7 -7
  180. package/dist/clis/linux-do/category.yaml +2 -0
  181. package/dist/clis/linux-do/search.yaml +4 -3
  182. package/dist/clis/linux-do/topic.yaml +1 -0
  183. package/dist/clis/lobsters/active.yaml +29 -0
  184. package/dist/clis/lobsters/hot.yaml +29 -0
  185. package/dist/clis/lobsters/newest.yaml +29 -0
  186. package/dist/clis/lobsters/tag.yaml +34 -0
  187. package/dist/clis/medium/feed.d.ts +1 -0
  188. package/dist/clis/medium/feed.js +15 -0
  189. package/dist/clis/medium/search.d.ts +1 -0
  190. package/dist/clis/medium/search.js +15 -0
  191. package/dist/clis/medium/shared.d.ts +5 -0
  192. package/dist/clis/medium/shared.js +78 -0
  193. package/dist/clis/medium/user.d.ts +1 -0
  194. package/dist/clis/medium/user.js +15 -0
  195. package/dist/clis/notion/export.js +1 -1
  196. package/dist/clis/reddit/comment.js +3 -4
  197. package/dist/clis/reddit/read.js +4 -5
  198. package/dist/clis/reddit/save.js +2 -3
  199. package/dist/clis/reddit/saved.js +0 -1
  200. package/dist/clis/reddit/search.yaml +1 -0
  201. package/dist/clis/reddit/subreddit.yaml +1 -0
  202. package/dist/clis/reddit/subscribe.js +1 -2
  203. package/dist/clis/reddit/upvote.js +2 -3
  204. package/dist/clis/reddit/upvoted.js +0 -1
  205. package/dist/clis/reddit/user-comments.yaml +1 -0
  206. package/dist/clis/reddit/user-posts.yaml +1 -0
  207. package/dist/clis/reddit/user.yaml +1 -0
  208. package/dist/clis/reuters/search.js +1 -1
  209. package/dist/clis/sinablog/article.d.ts +1 -0
  210. package/dist/clis/sinablog/article.js +14 -0
  211. package/dist/clis/sinablog/hot.d.ts +1 -0
  212. package/dist/clis/sinablog/hot.js +14 -0
  213. package/dist/clis/sinablog/search.d.ts +1 -0
  214. package/dist/clis/sinablog/search.js +51 -0
  215. package/dist/clis/sinablog/shared.d.ts +7 -0
  216. package/dist/clis/sinablog/shared.js +187 -0
  217. package/dist/clis/sinablog/user.d.ts +1 -0
  218. package/dist/clis/sinablog/user.js +15 -0
  219. package/dist/clis/smzdm/search.js +2 -3
  220. package/dist/clis/stackoverflow/search.yaml +1 -0
  221. package/dist/clis/steam/top-sellers.yaml +29 -0
  222. package/dist/clis/substack/feed.d.ts +1 -0
  223. package/dist/clis/substack/feed.js +15 -0
  224. package/dist/clis/substack/publication.d.ts +1 -0
  225. package/dist/clis/substack/publication.js +15 -0
  226. package/dist/clis/substack/search.d.ts +1 -0
  227. package/dist/clis/substack/search.js +77 -0
  228. package/dist/clis/substack/shared.d.ts +4 -0
  229. package/dist/clis/substack/shared.js +129 -0
  230. package/dist/clis/tiktok/comment.yaml +66 -0
  231. package/dist/clis/tiktok/explore.yaml +39 -0
  232. package/dist/clis/tiktok/follow.yaml +39 -0
  233. package/dist/clis/tiktok/following.yaml +46 -0
  234. package/dist/clis/tiktok/friends.yaml +47 -0
  235. package/dist/clis/tiktok/like.yaml +38 -0
  236. package/dist/clis/tiktok/live.yaml +51 -0
  237. package/dist/clis/tiktok/notifications.yaml +52 -0
  238. package/dist/clis/tiktok/profile.yaml +45 -0
  239. package/dist/clis/tiktok/save.yaml +34 -0
  240. package/dist/clis/tiktok/search.yaml +46 -0
  241. package/dist/clis/tiktok/unfollow.yaml +44 -0
  242. package/dist/clis/tiktok/unlike.yaml +38 -0
  243. package/dist/clis/tiktok/unsave.yaml +36 -0
  244. package/dist/clis/tiktok/user.yaml +44 -0
  245. package/dist/clis/twitter/accept.js +2 -2
  246. package/dist/clis/twitter/article.js +2 -2
  247. package/dist/clis/twitter/block.d.ts +1 -0
  248. package/dist/clis/twitter/block.js +88 -0
  249. package/dist/clis/twitter/delete.js +1 -1
  250. package/dist/clis/twitter/download.d.ts +1 -1
  251. package/dist/clis/twitter/download.js +3 -3
  252. package/dist/clis/twitter/followers.js +1 -1
  253. package/dist/clis/twitter/following.js +1 -1
  254. package/dist/clis/twitter/hide-reply.d.ts +1 -0
  255. package/dist/clis/twitter/hide-reply.js +66 -0
  256. package/dist/clis/twitter/like.js +1 -1
  257. package/dist/clis/twitter/post.js +1 -1
  258. package/dist/clis/twitter/reply-dm.js +1 -1
  259. package/dist/clis/twitter/reply.js +2 -2
  260. package/dist/clis/twitter/search.js +1 -1
  261. package/dist/clis/twitter/thread.js +2 -2
  262. package/dist/clis/twitter/timeline.d.ts +23 -0
  263. package/dist/clis/twitter/timeline.js +42 -14
  264. package/dist/clis/twitter/timeline.test.d.ts +1 -0
  265. package/dist/clis/twitter/timeline.test.js +102 -0
  266. package/dist/clis/twitter/trending.d.ts +1 -0
  267. package/dist/clis/twitter/trending.js +91 -0
  268. package/dist/clis/twitter/unblock.d.ts +1 -0
  269. package/dist/clis/twitter/unblock.js +71 -0
  270. package/dist/clis/v2ex/topic.yaml +1 -0
  271. package/dist/clis/weibo/hot.js +0 -1
  272. package/dist/clis/weread/book.js +1 -1
  273. package/dist/clis/weread/highlights.js +1 -1
  274. package/dist/clis/weread/notes.js +1 -1
  275. package/dist/clis/weread/search.js +1 -1
  276. package/dist/clis/wikipedia/random.d.ts +1 -0
  277. package/dist/clis/wikipedia/random.js +19 -0
  278. package/dist/clis/wikipedia/search.js +4 -4
  279. package/dist/clis/wikipedia/summary.js +4 -9
  280. package/dist/clis/wikipedia/trending.d.ts +1 -0
  281. package/dist/clis/wikipedia/trending.js +35 -0
  282. package/dist/clis/wikipedia/utils.d.ts +28 -0
  283. package/dist/clis/wikipedia/utils.js +13 -0
  284. package/dist/clis/xiaohongshu/creator-note-detail.d.ts +15 -0
  285. package/dist/clis/xiaohongshu/creator-note-detail.js +69 -5
  286. package/dist/clis/xiaohongshu/creator-note-detail.test.js +82 -33
  287. package/dist/clis/xiaohongshu/creator-notes.js +35 -5
  288. package/dist/clis/xiaohongshu/creator-notes.test.js +37 -6
  289. package/dist/clis/xiaohongshu/creator-profile.js +0 -1
  290. package/dist/clis/xiaohongshu/creator-stats.js +0 -1
  291. package/dist/clis/xiaohongshu/download.js +2 -3
  292. package/dist/clis/xiaohongshu/feed.yaml +0 -1
  293. package/dist/clis/xiaohongshu/notifications.yaml +0 -1
  294. package/dist/clis/xiaohongshu/search.js +2 -2
  295. package/dist/clis/xiaohongshu/user.js +1 -2
  296. package/dist/clis/xueqiu/earnings-date.yaml +69 -0
  297. package/dist/clis/xueqiu/search.yaml +2 -1
  298. package/dist/clis/xueqiu/stock.yaml +2 -0
  299. package/dist/clis/yahoo-finance/quote.js +1 -2
  300. package/dist/clis/youtube/search.js +1 -1
  301. package/dist/clis/youtube/transcript.js +1 -1
  302. package/dist/clis/youtube/video.js +1 -1
  303. package/dist/clis/zhihu/download.js +1 -2
  304. package/dist/clis/zhihu/question.js +1 -1
  305. package/dist/clis/zhihu/search.yaml +4 -3
  306. package/dist/commanderAdapter.d.ts +21 -0
  307. package/dist/commanderAdapter.js +117 -0
  308. package/dist/{engine.d.ts → discovery.d.ts} +6 -4
  309. package/dist/{engine.js → discovery.js} +93 -104
  310. package/dist/doctor.js +3 -1
  311. package/dist/doctor.test.js +46 -2
  312. package/dist/download/index.d.ts +2 -6
  313. package/dist/download/index.js +19 -46
  314. package/dist/engine.test.d.ts +0 -3
  315. package/dist/engine.test.js +80 -11
  316. package/dist/execution.d.ts +24 -0
  317. package/dist/execution.js +153 -0
  318. package/dist/explore.d.ts +76 -3
  319. package/dist/explore.js +132 -111
  320. package/dist/external-clis.yaml +48 -0
  321. package/dist/external.d.ts +7 -2
  322. package/dist/external.js +11 -14
  323. package/dist/generate.d.ts +41 -2
  324. package/dist/generate.js +5 -4
  325. package/dist/main.js +2 -1
  326. package/dist/pipeline/executor.d.ts +2 -2
  327. package/dist/pipeline/executor.js +2 -2
  328. package/dist/pipeline/executor.test.js +33 -6
  329. package/dist/pipeline/registry.d.ts +1 -1
  330. package/dist/pipeline/steps/browser.d.ts +7 -7
  331. package/dist/pipeline/steps/browser.js +21 -7
  332. package/dist/pipeline/steps/fetch.d.ts +1 -1
  333. package/dist/pipeline/steps/fetch.js +11 -7
  334. package/dist/pipeline/steps/transform.d.ts +6 -5
  335. package/dist/pipeline/steps/transform.js +30 -9
  336. package/dist/pipeline/template.d.ts +6 -6
  337. package/dist/pipeline/template.js +43 -5
  338. package/dist/pipeline/template.test.js +18 -0
  339. package/dist/pipeline/transform.test.js +11 -0
  340. package/dist/plugin.d.ts +31 -0
  341. package/dist/plugin.js +216 -0
  342. package/dist/plugin.test.d.ts +4 -0
  343. package/dist/plugin.test.js +76 -0
  344. package/dist/registry-api.d.ts +11 -0
  345. package/dist/registry-api.js +9 -0
  346. package/dist/registry.d.ts +13 -0
  347. package/dist/registry.js +8 -1
  348. package/dist/runtime.d.ts +5 -0
  349. package/dist/runtime.js +8 -0
  350. package/dist/serialization.d.ts +34 -0
  351. package/dist/serialization.js +63 -0
  352. package/dist/synthesize.d.ts +94 -4
  353. package/dist/synthesize.js +5 -4
  354. package/dist/types.d.ts +43 -27
  355. package/dist/validate.js +8 -2
  356. package/docs/.vitepress/config.mts +20 -7
  357. package/docs/adapters/browser/arxiv.md +27 -0
  358. package/docs/adapters/browser/barchart.md +33 -0
  359. package/docs/adapters/browser/bilibili.md +9 -0
  360. package/docs/adapters/browser/bloomberg.md +70 -0
  361. package/docs/adapters/browser/chaoxing.md +39 -0
  362. package/docs/adapters/browser/devto.md +35 -0
  363. package/docs/adapters/browser/douban.md +38 -0
  364. package/docs/adapters/browser/facebook.md +36 -0
  365. package/docs/adapters/browser/google.md +62 -0
  366. package/docs/adapters/browser/grok.md +53 -0
  367. package/docs/adapters/browser/hf.md +42 -0
  368. package/docs/adapters/browser/instagram.md +46 -0
  369. package/docs/adapters/browser/jike.md +45 -0
  370. package/docs/adapters/browser/jimeng.md +39 -0
  371. package/docs/adapters/browser/linux-do.md +45 -0
  372. package/docs/adapters/browser/lobsters.md +32 -0
  373. package/docs/adapters/browser/medium.md +32 -0
  374. package/docs/adapters/browser/reddit.md +9 -0
  375. package/docs/adapters/browser/sinablog.md +36 -0
  376. package/docs/adapters/browser/sinafinance.md +35 -0
  377. package/docs/adapters/browser/stackoverflow.md +35 -0
  378. package/docs/adapters/browser/steam.md +26 -0
  379. package/docs/adapters/browser/substack.md +38 -0
  380. package/docs/adapters/browser/tiktok.md +68 -0
  381. package/docs/adapters/browser/twitter.md +3 -0
  382. package/docs/adapters/browser/weread.md +48 -0
  383. package/docs/adapters/browser/wikipedia.md +39 -0
  384. package/docs/adapters/browser/xiaohongshu.md +5 -1
  385. package/docs/adapters/browser/xueqiu.md +10 -0
  386. package/docs/adapters/browser/yahoo-finance.md +6 -5
  387. package/docs/adapters/desktop/antigravity.md +6 -0
  388. package/docs/adapters/desktop/chatgpt.md +5 -4
  389. package/docs/adapters/desktop/codex.md +5 -1
  390. package/docs/adapters/desktop/cursor.md +4 -0
  391. package/docs/adapters/desktop/discord.md +7 -7
  392. package/docs/adapters/index.md +14 -4
  393. package/docs/advanced/download.md +4 -4
  394. package/docs/developer/architecture.md +17 -4
  395. package/docs/guide/getting-started.md +1 -0
  396. package/docs/guide/plugins.md +153 -0
  397. package/docs/zh/guide/plugins.md +107 -0
  398. package/extension/src/background.ts +18 -11
  399. package/package.json +10 -5
  400. package/scripts/check-doc-coverage.sh +69 -0
  401. package/scripts/clean-dist.cjs +13 -0
  402. package/scripts/copy-yaml.cjs +7 -0
  403. package/src/browser/cdp.ts +77 -32
  404. package/src/browser/daemon-client.ts +2 -1
  405. package/src/browser/dom-helpers.ts +38 -7
  406. package/src/browser/dom-snapshot.test.ts +249 -0
  407. package/src/browser/dom-snapshot.ts +770 -0
  408. package/src/browser/index.ts +2 -0
  409. package/src/browser/page.ts +57 -20
  410. package/src/build-manifest.test.ts +70 -2
  411. package/src/build-manifest.ts +114 -40
  412. package/src/cli.ts +287 -139
  413. package/src/clis/apple-podcasts/commands.test.ts +95 -0
  414. package/src/clis/apple-podcasts/search.ts +2 -2
  415. package/src/clis/apple-podcasts/top.ts +12 -2
  416. package/src/clis/arxiv/search.ts +1 -1
  417. package/src/clis/barchart/greeks.ts +1 -1
  418. package/src/clis/barchart/options.ts +1 -1
  419. package/src/clis/barchart/quote.ts +1 -1
  420. package/src/clis/bilibili/download.ts +1 -1
  421. package/src/clis/bilibili/dynamic.ts +1 -1
  422. package/src/clis/bilibili/favorite.ts +1 -1
  423. package/src/clis/bilibili/feed.ts +1 -1
  424. package/src/clis/bilibili/following.ts +2 -2
  425. package/src/clis/bilibili/history.ts +1 -1
  426. package/src/clis/bilibili/me.ts +1 -1
  427. package/src/clis/bilibili/ranking.ts +1 -1
  428. package/src/clis/bilibili/search.ts +3 -3
  429. package/src/clis/bilibili/subtitle.ts +2 -2
  430. package/src/clis/bilibili/user-videos.ts +2 -2
  431. package/src/{bilibili.ts → clis/bilibili/utils.ts} +1 -1
  432. package/src/clis/bloomberg/businessweek.ts +18 -0
  433. package/src/clis/bloomberg/economics.ts +18 -0
  434. package/src/clis/bloomberg/feeds.ts +16 -0
  435. package/src/clis/bloomberg/industries.ts +18 -0
  436. package/src/clis/bloomberg/main.ts +18 -0
  437. package/src/clis/bloomberg/markets.ts +18 -0
  438. package/src/clis/bloomberg/news.ts +136 -0
  439. package/src/clis/bloomberg/opinions.ts +18 -0
  440. package/src/clis/bloomberg/politics.ts +18 -0
  441. package/src/clis/bloomberg/tech.ts +18 -0
  442. package/src/clis/bloomberg/utils.test.ts +135 -0
  443. package/src/clis/bloomberg/utils.ts +429 -0
  444. package/src/clis/boss/batchgreet.ts +16 -108
  445. package/src/clis/boss/chatlist.ts +13 -27
  446. package/src/clis/boss/chatmsg.ts +16 -40
  447. package/src/clis/boss/common.ts +287 -0
  448. package/src/clis/boss/detail.ts +9 -55
  449. package/src/clis/boss/exchange.ts +15 -89
  450. package/src/clis/boss/greet.ts +25 -162
  451. package/src/clis/boss/invite.ts +36 -133
  452. package/src/clis/boss/joblist.ts +7 -36
  453. package/src/clis/boss/mark.ts +13 -94
  454. package/src/clis/boss/recommend.ts +12 -57
  455. package/src/clis/boss/resume.ts +19 -124
  456. package/src/clis/boss/search.ts +14 -67
  457. package/src/clis/boss/send.ts +22 -162
  458. package/src/clis/boss/stats.ts +21 -76
  459. package/src/clis/chaoxing/assignments.ts +1 -1
  460. package/src/clis/chaoxing/exams.ts +1 -1
  461. package/src/{chaoxing.test.ts → clis/chaoxing/utils.test.ts} +1 -1
  462. package/src/{chaoxing.ts → clis/chaoxing/utils.ts} +1 -3
  463. package/src/clis/chatgpt/read.ts +1 -1
  464. package/src/clis/chatwise/export.ts +1 -1
  465. package/src/clis/chatwise/model.ts +2 -2
  466. package/src/clis/chatwise/screenshot.ts +1 -1
  467. package/src/clis/codex/export.ts +1 -1
  468. package/src/clis/codex/model.ts +2 -2
  469. package/src/clis/codex/screenshot.ts +1 -1
  470. package/src/clis/coupang/add-to-cart.ts +3 -4
  471. package/src/clis/coupang/search.ts +2 -4
  472. package/src/{coupang.test.ts → clis/coupang/utils.test.ts} +1 -1
  473. package/src/clis/ctrip/search.ts +1 -1
  474. package/src/clis/cursor/export.ts +1 -1
  475. package/src/clis/cursor/model.ts +2 -2
  476. package/src/clis/cursor/screenshot.ts +1 -1
  477. package/src/clis/devto/tag.yaml +34 -0
  478. package/src/clis/devto/top.yaml +29 -0
  479. package/src/clis/devto/user.yaml +33 -0
  480. package/src/clis/douban/book-hot.ts +15 -0
  481. package/src/clis/douban/marks.ts +135 -0
  482. package/src/clis/douban/movie-hot.ts +15 -0
  483. package/src/clis/douban/reviews.ts +127 -0
  484. package/src/clis/douban/search.ts +17 -0
  485. package/src/clis/douban/shared.ts +165 -0
  486. package/src/clis/douban/subject.yaml +76 -0
  487. package/src/clis/douban/top250.yaml +70 -0
  488. package/src/clis/douban/utils.ts +81 -0
  489. package/src/clis/facebook/add-friend.yaml +43 -0
  490. package/src/clis/facebook/events.yaml +44 -0
  491. package/src/clis/facebook/feed.yaml +63 -0
  492. package/src/clis/facebook/friends.yaml +42 -0
  493. package/src/clis/facebook/groups.yaml +50 -0
  494. package/src/clis/facebook/join-group.yaml +44 -0
  495. package/src/clis/facebook/memories.yaml +39 -0
  496. package/src/clis/facebook/notifications.yaml +40 -0
  497. package/src/clis/facebook/profile.yaml +37 -0
  498. package/src/clis/facebook/search.yaml +46 -0
  499. package/src/clis/google/news.ts +66 -0
  500. package/src/clis/google/search.ts +133 -0
  501. package/src/clis/google/suggest.ts +40 -0
  502. package/src/clis/google/trends.ts +44 -0
  503. package/src/clis/google/utils.test.ts +82 -0
  504. package/src/clis/google/utils.ts +24 -0
  505. package/src/clis/grok/ask.test.ts +53 -0
  506. package/src/clis/grok/ask.ts +300 -69
  507. package/src/clis/instagram/comment.yaml +52 -0
  508. package/src/clis/instagram/explore.yaml +43 -0
  509. package/src/clis/instagram/follow.yaml +41 -0
  510. package/src/clis/instagram/followers.yaml +51 -0
  511. package/src/clis/instagram/following.yaml +51 -0
  512. package/src/clis/instagram/like.yaml +46 -0
  513. package/src/clis/instagram/profile.yaml +42 -0
  514. package/src/clis/instagram/save.yaml +46 -0
  515. package/src/clis/instagram/saved.yaml +40 -0
  516. package/src/clis/instagram/search.yaml +43 -0
  517. package/src/clis/instagram/unfollow.yaml +38 -0
  518. package/src/clis/instagram/unlike.yaml +46 -0
  519. package/src/clis/instagram/unsave.yaml +46 -0
  520. package/src/clis/instagram/user.yaml +54 -0
  521. package/src/clis/jike/comment.ts +2 -3
  522. package/src/clis/jike/create.ts +1 -2
  523. package/src/clis/jike/feed.ts +0 -1
  524. package/src/clis/jike/like.ts +1 -2
  525. package/src/clis/jike/notifications.ts +0 -1
  526. package/src/clis/jike/post.yaml +1 -0
  527. package/src/clis/jike/repost.ts +2 -3
  528. package/src/clis/jike/search.ts +2 -3
  529. package/src/clis/jike/topic.yaml +1 -0
  530. package/src/clis/jike/user.yaml +1 -0
  531. package/src/clis/jimeng/generate.yaml +1 -0
  532. package/src/clis/jimeng/history.yaml +0 -1
  533. package/src/clis/linkedin/search.ts +7 -7
  534. package/src/clis/linux-do/category.yaml +2 -0
  535. package/src/clis/linux-do/search.yaml +4 -3
  536. package/src/clis/linux-do/topic.yaml +1 -0
  537. package/src/clis/lobsters/active.yaml +29 -0
  538. package/src/clis/lobsters/hot.yaml +29 -0
  539. package/src/clis/lobsters/newest.yaml +29 -0
  540. package/src/clis/lobsters/tag.yaml +34 -0
  541. package/src/clis/medium/feed.ts +16 -0
  542. package/src/clis/medium/search.ts +16 -0
  543. package/src/clis/medium/shared.ts +83 -0
  544. package/src/clis/medium/user.ts +16 -0
  545. package/src/clis/notion/export.ts +1 -1
  546. package/src/clis/reddit/comment.ts +3 -4
  547. package/src/clis/reddit/read.ts +4 -5
  548. package/src/clis/reddit/save.ts +2 -3
  549. package/src/clis/reddit/saved.ts +0 -1
  550. package/src/clis/reddit/search.yaml +1 -0
  551. package/src/clis/reddit/subreddit.yaml +1 -0
  552. package/src/clis/reddit/subscribe.ts +1 -2
  553. package/src/clis/reddit/upvote.ts +2 -3
  554. package/src/clis/reddit/upvoted.ts +0 -1
  555. package/src/clis/reddit/user-comments.yaml +1 -0
  556. package/src/clis/reddit/user-posts.yaml +1 -0
  557. package/src/clis/reddit/user.yaml +1 -0
  558. package/src/clis/reuters/search.ts +1 -1
  559. package/src/clis/sinablog/article.ts +15 -0
  560. package/src/clis/sinablog/hot.ts +15 -0
  561. package/src/clis/sinablog/search.ts +56 -0
  562. package/src/clis/sinablog/shared.ts +198 -0
  563. package/src/clis/sinablog/user.ts +16 -0
  564. package/src/clis/smzdm/search.ts +2 -3
  565. package/src/clis/stackoverflow/search.yaml +1 -0
  566. package/src/clis/steam/top-sellers.yaml +29 -0
  567. package/src/clis/substack/feed.ts +16 -0
  568. package/src/clis/substack/publication.ts +16 -0
  569. package/src/clis/substack/search.ts +91 -0
  570. package/src/clis/substack/shared.ts +132 -0
  571. package/src/clis/tiktok/comment.yaml +66 -0
  572. package/src/clis/tiktok/explore.yaml +39 -0
  573. package/src/clis/tiktok/follow.yaml +39 -0
  574. package/src/clis/tiktok/following.yaml +46 -0
  575. package/src/clis/tiktok/friends.yaml +47 -0
  576. package/src/clis/tiktok/like.yaml +38 -0
  577. package/src/clis/tiktok/live.yaml +51 -0
  578. package/src/clis/tiktok/notifications.yaml +52 -0
  579. package/src/clis/tiktok/profile.yaml +45 -0
  580. package/src/clis/tiktok/save.yaml +34 -0
  581. package/src/clis/tiktok/search.yaml +46 -0
  582. package/src/clis/tiktok/unfollow.yaml +44 -0
  583. package/src/clis/tiktok/unlike.yaml +38 -0
  584. package/src/clis/tiktok/unsave.yaml +36 -0
  585. package/src/clis/tiktok/user.yaml +44 -0
  586. package/src/clis/twitter/accept.ts +2 -2
  587. package/src/clis/twitter/article.ts +2 -2
  588. package/src/clis/twitter/block.ts +92 -0
  589. package/src/clis/twitter/delete.ts +1 -1
  590. package/src/clis/twitter/download.ts +3 -3
  591. package/src/clis/twitter/followers.ts +1 -1
  592. package/src/clis/twitter/following.ts +1 -1
  593. package/src/clis/twitter/hide-reply.ts +70 -0
  594. package/src/clis/twitter/like.ts +1 -1
  595. package/src/clis/twitter/post.ts +1 -1
  596. package/src/clis/twitter/reply-dm.ts +1 -1
  597. package/src/clis/twitter/reply.ts +2 -2
  598. package/src/clis/twitter/search.ts +1 -1
  599. package/src/clis/twitter/thread.ts +2 -2
  600. package/src/clis/twitter/timeline.test.ts +109 -0
  601. package/src/clis/twitter/timeline.ts +59 -19
  602. package/src/clis/twitter/trending.ts +113 -0
  603. package/src/clis/twitter/unblock.ts +75 -0
  604. package/src/clis/v2ex/topic.yaml +1 -0
  605. package/src/clis/weibo/hot.ts +0 -1
  606. package/src/clis/weread/book.ts +1 -1
  607. package/src/clis/weread/highlights.ts +1 -1
  608. package/src/clis/weread/notes.ts +1 -1
  609. package/src/clis/weread/search.ts +1 -1
  610. package/src/clis/wikipedia/random.ts +19 -0
  611. package/src/clis/wikipedia/search.ts +11 -5
  612. package/src/clis/wikipedia/summary.ts +4 -9
  613. package/src/clis/wikipedia/trending.ts +41 -0
  614. package/src/clis/wikipedia/utils.ts +31 -0
  615. package/src/clis/xiaohongshu/creator-note-detail.test.ts +84 -33
  616. package/src/clis/xiaohongshu/creator-note-detail.ts +89 -5
  617. package/src/clis/xiaohongshu/creator-notes.test.ts +41 -6
  618. package/src/clis/xiaohongshu/creator-notes.ts +44 -5
  619. package/src/clis/xiaohongshu/creator-profile.ts +0 -1
  620. package/src/clis/xiaohongshu/creator-stats.ts +0 -1
  621. package/src/clis/xiaohongshu/download.ts +2 -3
  622. package/src/clis/xiaohongshu/feed.yaml +0 -1
  623. package/src/clis/xiaohongshu/notifications.yaml +0 -1
  624. package/src/clis/xiaohongshu/search.ts +2 -2
  625. package/src/clis/xiaohongshu/user.ts +1 -2
  626. package/src/clis/xueqiu/earnings-date.yaml +69 -0
  627. package/src/clis/xueqiu/search.yaml +2 -1
  628. package/src/clis/xueqiu/stock.yaml +2 -0
  629. package/src/clis/yahoo-finance/quote.ts +1 -2
  630. package/src/clis/youtube/search.ts +1 -1
  631. package/src/clis/youtube/transcript.ts +1 -1
  632. package/src/clis/youtube/video.ts +1 -1
  633. package/src/clis/zhihu/download.ts +1 -2
  634. package/src/clis/zhihu/question.ts +1 -1
  635. package/src/clis/zhihu/search.yaml +4 -3
  636. package/src/commanderAdapter.ts +120 -0
  637. package/src/discovery.ts +277 -0
  638. package/src/doctor.test.ts +59 -2
  639. package/src/doctor.ts +4 -2
  640. package/src/download/index.ts +21 -54
  641. package/src/engine.test.ts +85 -11
  642. package/src/execution.ts +164 -0
  643. package/src/explore.ts +211 -117
  644. package/src/external-clis.yaml +9 -0
  645. package/src/external.ts +15 -12
  646. package/src/generate.ts +58 -9
  647. package/src/main.ts +2 -1
  648. package/src/pipeline/executor.test.ts +35 -6
  649. package/src/pipeline/executor.ts +11 -7
  650. package/src/pipeline/registry.ts +3 -3
  651. package/src/pipeline/steps/browser.ts +29 -15
  652. package/src/pipeline/steps/fetch.ts +18 -13
  653. package/src/pipeline/steps/transform.ts +40 -15
  654. package/src/pipeline/template.test.ts +18 -0
  655. package/src/pipeline/template.ts +86 -13
  656. package/src/pipeline/transform.test.ts +15 -2
  657. package/src/plugin.test.ts +86 -0
  658. package/src/plugin.ts +254 -0
  659. package/src/registry-api.ts +12 -0
  660. package/src/registry.ts +24 -1
  661. package/src/runtime.ts +9 -0
  662. package/src/serialization.ts +79 -0
  663. package/src/synthesize.ts +102 -21
  664. package/src/types.ts +45 -13
  665. package/src/validate.ts +19 -4
  666. package/tests/e2e/browser-public.test.ts +36 -0
  667. package/tests/e2e/public-commands.test.ts +119 -1
  668. package/dist/clis/feishu/new.d.ts +0 -1
  669. package/dist/clis/feishu/new.js +0 -27
  670. package/dist/clis/feishu/read.d.ts +0 -1
  671. package/dist/clis/feishu/read.js +0 -40
  672. package/dist/clis/feishu/search.d.ts +0 -1
  673. package/dist/clis/feishu/search.js +0 -30
  674. package/dist/clis/feishu/send.d.ts +0 -1
  675. package/dist/clis/feishu/send.js +0 -39
  676. package/dist/clis/feishu/status.d.ts +0 -1
  677. package/dist/clis/feishu/status.js +0 -28
  678. package/dist/clis/neteasemusic/like.d.ts +0 -1
  679. package/dist/clis/neteasemusic/like.js +0 -25
  680. package/dist/clis/neteasemusic/lyrics.d.ts +0 -1
  681. package/dist/clis/neteasemusic/lyrics.js +0 -47
  682. package/dist/clis/neteasemusic/next.d.ts +0 -1
  683. package/dist/clis/neteasemusic/next.js +0 -26
  684. package/dist/clis/neteasemusic/play.d.ts +0 -1
  685. package/dist/clis/neteasemusic/play.js +0 -26
  686. package/dist/clis/neteasemusic/playing.d.ts +0 -1
  687. package/dist/clis/neteasemusic/playing.js +0 -59
  688. package/dist/clis/neteasemusic/playlist.d.ts +0 -1
  689. package/dist/clis/neteasemusic/playlist.js +0 -46
  690. package/dist/clis/neteasemusic/prev.d.ts +0 -1
  691. package/dist/clis/neteasemusic/prev.js +0 -25
  692. package/dist/clis/neteasemusic/search.d.ts +0 -1
  693. package/dist/clis/neteasemusic/search.js +0 -52
  694. package/dist/clis/neteasemusic/status.d.ts +0 -1
  695. package/dist/clis/neteasemusic/status.js +0 -16
  696. package/dist/clis/neteasemusic/volume.d.ts +0 -1
  697. package/dist/clis/neteasemusic/volume.js +0 -54
  698. package/dist/clis/twitter/trending.yaml +0 -46
  699. package/dist/clis/wechat/chats.d.ts +0 -1
  700. package/dist/clis/wechat/chats.js +0 -28
  701. package/dist/clis/wechat/contacts.d.ts +0 -1
  702. package/dist/clis/wechat/contacts.js +0 -28
  703. package/dist/clis/wechat/read.d.ts +0 -1
  704. package/dist/clis/wechat/read.js +0 -58
  705. package/dist/clis/wechat/search.d.ts +0 -1
  706. package/dist/clis/wechat/search.js +0 -31
  707. package/dist/clis/wechat/send.d.ts +0 -1
  708. package/dist/clis/wechat/send.js +0 -42
  709. package/dist/clis/wechat/status.d.ts +0 -1
  710. package/dist/clis/wechat/status.js +0 -29
  711. package/dist/pipeline.d.ts +0 -7
  712. package/dist/pipeline.js +0 -7
  713. package/docs/adapters/browser/github.md +0 -26
  714. package/docs/adapters/desktop/feishu.md +0 -20
  715. package/docs/adapters/desktop/neteasemusic.md +0 -31
  716. package/docs/adapters/desktop/wechat.md +0 -28
  717. package/docs/public/CNAME +0 -1
  718. package/src/clis/antigravity/README.md +0 -5
  719. package/src/clis/antigravity/README.zh-CN.md +0 -51
  720. package/src/clis/chaoxing/README.md +0 -14
  721. package/src/clis/chaoxing/README.zh-CN.md +0 -35
  722. package/src/clis/chatgpt/README.md +0 -5
  723. package/src/clis/chatgpt/README.zh-CN.md +0 -44
  724. package/src/clis/chatwise/README.md +0 -5
  725. package/src/clis/chatwise/README.zh-CN.md +0 -38
  726. package/src/clis/codex/README.md +0 -5
  727. package/src/clis/codex/README.zh-CN.md +0 -33
  728. package/src/clis/cursor/README.md +0 -5
  729. package/src/clis/cursor/README.zh-CN.md +0 -33
  730. package/src/clis/discord-app/README.md +0 -5
  731. package/src/clis/discord-app/README.zh-CN.md +0 -28
  732. package/src/clis/feishu/README.md +0 -5
  733. package/src/clis/feishu/README.zh-CN.md +0 -20
  734. package/src/clis/feishu/new.ts +0 -32
  735. package/src/clis/feishu/read.ts +0 -48
  736. package/src/clis/feishu/search.ts +0 -35
  737. package/src/clis/feishu/send.ts +0 -46
  738. package/src/clis/feishu/status.ts +0 -34
  739. package/src/clis/neteasemusic/README.md +0 -5
  740. package/src/clis/neteasemusic/README.zh-CN.md +0 -31
  741. package/src/clis/neteasemusic/like.ts +0 -28
  742. package/src/clis/neteasemusic/lyrics.ts +0 -53
  743. package/src/clis/neteasemusic/next.ts +0 -30
  744. package/src/clis/neteasemusic/play.ts +0 -30
  745. package/src/clis/neteasemusic/playing.ts +0 -62
  746. package/src/clis/neteasemusic/playlist.ts +0 -51
  747. package/src/clis/neteasemusic/prev.ts +0 -29
  748. package/src/clis/neteasemusic/search.ts +0 -58
  749. package/src/clis/neteasemusic/status.ts +0 -18
  750. package/src/clis/neteasemusic/volume.ts +0 -61
  751. package/src/clis/notion/README.md +0 -5
  752. package/src/clis/notion/README.zh-CN.md +0 -29
  753. package/src/clis/twitter/trending.yaml +0 -46
  754. package/src/clis/wechat/README.md +0 -5
  755. package/src/clis/wechat/README.zh-CN.md +0 -28
  756. package/src/clis/wechat/chats.ts +0 -33
  757. package/src/clis/wechat/contacts.ts +0 -33
  758. package/src/clis/wechat/read.ts +0 -72
  759. package/src/clis/wechat/search.ts +0 -36
  760. package/src/clis/wechat/send.ts +0 -49
  761. package/src/clis/wechat/status.ts +0 -35
  762. package/src/engine.ts +0 -274
  763. package/src/pipeline.ts +0 -8
  764. /package/dist/{bilibili.js → clis/bilibili/utils.js} +0 -0
  765. /package/dist/{chaoxing.test.d.ts → clis/bloomberg/businessweek.d.ts} +0 -0
  766. /package/dist/{coupang.test.d.ts → clis/bloomberg/economics.d.ts} +0 -0
  767. /package/dist/{coupang.d.ts → clis/coupang/utils.d.ts} +0 -0
  768. /package/dist/{coupang.js → clis/coupang/utils.js} +0 -0
  769. /package/src/{coupang.ts → clis/coupang/utils.ts} +0 -0
package/dist/types.d.ts CHANGED
@@ -4,35 +4,56 @@
4
4
  * All pipeline steps and CLI adapters should use this interface
5
5
  * instead of `any` for browser interactions.
6
6
  */
7
+ export interface BrowserCookie {
8
+ name: string;
9
+ value: string;
10
+ domain: string;
11
+ path?: string;
12
+ secure?: boolean;
13
+ httpOnly?: boolean;
14
+ expirationDate?: number;
15
+ }
16
+ export interface SnapshotOptions {
17
+ interactive?: boolean;
18
+ compact?: boolean;
19
+ maxDepth?: number;
20
+ raw?: boolean;
21
+ viewportExpand?: number;
22
+ maxTextLength?: number;
23
+ }
24
+ export interface WaitOptions {
25
+ text?: string;
26
+ time?: number;
27
+ timeout?: number;
28
+ }
29
+ export interface ScreenshotOptions {
30
+ format?: 'png' | 'jpeg';
31
+ quality?: number;
32
+ fullPage?: boolean;
33
+ path?: string;
34
+ }
35
+ export interface BrowserSessionInfo {
36
+ workspace?: string;
37
+ connected?: boolean;
38
+ [key: string]: unknown;
39
+ }
7
40
  export interface IPage {
8
- goto(url: string): Promise<void>;
41
+ goto(url: string, options?: {
42
+ waitUntil?: 'load' | 'none';
43
+ settleMs?: number;
44
+ }): Promise<void>;
9
45
  evaluate(js: string): Promise<any>;
10
46
  getCookies(opts?: {
11
47
  domain?: string;
12
48
  url?: string;
13
- }): Promise<Array<{
14
- name: string;
15
- value: string;
16
- domain: string;
17
- path?: string;
18
- secure?: boolean;
19
- httpOnly?: boolean;
20
- expirationDate?: number;
21
- }>>;
22
- snapshot(opts?: {
23
- interactive?: boolean;
24
- compact?: boolean;
25
- maxDepth?: number;
26
- raw?: boolean;
27
- }): Promise<any>;
49
+ }): Promise<BrowserCookie[]>;
50
+ snapshot(opts?: SnapshotOptions): Promise<any>;
28
51
  click(ref: string): Promise<void>;
29
52
  typeText(ref: string, text: string): Promise<void>;
30
53
  pressKey(key: string): Promise<void>;
31
- wait(options: number | {
32
- text?: string;
33
- time?: number;
34
- timeout?: number;
35
- }): Promise<void>;
54
+ scrollTo(ref: string): Promise<any>;
55
+ getFormState(): Promise<any>;
56
+ wait(options: number | WaitOptions): Promise<void>;
36
57
  tabs(): Promise<any>;
37
58
  closeTab(index?: number): Promise<void>;
38
59
  newTab(): Promise<void>;
@@ -46,10 +67,5 @@ export interface IPage {
46
67
  }): Promise<void>;
47
68
  installInterceptor(pattern: string): Promise<void>;
48
69
  getInterceptedRequests(): Promise<any[]>;
49
- screenshot(options?: {
50
- format?: 'png' | 'jpeg';
51
- quality?: number;
52
- fullPage?: boolean;
53
- path?: string;
54
- }): Promise<string>;
70
+ screenshot(options?: ScreenshotOptions): Promise<string>;
55
71
  }
package/dist/validate.js CHANGED
@@ -9,6 +9,12 @@ const KNOWN_STEP_NAMES = new Set([
9
9
  'select', 'map', 'filter', 'sort', 'limit',
10
10
  'intercept', 'tap',
11
11
  ]);
12
+ function isRecord(value) {
13
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
14
+ }
15
+ function getErrorMessage(error) {
16
+ return error instanceof Error ? error.message : String(error);
17
+ }
12
18
  export function validateClisWithTarget(dirs, target) {
13
19
  const results = [];
14
20
  let errors = 0;
@@ -45,7 +51,7 @@ function validateYamlFile(filePath) {
45
51
  try {
46
52
  const raw = fs.readFileSync(filePath, 'utf-8');
47
53
  const def = yaml.load(raw);
48
- if (!def || typeof def !== 'object') {
54
+ if (!isRecord(def)) {
49
55
  errors.push('Not a valid YAML object');
50
56
  return { path: filePath, errors, warnings };
51
57
  }
@@ -75,7 +81,7 @@ function validateYamlFile(filePath) {
75
81
  }
76
82
  }
77
83
  catch (e) {
78
- errors.push(`YAML parse error: ${e.message}`);
84
+ errors.push(`YAML parse error: ${getErrorMessage(e)}`);
79
85
  }
80
86
  return { path: filePath, errors, warnings };
81
87
  }
@@ -1,7 +1,7 @@
1
1
  import { defineConfig } from 'vitepress'
2
2
 
3
3
  export default defineConfig({
4
- base: '/',
4
+ base: '/docs/',
5
5
  title: 'OpenCLI',
6
6
  description: 'Make any website or Electron App your CLI — AI-powered, account-safe, self-healing.',
7
7
 
@@ -31,6 +31,7 @@ export default defineConfig({
31
31
  { text: 'Installation', link: '/guide/installation' },
32
32
  { text: 'Browser Bridge', link: '/guide/browser-bridge' },
33
33
  { text: 'Troubleshooting', link: '/guide/troubleshooting' },
34
+ { text: 'Plugins', link: '/guide/plugins' },
34
35
  ],
35
36
  },
36
37
  ],
@@ -54,12 +55,22 @@ export default defineConfig({
54
55
  { text: 'YouTube', link: '/adapters/browser/youtube' },
55
56
  { text: 'Xueqiu', link: '/adapters/browser/xueqiu' },
56
57
  { text: 'V2EX', link: '/adapters/browser/v2ex' },
58
+ { text: 'Bloomberg', link: '/adapters/browser/bloomberg' },
57
59
  { text: 'LinkedIn', link: '/adapters/browser/linkedin' },
58
60
  { text: 'Coupang', link: '/adapters/browser/coupang' },
59
61
  { text: 'BOSS Zhipin', link: '/adapters/browser/boss' },
60
62
  { text: 'Ctrip', link: '/adapters/browser/ctrip' },
61
63
  { text: 'Reuters', link: '/adapters/browser/reuters' },
62
64
  { text: 'SMZDM', link: '/adapters/browser/smzdm' },
65
+ { text: 'Jike', link: '/adapters/browser/jike' },
66
+ { text: 'Jimeng', link: '/adapters/browser/jimeng' },
67
+ { text: 'LINUX DO', link: '/adapters/browser/linux-do' },
68
+ { text: 'Chaoxing', link: '/adapters/browser/chaoxing' },
69
+ { text: 'Grok', link: '/adapters/browser/grok' },
70
+ { text: 'WeRead', link: '/adapters/browser/weread' },
71
+ { text: 'Douban', link: '/adapters/browser/douban' },
72
+ { text: 'Sina Blog', link: '/adapters/browser/sinablog' },
73
+ { text: 'Substack', link: '/adapters/browser/substack' },
63
74
  ],
64
75
  },
65
76
  {
@@ -67,11 +78,17 @@ export default defineConfig({
67
78
  collapsed: false,
68
79
  items: [
69
80
  { text: 'HackerNews', link: '/adapters/browser/hackernews' },
70
- { text: 'GitHub', link: '/adapters/browser/github' },
81
+ { text: 'Dev.to', link: '/adapters/browser/devto' },
71
82
  { text: 'BBC', link: '/adapters/browser/bbc' },
72
83
  { text: 'Apple Podcasts', link: '/adapters/browser/apple-podcasts' },
73
84
  { text: 'Xiaoyuzhou', link: '/adapters/browser/xiaoyuzhou' },
74
85
  { text: 'Yahoo Finance', link: '/adapters/browser/yahoo-finance' },
86
+ { text: 'arXiv', link: '/adapters/browser/arxiv' },
87
+ { text: 'Barchart', link: '/adapters/browser/barchart' },
88
+ { text: 'Hugging Face', link: '/adapters/browser/hf' },
89
+ { text: 'Sina Finance', link: '/adapters/browser/sinafinance' },
90
+ { text: 'Stack Overflow', link: '/adapters/browser/stackoverflow' },
91
+ { text: 'Wikipedia', link: '/adapters/browser/wikipedia' },
75
92
  ],
76
93
  },
77
94
  {
@@ -85,9 +102,6 @@ export default defineConfig({
85
102
  { text: 'ChatWise', link: '/adapters/desktop/chatwise' },
86
103
  { text: 'Notion', link: '/adapters/desktop/notion' },
87
104
  { text: 'Discord', link: '/adapters/desktop/discord' },
88
- { text: 'Feishu', link: '/adapters/desktop/feishu' },
89
- { text: 'WeChat', link: '/adapters/desktop/wechat' },
90
- { text: 'NeteaseMusic', link: '/adapters/desktop/neteasemusic' },
91
105
  ],
92
106
  },
93
107
  ],
@@ -137,7 +151,7 @@ export default defineConfig({
137
151
  { text: '快速开始', link: '/zh/guide/getting-started' },
138
152
  { text: '安装', link: '/zh/guide/installation' },
139
153
  { text: 'Browser Bridge', link: '/zh/guide/browser-bridge' },
140
- { text: '问题排查', link: '/zh/guide/troubleshooting' },
154
+ { text: '插件', link: '/zh/guide/plugins' },
141
155
  ],
142
156
  },
143
157
  ],
@@ -154,7 +168,6 @@ export default defineConfig({
154
168
  text: '开发者指南',
155
169
  items: [
156
170
  { text: '贡献指南', link: '/zh/developer/contributing' },
157
- { text: '测试', link: '/zh/developer/testing' },
158
171
  ],
159
172
  },
160
173
  ],
@@ -0,0 +1,27 @@
1
+ # arXiv
2
+
3
+ **Mode**: 🌐 Public · **Domain**: `arxiv.org`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli arxiv search` | Search arXiv papers |
10
+ | `opencli arxiv paper` | Get arXiv paper details by ID |
11
+
12
+ ## Usage Examples
13
+
14
+ ```bash
15
+ # Search for papers
16
+ opencli arxiv search "transformer attention" --limit 10
17
+
18
+ # Get paper details by arXiv ID
19
+ opencli arxiv paper 2301.00001
20
+
21
+ # JSON output
22
+ opencli arxiv search "LLM" -f json
23
+ ```
24
+
25
+ ## Prerequisites
26
+
27
+ - No browser required — uses public arXiv API
@@ -0,0 +1,33 @@
1
+ # Barchart
2
+
3
+ **Mode**: 🔐 Browser · **Domain**: `barchart.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli barchart quote` | Stock quote with price, volume, and key metrics |
10
+ | `opencli barchart options` | Options chain with greeks, IV, volume, and open interest |
11
+ | `opencli barchart greeks` | Options greeks overview (IV, delta, gamma, theta, vega) |
12
+ | `opencli barchart flow` | Unusual options activity / options flow |
13
+
14
+ ## Usage Examples
15
+
16
+ ```bash
17
+ # Get stock quote
18
+ opencli barchart quote AAPL
19
+
20
+ # View options chain
21
+ opencli barchart options TSLA
22
+
23
+ # Options greeks overview
24
+ opencli barchart greeks NVDA
25
+
26
+ # Unusual options flow
27
+ opencli barchart flow --limit 20 -f json
28
+ ```
29
+
30
+ ## Prerequisites
31
+
32
+ - Chrome running and able to open `barchart.com`
33
+ - [Browser Bridge extension](/guide/browser-bridge) installed
@@ -25,6 +25,15 @@
25
25
  # Quick start
26
26
  opencli bilibili hot --limit 5
27
27
 
28
+ # Search videos
29
+ opencli bilibili search 黑神话 --limit 10
30
+
31
+ # Read one creator's videos
32
+ opencli bilibili user-videos 2 --limit 10
33
+
34
+ # Fetch subtitles
35
+ opencli bilibili subtitle BV1xx411c7mD --lang zh-CN
36
+
28
37
  # JSON output
29
38
  opencli bilibili hot -f json
30
39
 
@@ -0,0 +1,70 @@
1
+ # Bloomberg
2
+
3
+ **Mode**: 🌐 / 🔐 Mixed · **Domains**: `feeds.bloomberg.com`, `www.bloomberg.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli bloomberg main` | Bloomberg homepage top stories from RSS |
10
+ | `opencli bloomberg markets` | Bloomberg Markets top stories from RSS |
11
+ | `opencli bloomberg economics` | Bloomberg Economics top stories from RSS |
12
+ | `opencli bloomberg industries` | Bloomberg Industries top stories from RSS |
13
+ | `opencli bloomberg tech` | Bloomberg Tech top stories from RSS |
14
+ | `opencli bloomberg politics` | Bloomberg Politics top stories from RSS |
15
+ | `opencli bloomberg businessweek` | Bloomberg Businessweek top stories from RSS |
16
+ | `opencli bloomberg opinions` | Bloomberg Opinion top stories from RSS |
17
+ | `opencli bloomberg feeds` | List the RSS feed aliases used by the adapter |
18
+ | `opencli bloomberg news <link>` | Read a standard Bloomberg story/article page and return title, summary, media links, and article text |
19
+
20
+ ## What works today
21
+
22
+ - RSS-backed listing commands work without a browser:
23
+ - `main`
24
+ - `markets`
25
+ - `economics`
26
+ - `industries`
27
+ - `tech`
28
+ - `politics`
29
+ - `businessweek`
30
+ - `opinions`
31
+ - `feeds`
32
+ - `bloomberg news` works on standard Bloomberg story/article pages that expose `#__NEXT_DATA__` and are accessible to your current Chrome session.
33
+
34
+ ## Current limitations
35
+
36
+ - Audio pages and some other non-standard Bloomberg URLs may fail.
37
+ - Some Bloomberg pages can return bot-protection or access-gated responses instead of article data.
38
+ - This adapter is for data retrieval/extraction only. It does **not** bypass Bloomberg paywall, login, entitlement, or other access checks.
39
+
40
+ ## Usage Examples
41
+
42
+ ```bash
43
+ # List supported RSS feed aliases
44
+ opencli bloomberg feeds
45
+
46
+ # Fetch Bloomberg homepage headlines
47
+ opencli bloomberg main --limit 5
48
+
49
+ # Fetch a section feed as JSON
50
+ opencli bloomberg tech --limit 3 -f json
51
+
52
+ # Read a standard article page
53
+ opencli bloomberg news https://www.bloomberg.com/news/articles/2026-03-19/example -f json
54
+
55
+ # Relative article paths also work
56
+ opencli bloomberg news /news/articles/2026-03-19/example
57
+ ```
58
+
59
+ ## Prerequisites
60
+
61
+ - RSS commands do not require Chrome.
62
+ - `bloomberg news` requires:
63
+ - Chrome running
64
+ - a Chrome session that can already access the target Bloomberg article page
65
+ - the [Browser Bridge extension](/guide/browser-bridge)
66
+
67
+ ## Notes
68
+
69
+ - RSS commands support `--limit` with a maximum of 20 items.
70
+ - If `bloomberg news` fails on a page from RSS, try a different standard story/article link first; not every Bloomberg URL in feeds is a normal article page.
@@ -0,0 +1,39 @@
1
+ # 超星学习通 (Chaoxing)
2
+
3
+ **Mode**: 🔐 Browser · **Domain**: `mooc2-ans.chaoxing.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli chaoxing assignments` | 学习通作业列表 |
10
+ | `opencli chaoxing exams` | 学习通考试列表 |
11
+
12
+ ## Usage Examples
13
+
14
+ ```bash
15
+ # List all assignments
16
+ opencli chaoxing assignments --limit 20
17
+
18
+ # Filter exams by course name
19
+ opencli chaoxing exams --course "高等数学"
20
+
21
+ # Filter exams by status
22
+ opencli chaoxing exams --status ongoing
23
+
24
+ # JSON output
25
+ opencli chaoxing assignments -f json
26
+ ```
27
+
28
+ ### Options
29
+
30
+ | Option | Description |
31
+ |--------|-------------|
32
+ | `--course` | Filter by course name (fuzzy match) |
33
+ | `--status` | Filter by status: `all`, `upcoming`, `ongoing`, `finished` |
34
+ | `--limit` | Max number of results (default: 20) |
35
+
36
+ ## Prerequisites
37
+
38
+ - Chrome running and **logged into** mooc2-ans.chaoxing.com
39
+ - [Browser Bridge extension](/guide/browser-bridge) installed
@@ -0,0 +1,35 @@
1
+ # Dev.to
2
+
3
+ **Mode**: 🌐 Public · **Domain**: `dev.to`
4
+
5
+ Fetch the latest and greatest developer articles from the DEV community without needing an API key.
6
+
7
+ ## Commands
8
+
9
+ | Command | Description |
10
+ |---------|-------------|
11
+ | `opencli devto top` | Top DEV.to articles of the day |
12
+ | `opencli devto tag` | Latest articles for a specific tag |
13
+ | `opencli devto user` | Recent articles from a specific user |
14
+
15
+ ## Usage Examples
16
+
17
+ ```bash
18
+ # Top articles today
19
+ opencli devto top --limit 5
20
+
21
+ # Articles by tag (positional argument)
22
+ opencli devto tag javascript
23
+ opencli devto tag python --limit 20
24
+
25
+ # Articles by a specific author
26
+ opencli devto user ben
27
+ opencli devto user thepracticaldev --limit 5
28
+
29
+ # JSON output
30
+ opencli devto top -f json
31
+ ```
32
+
33
+ ## Prerequisites
34
+
35
+ - No browser required — uses the public DEV.to API
@@ -0,0 +1,38 @@
1
+ # 豆瓣 (Douban)
2
+
3
+ **Mode**: 🔐 Browser (Cookie) · **Domain**: `douban.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli douban movie-hot` | 豆瓣电影热门榜单 |
10
+ | `opencli douban book-hot` | 豆瓣图书热门榜单 |
11
+ | `opencli douban search` | 搜索豆瓣电影、图书或音乐 |
12
+
13
+ ## Usage Examples
14
+
15
+ ```bash
16
+ # 电影热门
17
+ opencli douban movie-hot --limit 10
18
+
19
+ # 图书热门
20
+ opencli douban book-hot --limit 10
21
+
22
+ # 搜索电影
23
+ opencli douban search "流浪地球"
24
+
25
+ # 搜索图书
26
+ opencli douban search --type book "三体"
27
+
28
+ # 搜索音乐
29
+ opencli douban search --type music "周杰伦"
30
+
31
+ # JSON output
32
+ opencli douban movie-hot -f json
33
+ ```
34
+
35
+ ## Prerequisites
36
+
37
+ - Chrome logged into `douban.com`
38
+ - Browser Bridge extension installed
@@ -0,0 +1,36 @@
1
+ # Facebook
2
+
3
+ **Mode**: 🔐 Browser · **Domain**: `facebook.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli facebook profile` | Get user/page profile info |
10
+ | `opencli facebook notifications` | Get recent notifications |
11
+ | `opencli facebook feed` | Get news feed posts |
12
+ | `opencli facebook search` | Search people, pages, posts |
13
+
14
+ ## Usage Examples
15
+
16
+ ```bash
17
+ # View a profile
18
+ opencli facebook profile zuck
19
+
20
+ # Get notifications
21
+ opencli facebook notifications --limit 10
22
+
23
+ # News feed
24
+ opencli facebook feed --limit 5
25
+
26
+ # Search
27
+ opencli facebook search "OpenAI" --limit 5
28
+
29
+ # JSON output
30
+ opencli facebook profile zuck -f json
31
+ ```
32
+
33
+ ## Prerequisites
34
+
35
+ - Chrome running and **logged into** facebook.com
36
+ - [Browser Bridge extension](/guide/browser-bridge) installed
@@ -0,0 +1,62 @@
1
+ # Google
2
+
3
+ **Mode**: 🌐 / 🔐 Mixed · **Domains**: `google.com`, `suggestqueries.google.com`, `news.google.com`, `trends.google.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli google search <keyword>` | Search Google and extract results from the page |
10
+ | `opencli google suggest <keyword>` | Get Google search suggestions |
11
+ | `opencli google news [keyword]` | Get Google News headlines (top stories or search) |
12
+ | `opencli google trends` | Get Google Trends daily trending searches |
13
+
14
+ ## What works today
15
+
16
+ - Public API commands work without a browser:
17
+ - `suggest` — JSON API, no auth needed
18
+ - `news` — RSS feed, supports top stories and keyword search
19
+ - `trends` — RSS feed, supports different regions
20
+ - `google search` uses browser mode to extract results from google.com.
21
+
22
+ ## Current limitations
23
+
24
+ - `google search` may trigger CAPTCHA in Standalone browser mode. Extension mode (with an established Chrome session) is more reliable.
25
+ - Google frequently changes its DOM structure. If `search` stops returning results, selectors may need updating.
26
+ - Snippet extraction may return empty for some results depending on Google's layout.
27
+
28
+ ## Usage Examples
29
+
30
+ ```bash
31
+ # Search Google
32
+ opencli google search "typescript tutorial" --limit 10
33
+
34
+ # Get search suggestions
35
+ opencli google suggest python
36
+
37
+ # Get top news headlines
38
+ opencli google news --limit 5
39
+
40
+ # Search news for a topic
41
+ opencli google news "artificial intelligence" --limit 10 --lang en --region US
42
+
43
+ # Get trending searches in Japan
44
+ opencli google trends --region JP --limit 10
45
+
46
+ # Output as JSON
47
+ opencli google search "machine learning" -f json
48
+ ```
49
+
50
+ ## Prerequisites
51
+
52
+ - `suggest`, `news`, `trends` do not require Chrome.
53
+ - `search` requires:
54
+ - Chrome running (or Standalone mode will auto-launch)
55
+ - For best results, use the [Browser Bridge extension](/guide/browser-bridge) with an established Google session
56
+
57
+ ## Notes
58
+
59
+ - `suggest` defaults to `--lang zh-CN`; other commands default to `--lang en`.
60
+ - `news` supports `--lang` and `--region` parameters for localized results.
61
+ - `trends` traffic values are raw strings (e.g. "500K+", "1,000,000+"), not numeric.
62
+ - `search` output includes three result types: `result` (standard), `snippet` (featured answer box), and `paa` (People Also Ask).
@@ -0,0 +1,53 @@
1
+ # Grok
2
+
3
+ **Mode**: Default Grok adapter + optional explicit consumer web path · **Domain**: `grok.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli grok ask` | Keep the default Grok ask behavior |
10
+ | `opencli grok ask --web` | Use the explicit grok.com consumer web UI flow |
11
+
12
+ ## Usage Examples
13
+
14
+ ```bash
15
+ # Default / compatibility path
16
+ opencli grok ask --prompt "Explain quantum computing in simple terms"
17
+
18
+ # Explicit consumer web path
19
+ opencli grok ask --prompt "Explain quantum computing in simple terms" --web
20
+
21
+ # Best-effort fresh chat on the consumer web path
22
+ opencli grok ask --prompt "Hello" --web --new
23
+
24
+ # Set custom timeout (default: 120s)
25
+ opencli grok ask --prompt "Write a long essay" --web --timeout 180
26
+ ```
27
+
28
+ ### Options
29
+
30
+ | Option | Description |
31
+ |--------|-------------|
32
+ | `--prompt` | The message to send (required) |
33
+ | `--timeout` | Wait timeout in seconds (default: 120) |
34
+ | `--new` | Start a new chat before sending (default: false) |
35
+ | `--web` | Opt into the explicit grok.com consumer web flow (default: false) |
36
+
37
+ ## Behavior
38
+
39
+ - `opencli grok ask` keeps the upstream/default behavior intact.
40
+ - `opencli grok ask --web` switches to the newer hardened consumer-web implementation.
41
+ - The `--web` path adds stricter composer detection, clearer blocked/session-gated hints, and waits for a stabilized assistant bubble before returning.
42
+
43
+ ## Prerequisites
44
+
45
+ - The Grok adapter still depends on browser-backed access to `grok.com`
46
+ - For `--web`, Chrome should already be running with an authenticated Grok consumer session
47
+ - [Browser Bridge extension](/guide/browser-bridge) installed
48
+
49
+ ## Caveats
50
+
51
+ - `--web` drives the Grok consumer web UI in the browser, not an API.
52
+ - It depends on an already-authenticated session and can fail if Grok shows login, challenge, rate-limit, or other session-gating UI.
53
+ - It may break when the Grok composer DOM, submit button behavior, or message bubble structure changes.
@@ -0,0 +1,42 @@
1
+ # Hugging Face
2
+
3
+ **Mode**: 🌐 Public · **Domain**: `huggingface.co`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli hf top` | Top upvoted Hugging Face papers |
10
+
11
+ ## Usage Examples
12
+
13
+ ```bash
14
+ # Today's top papers
15
+ opencli hf top --limit 10
16
+
17
+ # All papers (no limit)
18
+ opencli hf top --all
19
+
20
+ # Specific date
21
+ opencli hf top --date 2025-03-01
22
+
23
+ # Weekly/monthly top papers
24
+ opencli hf top --period weekly
25
+ opencli hf top --period monthly
26
+
27
+ # JSON output
28
+ opencli hf top -f json
29
+ ```
30
+
31
+ ### Options
32
+
33
+ | Option | Description |
34
+ |--------|-------------|
35
+ | `--limit` | Number of papers (default: 20) |
36
+ | `--all` | Return all papers, ignoring limit |
37
+ | `--date` | Date in `YYYY-MM-DD` format (defaults to most recent) |
38
+ | `--period` | Time period: `daily`, `weekly`, or `monthly` (default: daily) |
39
+
40
+ ## Prerequisites
41
+
42
+ - No browser required — uses public Hugging Face API