@jackwener/opencli 1.0.6 → 1.1.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.
Files changed (400) 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/README.md +51 -10
  8. package/README.zh-CN.md +29 -11
  9. package/SKILL.md +102 -33
  10. package/dist/browser/cdp.js +6 -1
  11. package/dist/browser/page.d.ts +4 -1
  12. package/dist/browser/page.js +7 -1
  13. package/dist/build-manifest.js +23 -16
  14. package/dist/cli-manifest.json +951 -296
  15. package/dist/cli.d.ts +6 -0
  16. package/dist/cli.js +225 -148
  17. package/dist/clis/antigravity/serve.js +296 -47
  18. package/dist/clis/apple-podcasts/commands.test.d.ts +2 -0
  19. package/dist/clis/apple-podcasts/commands.test.js +76 -0
  20. package/dist/clis/apple-podcasts/search.js +2 -2
  21. package/dist/clis/apple-podcasts/top.js +9 -2
  22. package/dist/clis/arxiv/paper.js +21 -0
  23. package/dist/clis/arxiv/search.js +24 -0
  24. package/dist/clis/arxiv/utils.d.ts +18 -0
  25. package/dist/clis/arxiv/utils.js +49 -0
  26. package/dist/clis/bilibili/dynamic.js +1 -1
  27. package/dist/clis/bilibili/favorite.js +1 -1
  28. package/dist/clis/bilibili/feed.js +1 -1
  29. package/dist/clis/bilibili/following.js +1 -1
  30. package/dist/clis/bilibili/history.js +1 -1
  31. package/dist/clis/bilibili/me.js +1 -1
  32. package/dist/clis/bilibili/ranking.js +1 -1
  33. package/dist/clis/bilibili/search.js +3 -3
  34. package/dist/clis/bilibili/subtitle.js +1 -1
  35. package/dist/clis/bilibili/user-videos.js +1 -1
  36. package/dist/{bilibili.d.ts → clis/bilibili/utils.d.ts} +1 -1
  37. package/dist/clis/bloomberg/businessweek.d.ts +1 -0
  38. package/dist/clis/bloomberg/businessweek.js +17 -0
  39. package/dist/clis/bloomberg/economics.d.ts +1 -0
  40. package/dist/clis/bloomberg/economics.js +17 -0
  41. package/dist/clis/bloomberg/feeds.d.ts +1 -0
  42. package/dist/clis/bloomberg/feeds.js +15 -0
  43. package/dist/clis/bloomberg/industries.d.ts +1 -0
  44. package/dist/clis/bloomberg/industries.js +17 -0
  45. package/dist/clis/bloomberg/main.d.ts +1 -0
  46. package/dist/clis/bloomberg/main.js +17 -0
  47. package/dist/clis/bloomberg/markets.d.ts +1 -0
  48. package/dist/clis/bloomberg/markets.js +17 -0
  49. package/dist/clis/bloomberg/news.d.ts +1 -0
  50. package/dist/clis/bloomberg/news.js +105 -0
  51. package/dist/clis/bloomberg/opinions.d.ts +1 -0
  52. package/dist/clis/bloomberg/opinions.js +17 -0
  53. package/dist/clis/bloomberg/politics.d.ts +1 -0
  54. package/dist/clis/bloomberg/politics.js +17 -0
  55. package/dist/clis/bloomberg/tech.d.ts +1 -0
  56. package/dist/clis/bloomberg/tech.js +17 -0
  57. package/dist/clis/bloomberg/utils.d.ts +34 -0
  58. package/dist/clis/bloomberg/utils.js +364 -0
  59. package/dist/clis/bloomberg/utils.test.d.ts +1 -0
  60. package/dist/clis/bloomberg/utils.test.js +129 -0
  61. package/dist/clis/boss/batchgreet.d.ts +1 -0
  62. package/dist/clis/boss/batchgreet.js +147 -0
  63. package/dist/clis/boss/chatlist.js +2 -2
  64. package/dist/clis/boss/detail.js +2 -2
  65. package/dist/clis/boss/exchange.d.ts +1 -0
  66. package/dist/clis/boss/exchange.js +111 -0
  67. package/dist/clis/boss/greet.d.ts +1 -0
  68. package/dist/clis/boss/greet.js +175 -0
  69. package/dist/clis/boss/invite.d.ts +1 -0
  70. package/dist/clis/boss/invite.js +158 -0
  71. package/dist/clis/boss/joblist.d.ts +1 -0
  72. package/dist/clis/boss/joblist.js +55 -0
  73. package/dist/clis/boss/mark.d.ts +1 -0
  74. package/dist/clis/boss/mark.js +141 -0
  75. package/dist/clis/boss/recommend.d.ts +1 -0
  76. package/dist/clis/boss/recommend.js +83 -0
  77. package/dist/clis/boss/search.js +1 -1
  78. package/dist/clis/boss/send.js +1 -1
  79. package/dist/clis/boss/stats.d.ts +1 -0
  80. package/dist/clis/boss/stats.js +116 -0
  81. package/dist/clis/chaoxing/assignments.js +1 -1
  82. package/dist/clis/chaoxing/exams.js +1 -1
  83. package/dist/{chaoxing.d.ts → clis/chaoxing/utils.d.ts} +1 -1
  84. package/dist/{chaoxing.js → clis/chaoxing/utils.js} +0 -2
  85. package/dist/clis/chaoxing/utils.test.d.ts +1 -0
  86. package/dist/{chaoxing.test.js → clis/chaoxing/utils.test.js} +1 -1
  87. package/dist/clis/chatgpt/read.js +1 -1
  88. package/dist/clis/chatwise/export.js +1 -1
  89. package/dist/clis/chatwise/model.js +2 -2
  90. package/dist/clis/chatwise/screenshot.js +1 -1
  91. package/dist/clis/codex/export.js +1 -1
  92. package/dist/clis/codex/model.js +2 -2
  93. package/dist/clis/codex/screenshot.js +1 -1
  94. package/dist/clis/coupang/add-to-cart.js +3 -4
  95. package/dist/clis/coupang/search.js +2 -4
  96. package/dist/clis/coupang/utils.test.d.ts +1 -0
  97. package/dist/{coupang.test.js → clis/coupang/utils.test.js} +1 -1
  98. package/dist/clis/ctrip/search.js +1 -1
  99. package/dist/clis/cursor/export.js +1 -1
  100. package/dist/clis/cursor/model.js +2 -2
  101. package/dist/clis/cursor/screenshot.js +1 -1
  102. package/dist/clis/jike/comment.js +2 -3
  103. package/dist/clis/jike/create.js +1 -2
  104. package/dist/clis/jike/feed.js +0 -1
  105. package/dist/clis/jike/like.js +1 -2
  106. package/dist/clis/jike/notifications.js +0 -1
  107. package/dist/clis/jike/post.yaml +1 -0
  108. package/dist/clis/jike/repost.js +1 -2
  109. package/dist/clis/jike/search.js +2 -3
  110. package/dist/clis/jike/topic.yaml +1 -0
  111. package/dist/clis/jike/user.yaml +1 -0
  112. package/dist/clis/jimeng/history.yaml +0 -1
  113. package/dist/clis/linkedin/search.js +7 -7
  114. package/dist/clis/linux-do/category.yaml +1 -0
  115. package/dist/clis/linux-do/search.yaml +4 -3
  116. package/dist/clis/linux-do/topic.yaml +1 -0
  117. package/dist/clis/notion/export.js +1 -1
  118. package/dist/clis/reddit/comment.js +3 -4
  119. package/dist/clis/reddit/read.js +4 -5
  120. package/dist/clis/reddit/save.js +2 -3
  121. package/dist/clis/reddit/saved.js +0 -1
  122. package/dist/clis/reddit/search.yaml +1 -0
  123. package/dist/clis/reddit/subscribe.js +0 -1
  124. package/dist/clis/reddit/upvote.js +2 -3
  125. package/dist/clis/reddit/upvoted.js +0 -1
  126. package/dist/clis/reddit/user-comments.yaml +1 -0
  127. package/dist/clis/reddit/user-posts.yaml +1 -0
  128. package/dist/clis/reddit/user.yaml +1 -0
  129. package/dist/clis/reuters/search.js +1 -1
  130. package/dist/clis/sinafinance/news.d.ts +7 -0
  131. package/dist/clis/sinafinance/news.js +61 -0
  132. package/dist/clis/smzdm/search.js +2 -3
  133. package/dist/clis/stackoverflow/search.yaml +1 -0
  134. package/dist/clis/steam/top-sellers.yaml +29 -0
  135. package/dist/clis/twitter/accept.js +2 -2
  136. package/dist/clis/twitter/article.js +2 -2
  137. package/dist/clis/twitter/block.d.ts +1 -0
  138. package/dist/clis/twitter/block.js +88 -0
  139. package/dist/clis/twitter/delete.js +1 -1
  140. package/dist/clis/twitter/hide-reply.d.ts +1 -0
  141. package/dist/clis/twitter/hide-reply.js +66 -0
  142. package/dist/clis/twitter/like.js +1 -1
  143. package/dist/clis/twitter/post.js +1 -1
  144. package/dist/clis/twitter/reply-dm.js +1 -1
  145. package/dist/clis/twitter/reply.js +2 -2
  146. package/dist/clis/twitter/search.js +1 -1
  147. package/dist/clis/twitter/thread.js +2 -2
  148. package/dist/clis/twitter/trending.d.ts +1 -0
  149. package/dist/clis/twitter/trending.js +91 -0
  150. package/dist/clis/twitter/unblock.d.ts +1 -0
  151. package/dist/clis/twitter/unblock.js +71 -0
  152. package/dist/clis/v2ex/topic.yaml +1 -0
  153. package/dist/clis/weibo/hot.js +0 -1
  154. package/dist/clis/weread/book.js +1 -1
  155. package/dist/clis/weread/highlights.js +1 -1
  156. package/dist/clis/weread/notes.js +1 -1
  157. package/dist/clis/weread/search.js +1 -1
  158. package/dist/clis/wikipedia/search.d.ts +1 -0
  159. package/dist/clis/wikipedia/search.js +30 -0
  160. package/dist/clis/wikipedia/summary.d.ts +1 -0
  161. package/dist/clis/wikipedia/summary.js +28 -0
  162. package/dist/clis/wikipedia/utils.d.ts +8 -0
  163. package/dist/clis/wikipedia/utils.js +18 -0
  164. package/dist/clis/xiaohongshu/creator-note-detail.d.ts +79 -5
  165. package/dist/clis/xiaohongshu/creator-note-detail.js +323 -70
  166. package/dist/clis/xiaohongshu/creator-note-detail.test.d.ts +1 -0
  167. package/dist/clis/xiaohongshu/creator-note-detail.test.js +258 -0
  168. package/dist/clis/xiaohongshu/creator-notes-summary.d.ts +28 -0
  169. package/dist/clis/xiaohongshu/creator-notes-summary.js +92 -0
  170. package/dist/clis/xiaohongshu/creator-notes-summary.test.d.ts +1 -0
  171. package/dist/clis/xiaohongshu/creator-notes-summary.test.js +49 -0
  172. package/dist/clis/xiaohongshu/creator-notes.d.ts +18 -5
  173. package/dist/clis/xiaohongshu/creator-notes.js +189 -71
  174. package/dist/clis/xiaohongshu/creator-notes.test.d.ts +1 -0
  175. package/dist/clis/xiaohongshu/creator-notes.test.js +191 -0
  176. package/dist/clis/xiaohongshu/creator-profile.js +0 -1
  177. package/dist/clis/xiaohongshu/creator-stats.js +0 -1
  178. package/dist/clis/xiaohongshu/download.js +2 -3
  179. package/dist/clis/xiaohongshu/feed.yaml +0 -1
  180. package/dist/clis/xiaohongshu/notifications.yaml +0 -1
  181. package/dist/clis/xiaohongshu/search.js +2 -2
  182. package/dist/clis/xiaohongshu/user.js +1 -2
  183. package/dist/clis/yahoo-finance/quote.js +0 -1
  184. package/dist/clis/youtube/search.js +1 -1
  185. package/dist/clis/youtube/transcript.js +1 -1
  186. package/dist/clis/youtube/video.js +1 -1
  187. package/dist/clis/zhihu/download.js +1 -2
  188. package/dist/clis/zhihu/question.js +1 -1
  189. package/dist/clis/zhihu/search.yaml +4 -3
  190. package/dist/commanderAdapter.d.ts +21 -0
  191. package/dist/commanderAdapter.js +111 -0
  192. package/dist/{engine.d.ts → discovery.d.ts} +0 -6
  193. package/dist/{engine.js → discovery.js} +1 -98
  194. package/dist/download/index.d.ts +2 -6
  195. package/dist/download/index.js +19 -46
  196. package/dist/engine.test.d.ts +1 -1
  197. package/dist/engine.test.js +8 -7
  198. package/dist/execution.d.ts +22 -0
  199. package/dist/execution.js +129 -0
  200. package/dist/explore.js +121 -107
  201. package/dist/external-clis.yaml +48 -0
  202. package/dist/external.d.ts +25 -0
  203. package/dist/external.js +156 -0
  204. package/dist/main.js +1 -1
  205. package/dist/pipeline/steps/browser.js +8 -2
  206. package/dist/registry.d.ts +2 -0
  207. package/dist/registry.js +2 -0
  208. package/dist/runtime.d.ts +5 -0
  209. package/dist/runtime.js +8 -0
  210. package/dist/serialization.d.ts +34 -0
  211. package/dist/serialization.js +63 -0
  212. package/dist/types.d.ts +4 -1
  213. package/docs/.vitepress/config.mts +14 -3
  214. package/docs/adapters/browser/arxiv.md +27 -0
  215. package/docs/adapters/browser/barchart.md +32 -0
  216. package/docs/adapters/browser/bloomberg.md +70 -0
  217. package/docs/adapters/browser/chaoxing.md +39 -0
  218. package/docs/adapters/browser/grok.md +35 -0
  219. package/docs/adapters/browser/hf.md +42 -0
  220. package/docs/adapters/browser/jike.md +45 -0
  221. package/docs/adapters/browser/jimeng.md +39 -0
  222. package/docs/adapters/browser/linux-do.md +45 -0
  223. package/docs/adapters/browser/sinafinance.md +35 -0
  224. package/docs/adapters/browser/stackoverflow.md +35 -0
  225. package/docs/adapters/browser/steam.md +26 -0
  226. package/docs/adapters/browser/twitter.md +3 -0
  227. package/docs/adapters/browser/weread.md +48 -0
  228. package/docs/adapters/browser/wikipedia.md +30 -0
  229. package/docs/adapters/browser/xiaohongshu.md +5 -1
  230. package/docs/adapters/desktop/chatgpt.md +3 -3
  231. package/docs/adapters/index.md +13 -0
  232. package/docs/advanced/download.md +4 -4
  233. package/docs/developer/architecture.md +17 -4
  234. package/package.json +1 -1
  235. package/scripts/check-doc-coverage.sh +69 -0
  236. package/scripts/copy-yaml.cjs +7 -0
  237. package/src/browser/cdp.ts +9 -4
  238. package/src/browser/page.ts +7 -1
  239. package/src/build-manifest.ts +25 -19
  240. package/src/cli.ts +253 -119
  241. package/src/clis/antigravity/serve.ts +323 -50
  242. package/src/clis/apple-podcasts/commands.test.ts +95 -0
  243. package/src/clis/apple-podcasts/search.ts +2 -2
  244. package/src/clis/apple-podcasts/top.ts +12 -2
  245. package/src/clis/arxiv/paper.ts +21 -0
  246. package/src/clis/arxiv/search.ts +24 -0
  247. package/src/clis/arxiv/utils.ts +63 -0
  248. package/src/clis/bilibili/dynamic.ts +1 -1
  249. package/src/clis/bilibili/favorite.ts +1 -1
  250. package/src/clis/bilibili/feed.ts +1 -1
  251. package/src/clis/bilibili/following.ts +1 -1
  252. package/src/clis/bilibili/history.ts +1 -1
  253. package/src/clis/bilibili/me.ts +1 -1
  254. package/src/clis/bilibili/ranking.ts +1 -1
  255. package/src/clis/bilibili/search.ts +3 -3
  256. package/src/clis/bilibili/subtitle.ts +1 -1
  257. package/src/clis/bilibili/user-videos.ts +1 -1
  258. package/src/{bilibili.ts → clis/bilibili/utils.ts} +1 -1
  259. package/src/clis/bloomberg/businessweek.ts +18 -0
  260. package/src/clis/bloomberg/economics.ts +18 -0
  261. package/src/clis/bloomberg/feeds.ts +16 -0
  262. package/src/clis/bloomberg/industries.ts +18 -0
  263. package/src/clis/bloomberg/main.ts +18 -0
  264. package/src/clis/bloomberg/markets.ts +18 -0
  265. package/src/clis/bloomberg/news.ts +136 -0
  266. package/src/clis/bloomberg/opinions.ts +18 -0
  267. package/src/clis/bloomberg/politics.ts +18 -0
  268. package/src/clis/bloomberg/tech.ts +18 -0
  269. package/src/clis/bloomberg/utils.test.ts +135 -0
  270. package/src/clis/bloomberg/utils.ts +429 -0
  271. package/src/clis/boss/batchgreet.ts +167 -0
  272. package/src/clis/boss/chatlist.ts +2 -2
  273. package/src/clis/boss/detail.ts +2 -2
  274. package/src/clis/boss/exchange.ts +126 -0
  275. package/src/clis/boss/greet.ts +198 -0
  276. package/src/clis/boss/invite.ts +177 -0
  277. package/src/clis/boss/joblist.ts +63 -0
  278. package/src/clis/boss/mark.ts +155 -0
  279. package/src/clis/boss/recommend.ts +94 -0
  280. package/src/clis/boss/search.ts +1 -1
  281. package/src/clis/boss/send.ts +1 -1
  282. package/src/clis/boss/stats.ts +130 -0
  283. package/src/clis/chaoxing/assignments.ts +1 -1
  284. package/src/clis/chaoxing/exams.ts +1 -1
  285. package/src/{chaoxing.test.ts → clis/chaoxing/utils.test.ts} +1 -1
  286. package/src/{chaoxing.ts → clis/chaoxing/utils.ts} +1 -3
  287. package/src/clis/chatgpt/README.zh-CN.md +3 -3
  288. package/src/clis/chatgpt/read.ts +1 -1
  289. package/src/clis/chatwise/export.ts +1 -1
  290. package/src/clis/chatwise/model.ts +2 -2
  291. package/src/clis/chatwise/screenshot.ts +1 -1
  292. package/src/clis/codex/export.ts +1 -1
  293. package/src/clis/codex/model.ts +2 -2
  294. package/src/clis/codex/screenshot.ts +1 -1
  295. package/src/clis/coupang/add-to-cart.ts +3 -4
  296. package/src/clis/coupang/search.ts +2 -4
  297. package/src/{coupang.test.ts → clis/coupang/utils.test.ts} +1 -1
  298. package/src/clis/ctrip/search.ts +1 -1
  299. package/src/clis/cursor/export.ts +1 -1
  300. package/src/clis/cursor/model.ts +2 -2
  301. package/src/clis/cursor/screenshot.ts +1 -1
  302. package/src/clis/jike/comment.ts +2 -3
  303. package/src/clis/jike/create.ts +1 -2
  304. package/src/clis/jike/feed.ts +0 -1
  305. package/src/clis/jike/like.ts +1 -2
  306. package/src/clis/jike/notifications.ts +0 -1
  307. package/src/clis/jike/post.yaml +1 -0
  308. package/src/clis/jike/repost.ts +1 -2
  309. package/src/clis/jike/search.ts +2 -3
  310. package/src/clis/jike/topic.yaml +1 -0
  311. package/src/clis/jike/user.yaml +1 -0
  312. package/src/clis/jimeng/history.yaml +0 -1
  313. package/src/clis/linkedin/search.ts +7 -7
  314. package/src/clis/linux-do/category.yaml +1 -0
  315. package/src/clis/linux-do/search.yaml +4 -3
  316. package/src/clis/linux-do/topic.yaml +1 -0
  317. package/src/clis/notion/export.ts +1 -1
  318. package/src/clis/reddit/comment.ts +3 -4
  319. package/src/clis/reddit/read.ts +4 -5
  320. package/src/clis/reddit/save.ts +2 -3
  321. package/src/clis/reddit/saved.ts +0 -1
  322. package/src/clis/reddit/search.yaml +1 -0
  323. package/src/clis/reddit/subscribe.ts +0 -1
  324. package/src/clis/reddit/upvote.ts +2 -3
  325. package/src/clis/reddit/upvoted.ts +0 -1
  326. package/src/clis/reddit/user-comments.yaml +1 -0
  327. package/src/clis/reddit/user-posts.yaml +1 -0
  328. package/src/clis/reddit/user.yaml +1 -0
  329. package/src/clis/reuters/search.ts +1 -1
  330. package/src/clis/sinafinance/news.ts +76 -0
  331. package/src/clis/smzdm/search.ts +2 -3
  332. package/src/clis/stackoverflow/search.yaml +1 -0
  333. package/src/clis/steam/top-sellers.yaml +29 -0
  334. package/src/clis/twitter/accept.ts +2 -2
  335. package/src/clis/twitter/article.ts +2 -2
  336. package/src/clis/twitter/block.ts +92 -0
  337. package/src/clis/twitter/delete.ts +1 -1
  338. package/src/clis/twitter/hide-reply.ts +70 -0
  339. package/src/clis/twitter/like.ts +1 -1
  340. package/src/clis/twitter/post.ts +1 -1
  341. package/src/clis/twitter/reply-dm.ts +1 -1
  342. package/src/clis/twitter/reply.ts +2 -2
  343. package/src/clis/twitter/search.ts +1 -1
  344. package/src/clis/twitter/thread.ts +2 -2
  345. package/src/clis/twitter/trending.ts +113 -0
  346. package/src/clis/twitter/unblock.ts +75 -0
  347. package/src/clis/v2ex/topic.yaml +1 -0
  348. package/src/clis/weibo/hot.ts +0 -1
  349. package/src/clis/weread/book.ts +1 -1
  350. package/src/clis/weread/highlights.ts +1 -1
  351. package/src/clis/weread/notes.ts +1 -1
  352. package/src/clis/weread/search.ts +1 -1
  353. package/src/clis/wikipedia/search.ts +32 -0
  354. package/src/clis/wikipedia/summary.ts +28 -0
  355. package/src/clis/wikipedia/utils.ts +20 -0
  356. package/src/clis/xiaohongshu/creator-note-detail.test.ts +272 -0
  357. package/src/clis/xiaohongshu/creator-note-detail.ts +425 -73
  358. package/src/clis/xiaohongshu/creator-notes-summary.test.ts +54 -0
  359. package/src/clis/xiaohongshu/creator-notes-summary.ts +120 -0
  360. package/src/clis/xiaohongshu/creator-notes.test.ts +211 -0
  361. package/src/clis/xiaohongshu/creator-notes.ts +254 -75
  362. package/src/clis/xiaohongshu/creator-profile.ts +0 -1
  363. package/src/clis/xiaohongshu/creator-stats.ts +0 -1
  364. package/src/clis/xiaohongshu/download.ts +2 -3
  365. package/src/clis/xiaohongshu/feed.yaml +0 -1
  366. package/src/clis/xiaohongshu/notifications.yaml +0 -1
  367. package/src/clis/xiaohongshu/search.ts +2 -2
  368. package/src/clis/xiaohongshu/user.ts +1 -2
  369. package/src/clis/yahoo-finance/quote.ts +0 -1
  370. package/src/clis/youtube/search.ts +1 -1
  371. package/src/clis/youtube/transcript.ts +1 -1
  372. package/src/clis/youtube/video.ts +1 -1
  373. package/src/clis/zhihu/download.ts +1 -2
  374. package/src/clis/zhihu/question.ts +1 -1
  375. package/src/clis/zhihu/search.yaml +4 -3
  376. package/src/commanderAdapter.ts +113 -0
  377. package/src/daemon.ts +3 -3
  378. package/src/{engine.ts → discovery.ts} +1 -108
  379. package/src/download/index.ts +21 -54
  380. package/src/engine.test.ts +8 -7
  381. package/src/execution.ts +138 -0
  382. package/src/explore.ts +135 -109
  383. package/src/external-clis.yaml +48 -0
  384. package/src/external.ts +185 -0
  385. package/src/main.ts +1 -1
  386. package/src/pipeline/steps/browser.ts +7 -2
  387. package/src/registry.ts +5 -0
  388. package/src/runtime.ts +9 -0
  389. package/src/serialization.ts +79 -0
  390. package/src/types.ts +1 -1
  391. package/tests/e2e/browser-public.test.ts +25 -0
  392. package/tests/e2e/public-commands.test.ts +55 -1
  393. package/dist/clis/twitter/trending.yaml +0 -46
  394. package/src/clis/twitter/trending.yaml +0 -46
  395. /package/dist/{chaoxing.test.d.ts → clis/arxiv/paper.d.ts} +0 -0
  396. /package/dist/{coupang.test.d.ts → clis/arxiv/search.d.ts} +0 -0
  397. /package/dist/{bilibili.js → clis/bilibili/utils.js} +0 -0
  398. /package/dist/{coupang.d.ts → clis/coupang/utils.d.ts} +0 -0
  399. /package/dist/{coupang.js → clis/coupang/utils.js} +0 -0
  400. /package/src/{coupang.ts → clis/coupang/utils.ts} +0 -0
@@ -166,10 +166,10 @@ cli({
166
166
 
167
167
  ### 3.4 公共模式复用
168
168
 
169
- 迁移过程中如果发现多个适配器共享逻辑,考虑提取到 `src/<site>.ts` 工具文件:
169
+ 迁移过程中如果发现多个适配器共享逻辑,考虑提取到 `src/clis/<site>/utils.ts` 工具文件:
170
170
 
171
171
  ```typescript
172
- // src/<site>.ts
172
+ // src/clis/<site>/utils.ts
173
173
  export async function fetchWithAuth(page, url) { ... }
174
174
  export function parseItem(raw) { ... }
175
175
  ```
@@ -19,6 +19,13 @@ Related issue:
19
19
  - [ ] I updated tests or docs if needed
20
20
  - [ ] I included output or screenshots when useful
21
21
 
22
+ ### Documentation (if adding/modifying an adapter)
23
+
24
+ - [ ] Added doc page under `docs/adapters/` (if new adapter)
25
+ - [ ] Updated `docs/adapters/index.md` table (if new adapter)
26
+ - [ ] Updated sidebar in `docs/.vitepress/config.mts` (if new adapter)
27
+
22
28
  ## Screenshots / Output
23
29
 
24
30
  <!-- If applicable, paste CLI output or screenshots here. -->
31
+
@@ -0,0 +1,36 @@
1
+ name: Doc Check
2
+
3
+ on:
4
+ pull_request:
5
+ branches: [main, dev]
6
+
7
+ concurrency:
8
+ group: doc-check-${{ github.ref }}
9
+ cancel-in-progress: true
10
+
11
+ jobs:
12
+ # ── Adapter doc coverage ──
13
+ doc-coverage:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - name: Check adapter doc coverage
19
+ run: bash scripts/check-doc-coverage.sh --strict
20
+
21
+ # ── VitePress build validation ──
22
+ docs-build:
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+
27
+ - uses: actions/setup-node@v4
28
+ with:
29
+ node-version: '22'
30
+ cache: 'npm'
31
+
32
+ - name: Install dependencies
33
+ run: npm ci
34
+
35
+ - name: Build docs (catches broken links & sidebar refs)
36
+ run: npm run docs:build
@@ -1,52 +1,17 @@
1
- name: Deploy Docs
1
+ name: Trigger Website Rebuild (Docs Updated)
2
2
 
3
3
  on:
4
4
  push:
5
5
  branches: [main]
6
6
  paths: ['docs/**']
7
- workflow_dispatch:
8
-
9
- permissions:
10
- contents: read
11
- pages: write
12
- id-token: write
13
-
14
- concurrency:
15
- group: pages
16
- cancel-in-progress: false
17
7
 
18
8
  jobs:
19
- build:
9
+ dispatch:
20
10
  runs-on: ubuntu-latest
21
11
  steps:
22
- - uses: actions/checkout@v4
23
- with:
24
- fetch-depth: 0
25
-
26
- - uses: actions/setup-node@v4
27
- with:
28
- node-version: 20
29
- cache: npm
30
-
31
- - name: Install dependencies
32
- run: npm ci
33
-
34
- - name: Build docs
35
- run: npm run docs:build
36
-
37
- - uses: actions/configure-pages@v4
38
-
39
- - uses: actions/upload-pages-artifact@v3
12
+ - name: Trigger opencli-website rebuild
13
+ uses: peter-evans/repository-dispatch@v3
40
14
  with:
41
- path: docs/.vitepress/dist
42
-
43
- deploy:
44
- environment:
45
- name: github-pages
46
- url: ${{ steps.deployment.outputs.page_url }}
47
- needs: build
48
- runs-on: ubuntu-latest
49
- steps:
50
- - name: Deploy to GitHub Pages
51
- id: deployment
52
- uses: actions/deploy-pages@v4
15
+ token: ${{ secrets.WEBSITE_DEPLOY_TOKEN }}
16
+ repository: jackwener/opencli-website
17
+ event-type: docs-updated
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.1.0](https://github.com/jackwener/opencli/compare/v1.0.6...v1.1.0) (2026-03-20)
4
+
5
+
6
+ ### Features
7
+
8
+ * add antigravity serve command — Anthropic API proxy ([35a0fed](https://github.com/jackwener/opencli/commit/35a0fed8a0c1cb714298f672c19f017bbc9a9630))
9
+ * add arxiv and wikipedia adapters ([#132](https://github.com/jackwener/opencli/issues/132)) ([3cda14a](https://github.com/jackwener/opencli/commit/3cda14a2ab502e3bebfba6cdd9842c35b2b66b41))
10
+ * add external CLI hub for discovery, auto-installation, and execution of external tools. ([b3e32d8](https://github.com/jackwener/opencli/commit/b3e32d8a05744c9bcdfef96f5ff3085ac72bd353))
11
+ * add sinafinance 7x24 news adapter ([#131](https://github.com/jackwener/opencli/issues/131)) ([02793e9](https://github.com/jackwener/opencli/commit/02793e990ef4bdfdde9d7a748960b8a9ed6ea988))
12
+ * **boss:** add 8 new recruitment management commands ([#133](https://github.com/jackwener/opencli/issues/133)) ([7e973ca](https://github.com/jackwener/opencli/commit/7e973ca59270029f33021a483ca4974dc3975d36))
13
+ * **serve:** implement auto new conv, model mapping, and precise completion detection ([0e8c96b](https://github.com/jackwener/opencli/commit/0e8c96b6d9baebad5deb90b9e0620af5570b259d))
14
+ * **serve:** use CDP mouse click + Input.insertText for reliable message injection ([c63af6d](https://github.com/jackwener/opencli/commit/c63af6d41808dddf6f0f76789aa6c042f391f0b0))
15
+ * xiaohongshu creator flows migration ([#124](https://github.com/jackwener/opencli/issues/124)) ([8f17259](https://github.com/jackwener/opencli/commit/8f1725982ec06d121d7c15b5cf3cda2f5941c32a))
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * **docs:** use base '/' for custom domain and add CNAME file ([#129](https://github.com/jackwener/opencli/issues/129)) ([2876750](https://github.com/jackwener/opencli/commit/2876750891bc8a66be577b06ead4db61852c8e81))
21
+ * **serve:** update model mappings to match actual Antigravity UI ([36bc57a](https://github.com/jackwener/opencli/commit/36bc57a9624cdfaa50ffb2c1ad7f9c518c5e6c55))
22
+ * type safety for wikiFetch and arxiv abstract truncation ([4600b9d](https://github.com/jackwener/opencli/commit/4600b9d46dc7b56ff564c5f100c3a94c6a792c06))
23
+ * use UTC+8 for XHS timestamp formatting (CI timezone fix) ([03f067d](https://github.com/jackwener/opencli/commit/03f067d90764487f0439705df36e1a5c969a7f98))
24
+ * **xiaohongshu:** use fixed UTC+8 offset in trend timestamp formatting (CI timezone fix) ([593436e](https://github.com/jackwener/opencli/commit/593436e4cb5852f396fbaaa9f87ef1a0b518e76d))
25
+
3
26
  ## [1.0.6](https://github.com/jackwener/opencli/compare/v1.0.5...v1.0.6) (2026-03-20)
4
27
 
5
28
 
package/CLI-EXPLORER.md CHANGED
@@ -196,7 +196,7 @@ cat src/clis/<site>/feed.ts # 读最相似的那个
196
196
 
197
197
  写 TS 适配器之前,先看看你的目标站点有没有**现成的 helper 函数**可以复用:
198
198
 
199
- #### Bilibili (`src/bilibili.ts`)
199
+ #### Bilibili (`src/clis/bilibili/utils.ts`)
200
200
 
201
201
  | 函数 | 用途 | 何时使用 |
202
202
  |------|------|----------|
@@ -342,10 +342,11 @@ name: search
342
342
  description: 知乎搜索
343
343
 
344
344
  args:
345
- keyword:
345
+ query:
346
346
  type: str
347
347
  required: true
348
- description: Search keyword
348
+ positional: true
349
+ description: Search query
349
350
  limit:
350
351
  type: int
351
352
  default: 10
@@ -355,7 +356,7 @@ pipeline:
355
356
 
356
357
  - evaluate: |
357
358
  (async () => {
358
- const q = encodeURIComponent('${{ args.keyword }}');
359
+ const q = encodeURIComponent('${{ args.query }}');
359
360
  const res = await fetch('/api/v4/search_v3?q=' + q + '&t=general&limit=${{ args.limit }}', {
360
361
  credentials: 'include'
361
362
  });
@@ -455,7 +456,7 @@ cli({
455
456
  name: 'search',
456
457
  description: 'Search tweets',
457
458
  strategy: Strategy.HEADER,
458
- args: [{ name: 'keyword', required: true }],
459
+ args: [{ name: 'query', required: true, positional: true }],
459
460
  columns: ['rank', 'author', 'text', 'likes'],
460
461
  func: async (page, kwargs) => {
461
462
  await page.goto('https://x.com');
@@ -474,7 +475,7 @@ cli({
474
475
  'X-Twitter-Auth-Type': 'OAuth2Session',
475
476
  };
476
477
 
477
- const variables = JSON.stringify({ rawQuery: '${kwargs.keyword}', count: 20 });
478
+ const variables = JSON.stringify({ rawQuery: '${kwargs.query}', count: 20 });
478
479
  const url = '/i/api/graphql/xxx/SearchTimeline?variables=' + encodeURIComponent(variables);
479
480
  const res = await fetch(url, { headers, credentials: 'include' });
480
481
  return await res.json();
@@ -631,7 +632,7 @@ git add src/clis/mysite/ && git commit -m "feat(mysite): add hot" && git push
631
632
  ```typescript
632
633
  import { cli, Strategy } from '../../registry.js';
633
634
  import type { IPage } from '../../types.js';
634
- import { apiGet } from '../../bilibili.js'; // 复用平台 SDK
635
+ import { apiGet } from './utils.js'; // 复用平台 SDK
635
636
 
636
637
  cli({
637
638
  site: 'bilibili',
@@ -694,7 +695,7 @@ cli({
694
695
  | 嵌套字段访问 | `${{ item.node?.title }}` 不工作 | 在 evaluate 中 flatten 数据,不在模板中用 optional chaining |
695
696
  | 缺少 `strategy: public` | 公开 API 也启动浏览器,7s → 1s | 公开 API 加上 `strategy: public` + `browser: false` |
696
697
  | evaluate 返回字符串 | map 步骤收到 `""` 而非数组 | pipeline 有 auto-parse,但建议在 evaluate 内 `.map()` 整形 |
697
- | 搜索参数被 URL 编码 | `${{ args.keyword }}` 被浏览器二次编码 | 在 evaluate 内用 `encodeURIComponent()` 手动编码 |
698
+ | 搜索参数被 URL 编码 | `${{ args.query }}` 被浏览器二次编码 | 在 evaluate 内用 `encodeURIComponent()` 手动编码 |
698
699
  | Cookie 过期 | 返回 401 / 空数据 | 在浏览器里重新登录目标站点 |
699
700
  | Extension tab 残留 | Chrome 多出 `chrome-extension://` tab | 已自动清理;若残留,手动关闭即可 |
700
701
  | TS evaluate 格式 | `() => {}` 报 `result is not a function` | TS 中 `page.evaluate()` 必须用 IIFE:`(async () => { ... })()` |
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # OpenCLI
2
2
 
3
- > **Make any website or Electron App your CLI.**
4
- > Zero risk · Reuse Chrome login · AI-powered discovery · Browser + Desktop automation
3
+ > **Make any website, Electron App, or Local Tool your CLI.**
4
+ > Zero risk · Reuse Chrome login · AI-powered discovery · Universal CLI Hub
5
5
 
6
6
  [中文文档](./README.zh-CN.md)
7
7
 
@@ -11,7 +11,9 @@
11
11
 
12
12
  A CLI tool that turns **any website** or **Electron app** into a command-line interface — Bilibili, Zhihu, 小红书, Twitter/X, Reddit, YouTube, Antigravity, and [many more](#built-in-commands) — powered by browser session reuse and AI-native discovery.
13
13
 
14
- 🔥 **CLI All Electron Apps! The Most Powerful Update Has Arrived!** 🔥
14
+ **Built for AI Agents**: Simply configure an instruction in your global `AGENT.md` or `.cursorrules` guiding the AI to execute `opencli list` via Bash to discover available tools. Register your favorite local CLIs (`opencli register mycli`), and the AI will automatically learn how to invoke all your tools perfectly!
15
+
16
+ **CLI All Electron Apps! The Most Powerful Update Has Arrived!**
15
17
  Turn ANY Electron application into a CLI tool! Recombine, script, and extend applications like Antigravity Ultra seamlessly. Now AI can control itself natively. Unlimited possibilities await!
16
18
 
17
19
  ---
@@ -39,6 +41,7 @@ Turn ANY Electron application into a CLI tool! Recombine, script, and extend app
39
41
  - **CLI All Electron** — CLI-ify apps like Antigravity Ultra! Now AI can control itself natively using cc/openclaw!
40
42
  - **Account-safe** — Reuses Chrome's logged-in state; your credentials never leave the browser.
41
43
  - **AI Agent ready** — `explore` discovers APIs, `synthesize` generates adapters, `cascade` finds auth strategies.
44
+ - **External CLI Hub** — Discover, auto-install, and passthrough commands to any external CLI (gh, obsidian, docker, kubectl, etc). Zero setup.
42
45
  - **Self-healing setup** — `opencli setup` verifies Browser Bridge connectivity; `opencli doctor` diagnoses daemon, extension, and live browser connectivity.
43
46
  - **Dynamic Loader** — Simply drop `.ts` or `.yaml` adapters into the `clis/` folder for auto-registration.
44
47
  - **Dual-Engine Architecture** — Supports both YAML declarative data pipelines and robust browser runtime TypeScript injections.
@@ -119,7 +122,7 @@ Run `opencli list` for the live registry.
119
122
  | **reddit** | `hot` `frontpage` `popular` `search` `subreddit` `read` `user` `user-posts` `user-comments` `upvote` `save` `comment` `subscribe` `saved` `upvoted` | Browser |
120
123
  | **cursor** | `status` `send` `read` `new` `dump` `composer` `model` `extract-code` `ask` `screenshot` `history` `export` | Desktop |
121
124
  | **bilibili** | `hot` `search` `me` `favorite` `history` `feed` `subtitle` `dynamic` `ranking` `following` `user-videos` `download` | Browser |
122
- | **codex** | `status` `send` `read` `new` `extract-diff` `model` `ask` `screenshot` `history` `export` | Desktop |
125
+ | **codex** | `status` `send` `read` `new` `dump` `extract-diff` `model` `ask` `screenshot` `history` `export` | Desktop |
123
126
  | **chatwise** | `status` `new` `send` `read` `ask` `model` `history` `export` `screenshot` | Desktop |
124
127
  | **notion** | `status` `search` `read` `new` `write` `sidebar` `favorites` `export` | Desktop |
125
128
  | **discord-app** | `status` `send` `read` `channels` `servers` `search` `members` | Desktop |
@@ -127,22 +130,60 @@ Run `opencli list` for the live registry.
127
130
  | **xueqiu** | `feed` `hot-stock` `hot` `search` `stock` `watchlist` | Browser |
128
131
  | **antigravity** | `status` `send` `read` `new` `dump` `extract-code` `model` `watch` | Desktop |
129
132
  | **chatgpt** | `status` `new` `send` `read` `ask` | Desktop |
130
- | **xiaohongshu** | `search` `notifications` `feed` `me` `user` `download` | Browser |
133
+ | **xiaohongshu** | `search` `notifications` `feed` `user` `download` `creator-notes` `creator-note-detail` `creator-notes-summary` `creator-profile` `creator-stats` | Browser |
131
134
  | **apple-podcasts** | `search` `episodes` `top` | Public |
132
135
  | **xiaoyuzhou** | `podcast` `podcast-episodes` `episode` | Public |
133
136
  | **zhihu** | `hot` `search` `question` `download` | Browser |
134
137
  | **youtube** | `search` `video` `transcript` | Browser |
135
- | **boss** | `search` `detail` | Browser |
138
+ | **boss** | `search` `detail` `recommend` `joblist` `greet` `batchgreet` `send` `chatlist` `chatmsg` `invite` `mark` `exchange` `resume` `stats` | Browser |
136
139
  | **coupang** | `search` `add-to-cart` | Browser |
137
140
  | **bbc** | `news` | Public |
141
+ | **bloomberg** | `main` `markets` `economics` `industries` `tech` `politics` `businessweek` `opinions` `feeds` `news` | Public / Browser |
138
142
  | **ctrip** | `search` | Browser |
139
143
  | **github** | `search` | Public |
144
+ | **arxiv** | `search` `paper` | Public |
145
+ | **wikipedia** | `search` `summary` | Public |
140
146
  | **hackernews** | `top` | Public |
141
147
  | **linkedin** | `search` | Browser |
142
148
  | **reuters** | `search` | Browser |
143
149
  | **smzdm** | `search` | Browser |
144
150
  | **weibo** | `hot` | Browser |
145
151
  | **yahoo-finance** | `quote` | Browser |
152
+ | **sinafinance** | `news` | 🌐 Public |
153
+ | **barchart** | `quote` `options` `greeks` `flow` | Browser |
154
+ | **chaoxing** | `assignments` `exams` | Browser |
155
+ | **grok** | `ask` | Desktop |
156
+ | **hf** | `top` | Public |
157
+ | **jike** | `feed` `search` `create` `like` `comment` `repost` `notifications` `post` `topic` `user` | Browser |
158
+ | **jimeng** | `generate` `history` | Browser |
159
+ | **linux-do** | `hot` `latest` `search` `categories` `category` `topic` | Public |
160
+ | **stackoverflow** | `hot` `search` `bounties` `unanswered` | Public |
161
+ | **steam** | `top-sellers` | Public |
162
+ | **weread** | `shelf` `search` `book` `highlights` `notes` `notebooks` `ranking` | Browser |
163
+
164
+ > **Bloomberg note**: The RSS-backed Bloomberg listing commands (`main`, section feeds, `feeds`) work without a browser. `bloomberg news` is for standard Bloomberg story/article pages that your current Chrome session can already access. Audio and some other non-standard pages may fail, and OpenCLI does not bypass Bloomberg paywall or entitlement checks.
165
+
166
+ ### External CLI Hub
167
+
168
+ OpenCLI acts as a universal hub for your existing command-line tools. It provides unified discovery, automatic installation, and pure passthrough execution.
169
+
170
+ | External CLI | Description | Commands Example |
171
+ |--------------|-------------|------------------|
172
+ | **gh** | GitHub CLI | `opencli gh pr list --limit 5` |
173
+ | **obsidian** | Obsidian vault management | `opencli obsidian search query="AI"` |
174
+ | **docker** | Docker command-line interface | `opencli docker ps` |
175
+ | **kubectl** | Kubernetes command-line tool | `opencli kubectl get pods` |
176
+ | **readwise** | Readwise & Reader CLI | `opencli readwise login` |
177
+
178
+ **Zero Configuration**: OpenCLI purely passes your inputs to the underlying binary via standard I/O streams. The external CLI works exactly as it naturally would, maintaining its standard output formats.
179
+
180
+ **Auto-Installation**: If you run `opencli gh ...` and `gh` is not installed on your system, OpenCLI will automatically try to install it using your system's package manager (e.g., `brew install gh`) before seamlessly re-running the command.
181
+
182
+ **Register Your Own**:
183
+ Add any local CLI to your OpenCLI registry so AI agents can automatically discover it via the `opencli list` command.
184
+ ```bash
185
+ opencli register mycli
186
+ ```
146
187
 
147
188
  ### Desktop App Adapters
148
189
 
@@ -189,23 +230,23 @@ brew install yt-dlp
189
230
 
190
231
  ```bash
191
232
  # Download images/videos from Xiaohongshu note
192
- opencli xiaohongshu download --note_id abc123 --output ./xhs
233
+ opencli xiaohongshu download --note-id abc123 --output ./xhs
193
234
 
194
235
  # Download Bilibili video (requires yt-dlp)
195
236
  opencli bilibili download --bvid BV1xxx --output ./bilibili
196
237
  opencli bilibili download --bvid BV1xxx --quality 1080p # Specify quality
197
238
 
198
239
  # Download Twitter media from user
199
- opencli twitter download --username elonmusk --limit 20 --output ./twitter
240
+ opencli twitter download elonmusk --limit 20 --output ./twitter
200
241
 
201
242
  # Download single tweet media
202
243
  opencli twitter download --tweet-url "https://x.com/user/status/123" --output ./twitter
203
244
 
204
245
  # Export Zhihu article to Markdown
205
- opencli zhihu download --url "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu
246
+ opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu
206
247
 
207
248
  # Export with local images
208
- opencli zhihu download --url "https://zhuanlan.zhihu.com/p/xxx" --download-images
249
+ opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --download-images
209
250
  ```
210
251
 
211
252
  ### Pipeline Step (for YAML adapters)
package/README.zh-CN.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # OpenCLI
2
2
 
3
- > **把任何网站或 Electron 应用变成你的命令行工具。**
4
- > 零风控 · 复用 Chrome 登录 · AI 自动发现接口 · 浏览器与桌面端自动化
3
+ > **把任何网站、本地工具、Electron 应用变成能够让 AI 调用的命令行!**
4
+ > 零风控 · 复用 Chrome 登录 · AI 自动发现接口 · 全能 CLI 枢纽
5
5
 
6
6
  [English](./README.md)
7
7
 
@@ -11,7 +11,9 @@
11
11
 
12
12
  OpenCLI 将任何网站或 Electron 应用(如 Antigravity)变成命令行工具 — B站、知乎、小红书、Twitter/X、Reddit、YouTube 等[多种站点与应用](#内置命令) — 复用浏览器登录态,AI 驱动探索。
13
13
 
14
- 🔥 **opencli 支持 CLI 化所有 electron 应用!最强大更新来袭!** 🔥
14
+ **专为 AI Agent 打造**:只需在全局 `.cursorrules` 或 `AGENT.md` 中配置简单指令,引导 AI 通过 Bash 执行 `opencli list` 来检索可用的 CLI 工具及其用法。随后,将你常用的 CLI 列表整合注册进去(`opencli register mycli`),AI 便能瞬间学会自动调用相应的本地工具!
15
+
16
+ **opencli 支持 CLI 化所有 electron 应用!最强大更新来袭!**
15
17
  CLI all electron!现在支持把所有 electron 应用 CLI 化,从而组合出各种神奇的能力。
16
18
  如果你在使用诸如 Antigravity Ultra 等工具时觉得不够灵活或难以扩展,现在通过 OpenCLI 把他 CLI 化,轻松打破界限。
17
19
  现在,**AI 可以自己控制自己**!结合 cc/openclaw 就可以远程控制任何 electron 应用!无限玩法!!
@@ -120,7 +122,7 @@ npm install -g @jackwener/opencli@latest
120
122
  | **reddit** | `hot` `frontpage` `popular` `search` `subreddit` `read` `user` `user-posts` `user-comments` `upvote` `save` `comment` `subscribe` `saved` `upvoted` | 浏览器 |
121
123
  | **cursor** | `status` `send` `read` `new` `dump` `composer` `model` `extract-code` `ask` `screenshot` `history` `export` | 桌面端 |
122
124
  | **bilibili** | `hot` `search` `me` `favorite` `history` `feed` `subtitle` `dynamic` `ranking` `following` `user-videos` `download` | 浏览器 |
123
- | **codex** | `status` `send` `read` `new` `extract-diff` `model` `ask` `screenshot` `history` `export` | 桌面端 |
125
+ | **codex** | `status` `send` `read` `new` `dump` `extract-diff` `model` `ask` `screenshot` `history` `export` | 桌面端 |
124
126
  | **chatwise** | `status` `new` `send` `read` `ask` `model` `history` `export` `screenshot` | 桌面端 |
125
127
  | **notion** | `status` `search` `read` `new` `write` `sidebar` `favorites` `export` | 桌面端 |
126
128
  | **discord-app** | `status` `send` `read` `channels` `servers` `search` `members` | 桌面端 |
@@ -128,22 +130,38 @@ npm install -g @jackwener/opencli@latest
128
130
  | **xueqiu** | `feed` `hot-stock` `hot` `search` `stock` `watchlist` | 浏览器 |
129
131
  | **antigravity** | `status` `send` `read` `new` `dump` `extract-code` `model` `watch` | 桌面端 |
130
132
  | **chatgpt** | `status` `new` `send` `read` `ask` | 桌面端 |
131
- | **xiaohongshu** | `search` `notifications` `feed` `me` `user` `download` | 浏览器 |
133
+ | **xiaohongshu** | `search` `notifications` `feed` `user` `download` `creator-notes` `creator-note-detail` `creator-notes-summary` `creator-profile` `creator-stats` | 浏览器 |
132
134
  | **apple-podcasts** | `search` `episodes` `top` | 公开 |
133
135
  | **xiaoyuzhou** | `podcast` `podcast-episodes` `episode` | 公开 |
134
136
  | **zhihu** | `hot` `search` `question` `download` | 浏览器 |
135
137
  | **youtube** | `search` `video` `transcript` | 浏览器 |
136
- | **boss** | `search` `detail` | 浏览器 |
138
+ | **boss** | `search` `detail` `recommend` `joblist` `greet` `batchgreet` `send` `chatlist` `chatmsg` `invite` `mark` `exchange` `resume` `stats` | 浏览器 |
137
139
  | **coupang** | `search` `add-to-cart` | 浏览器 |
138
140
  | **bbc** | `news` | 公共 API |
141
+ | **bloomberg** | `main` `markets` `economics` `industries` `tech` `politics` `businessweek` `opinions` `feeds` `news` | 公共 API / 浏览器 |
139
142
  | **ctrip** | `search` | 浏览器 |
140
143
  | **github** | `search` | 公共 API |
144
+ | **arxiv** | `search` `paper` | 公开 |
145
+ | **wikipedia** | `search` `summary` | 公开 |
141
146
  | **hackernews** | `top` | 公共 API |
142
147
  | **linkedin** | `search` | 浏览器 |
143
148
  | **reuters** | `search` | 浏览器 |
144
149
  | **smzdm** | `search` | 浏览器 |
145
150
  | **weibo** | `hot` | 浏览器 |
146
151
  | **yahoo-finance** | `quote` | 浏览器 |
152
+ | **sinafinance** | `news` | 🌐 公开 |
153
+ | **barchart** | `quote` `options` `greeks` `flow` | 浏览器 |
154
+ | **chaoxing** | `assignments` `exams` | 浏览器 |
155
+ | **grok** | `ask` | 桌面端 |
156
+ | **hf** | `top` | 公开 |
157
+ | **jike** | `feed` `search` `create` `like` `comment` `repost` `notifications` `post` `topic` `user` | 浏览器 |
158
+ | **jimeng** | `generate` `history` | 浏览器 |
159
+ | **linux-do** | `hot` `latest` `search` `categories` `category` `topic` | 公开 |
160
+ | **stackoverflow** | `hot` `search` `bounties` `unanswered` | 公开 |
161
+ | **steam** | `top-sellers` | 公开 |
162
+ | **weread** | `shelf` `search` `book` `highlights` `notes` `notebooks` `ranking` | 浏览器 |
163
+
164
+ > **Bloomberg 说明**:Bloomberg 的 RSS 列表命令(`main`、各栏目 feed、`feeds`)无需浏览器即可使用。`bloomberg news` 适用于当前 Chrome 会话本身就能访问的标准 Bloomberg 文章页。音频页和部分非标准页面可能失败,OpenCLI 也不会绕过 Bloomberg 的付费墙、登录或权限校验。
147
165
 
148
166
  ### 桌面应用适配器
149
167
 
@@ -190,23 +208,23 @@ brew install yt-dlp
190
208
 
191
209
  ```bash
192
210
  # 下载小红书笔记中的图片/视频
193
- opencli xiaohongshu download --note_id abc123 --output ./xhs
211
+ opencli xiaohongshu download --note-id abc123 --output ./xhs
194
212
 
195
213
  # 下载B站视频(需要 yt-dlp)
196
214
  opencli bilibili download --bvid BV1xxx --output ./bilibili
197
215
  opencli bilibili download --bvid BV1xxx --quality 1080p # 指定画质
198
216
 
199
217
  # 下载 Twitter 用户的媒体
200
- opencli twitter download --username elonmusk --limit 20 --output ./twitter
218
+ opencli twitter download elonmusk --limit 20 --output ./twitter
201
219
 
202
220
  # 下载单条推文的媒体
203
221
  opencli twitter download --tweet-url "https://x.com/user/status/123" --output ./twitter
204
222
 
205
223
  # 导出知乎文章为 Markdown
206
- opencli zhihu download --url "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu
224
+ opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu
207
225
 
208
- # 导出文章并下载图片到本地
209
- opencli zhihu download --url "https://zhuanlan.zhihu.com/p/xxx" --download-images
226
+ # 导出并下载图片
227
+ opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --download-images
210
228
  ```
211
229
 
212
230
  ### Pipeline Step(用于 YAML 适配器)