@jackwener/opencli 1.1.1 → 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 (509) hide show
  1. package/CONTRIBUTING.md +39 -1
  2. package/README.md +9 -10
  3. package/README.zh-CN.md +39 -17
  4. package/SKILL.md +10 -5
  5. package/dist/browser/cdp.d.ts +4 -4
  6. package/dist/browser/cdp.js +39 -16
  7. package/dist/browser/daemon-client.d.ts +2 -1
  8. package/dist/browser/dom-helpers.js +38 -7
  9. package/dist/browser/dom-snapshot.d.ts +86 -0
  10. package/dist/browser/dom-snapshot.js +729 -0
  11. package/dist/browser/dom-snapshot.test.d.ts +11 -0
  12. package/dist/browser/dom-snapshot.test.js +212 -0
  13. package/dist/browser/index.d.ts +2 -0
  14. package/dist/browser/index.js +1 -0
  15. package/dist/browser/page.d.ts +14 -24
  16. package/dist/browser/page.js +37 -4
  17. package/dist/build-manifest.d.ts +11 -4
  18. package/dist/build-manifest.js +59 -21
  19. package/dist/build-manifest.test.js +58 -2
  20. package/dist/cli-manifest.json +3856 -1509
  21. package/dist/cli.js +66 -0
  22. package/dist/clis/barchart/greeks.js +1 -1
  23. package/dist/clis/barchart/options.js +1 -1
  24. package/dist/clis/barchart/quote.js +1 -1
  25. package/dist/clis/bilibili/download.js +1 -1
  26. package/dist/clis/bilibili/following.js +1 -1
  27. package/dist/clis/bilibili/subtitle.js +1 -1
  28. package/dist/clis/bilibili/user-videos.js +1 -1
  29. package/dist/clis/boss/batchgreet.js +10 -97
  30. package/dist/clis/boss/chatlist.js +8 -25
  31. package/dist/clis/boss/chatmsg.js +11 -42
  32. package/dist/clis/boss/common.d.ts +92 -0
  33. package/dist/clis/boss/common.js +223 -0
  34. package/dist/clis/boss/detail.js +7 -49
  35. package/dist/clis/boss/exchange.js +13 -79
  36. package/dist/clis/boss/greet.js +18 -145
  37. package/dist/clis/boss/invite.js +26 -121
  38. package/dist/clis/boss/joblist.js +6 -31
  39. package/dist/clis/boss/mark.js +12 -85
  40. package/dist/clis/boss/recommend.js +10 -49
  41. package/dist/clis/boss/resume.js +18 -118
  42. package/dist/clis/boss/search.js +12 -60
  43. package/dist/clis/boss/send.js +17 -151
  44. package/dist/clis/boss/stats.js +18 -69
  45. package/dist/clis/coupang/add-to-cart.js +1 -1
  46. package/dist/clis/devto/tag.yaml +34 -0
  47. package/dist/clis/devto/top.yaml +29 -0
  48. package/dist/clis/devto/user.yaml +33 -0
  49. package/dist/clis/douban/book-hot.d.ts +1 -0
  50. package/dist/clis/douban/book-hot.js +14 -0
  51. package/dist/clis/douban/marks.d.ts +1 -0
  52. package/dist/clis/douban/marks.js +115 -0
  53. package/dist/clis/douban/movie-hot.d.ts +1 -0
  54. package/dist/clis/douban/movie-hot.js +14 -0
  55. package/dist/clis/douban/reviews.d.ts +1 -0
  56. package/dist/clis/douban/reviews.js +106 -0
  57. package/dist/clis/douban/search.d.ts +1 -0
  58. package/dist/clis/douban/search.js +16 -0
  59. package/dist/clis/douban/shared.d.ts +4 -0
  60. package/dist/clis/douban/shared.js +155 -0
  61. package/dist/clis/douban/subject.yaml +76 -0
  62. package/dist/clis/douban/top250.yaml +70 -0
  63. package/dist/clis/douban/utils.d.ts +35 -0
  64. package/dist/clis/douban/utils.js +48 -0
  65. package/dist/clis/facebook/add-friend.yaml +43 -0
  66. package/dist/clis/facebook/events.yaml +44 -0
  67. package/dist/clis/facebook/feed.yaml +63 -0
  68. package/dist/clis/facebook/friends.yaml +42 -0
  69. package/dist/clis/facebook/groups.yaml +50 -0
  70. package/dist/clis/facebook/join-group.yaml +44 -0
  71. package/dist/clis/facebook/memories.yaml +39 -0
  72. package/dist/clis/facebook/notifications.yaml +40 -0
  73. package/dist/clis/facebook/profile.yaml +37 -0
  74. package/dist/clis/facebook/search.yaml +46 -0
  75. package/dist/clis/google/news.d.ts +5 -0
  76. package/dist/clis/google/news.js +58 -0
  77. package/dist/clis/google/search.d.ts +10 -0
  78. package/dist/clis/google/search.js +127 -0
  79. package/dist/clis/google/suggest.d.ts +5 -0
  80. package/dist/clis/google/suggest.js +34 -0
  81. package/dist/clis/google/trends.d.ts +5 -0
  82. package/dist/clis/google/trends.js +38 -0
  83. package/dist/clis/google/utils.d.ts +9 -0
  84. package/dist/clis/google/utils.js +23 -0
  85. package/dist/clis/google/utils.test.d.ts +1 -0
  86. package/dist/clis/google/utils.test.js +75 -0
  87. package/dist/clis/grok/ask.d.ts +14 -0
  88. package/dist/clis/grok/ask.js +257 -65
  89. package/dist/clis/grok/ask.test.d.ts +1 -0
  90. package/dist/clis/grok/ask.test.js +36 -0
  91. package/dist/clis/instagram/comment.yaml +52 -0
  92. package/dist/clis/instagram/explore.yaml +43 -0
  93. package/dist/clis/instagram/follow.yaml +41 -0
  94. package/dist/clis/instagram/followers.yaml +51 -0
  95. package/dist/clis/instagram/following.yaml +51 -0
  96. package/dist/clis/instagram/like.yaml +46 -0
  97. package/dist/clis/instagram/profile.yaml +42 -0
  98. package/dist/clis/instagram/save.yaml +46 -0
  99. package/dist/clis/instagram/saved.yaml +40 -0
  100. package/dist/clis/instagram/search.yaml +43 -0
  101. package/dist/clis/instagram/unfollow.yaml +38 -0
  102. package/dist/clis/instagram/unlike.yaml +46 -0
  103. package/dist/clis/instagram/unsave.yaml +46 -0
  104. package/dist/clis/instagram/user.yaml +54 -0
  105. package/dist/clis/jike/repost.js +1 -1
  106. package/dist/clis/jimeng/generate.yaml +1 -0
  107. package/dist/clis/linux-do/category.yaml +1 -0
  108. package/dist/clis/lobsters/active.yaml +29 -0
  109. package/dist/clis/lobsters/hot.yaml +29 -0
  110. package/dist/clis/lobsters/newest.yaml +29 -0
  111. package/dist/clis/lobsters/tag.yaml +34 -0
  112. package/dist/clis/medium/feed.d.ts +1 -0
  113. package/dist/clis/medium/feed.js +15 -0
  114. package/dist/clis/medium/search.d.ts +1 -0
  115. package/dist/clis/medium/search.js +15 -0
  116. package/dist/clis/medium/shared.d.ts +5 -0
  117. package/dist/clis/medium/shared.js +78 -0
  118. package/dist/clis/medium/user.d.ts +1 -0
  119. package/dist/clis/medium/user.js +15 -0
  120. package/dist/clis/reddit/comment.js +1 -1
  121. package/dist/clis/reddit/read.js +1 -1
  122. package/dist/clis/reddit/save.js +1 -1
  123. package/dist/clis/reddit/subreddit.yaml +1 -0
  124. package/dist/clis/reddit/subscribe.js +1 -1
  125. package/dist/clis/reddit/upvote.js +1 -1
  126. package/dist/clis/sinablog/article.d.ts +1 -0
  127. package/dist/clis/sinablog/article.js +14 -0
  128. package/dist/clis/sinablog/hot.d.ts +1 -0
  129. package/dist/clis/sinablog/hot.js +14 -0
  130. package/dist/clis/sinablog/search.d.ts +1 -0
  131. package/dist/clis/sinablog/search.js +51 -0
  132. package/dist/clis/sinablog/shared.d.ts +7 -0
  133. package/dist/clis/sinablog/shared.js +187 -0
  134. package/dist/clis/sinablog/user.d.ts +1 -0
  135. package/dist/clis/sinablog/user.js +15 -0
  136. package/dist/clis/substack/feed.d.ts +1 -0
  137. package/dist/clis/substack/feed.js +15 -0
  138. package/dist/clis/substack/publication.d.ts +1 -0
  139. package/dist/clis/substack/publication.js +15 -0
  140. package/dist/clis/substack/search.d.ts +1 -0
  141. package/dist/clis/substack/search.js +77 -0
  142. package/dist/clis/substack/shared.d.ts +4 -0
  143. package/dist/clis/substack/shared.js +129 -0
  144. package/dist/clis/tiktok/comment.yaml +66 -0
  145. package/dist/clis/tiktok/explore.yaml +39 -0
  146. package/dist/clis/tiktok/follow.yaml +39 -0
  147. package/dist/clis/tiktok/following.yaml +46 -0
  148. package/dist/clis/tiktok/friends.yaml +47 -0
  149. package/dist/clis/tiktok/like.yaml +38 -0
  150. package/dist/clis/tiktok/live.yaml +51 -0
  151. package/dist/clis/tiktok/notifications.yaml +52 -0
  152. package/dist/clis/tiktok/profile.yaml +45 -0
  153. package/dist/clis/tiktok/save.yaml +34 -0
  154. package/dist/clis/tiktok/search.yaml +46 -0
  155. package/dist/clis/tiktok/unfollow.yaml +44 -0
  156. package/dist/clis/tiktok/unlike.yaml +38 -0
  157. package/dist/clis/tiktok/unsave.yaml +36 -0
  158. package/dist/clis/tiktok/user.yaml +44 -0
  159. package/dist/clis/twitter/download.d.ts +1 -1
  160. package/dist/clis/twitter/download.js +3 -3
  161. package/dist/clis/twitter/followers.js +1 -1
  162. package/dist/clis/twitter/following.js +1 -1
  163. package/dist/clis/twitter/thread.js +1 -1
  164. package/dist/clis/twitter/timeline.d.ts +23 -0
  165. package/dist/clis/twitter/timeline.js +42 -14
  166. package/dist/clis/twitter/timeline.test.d.ts +1 -0
  167. package/dist/clis/twitter/timeline.test.js +102 -0
  168. package/dist/clis/wikipedia/random.d.ts +1 -0
  169. package/dist/clis/wikipedia/random.js +19 -0
  170. package/dist/clis/wikipedia/search.js +3 -3
  171. package/dist/clis/wikipedia/summary.js +4 -9
  172. package/dist/clis/wikipedia/trending.d.ts +1 -0
  173. package/dist/clis/wikipedia/trending.js +35 -0
  174. package/dist/clis/wikipedia/utils.d.ts +28 -0
  175. package/dist/clis/wikipedia/utils.js +13 -0
  176. package/dist/clis/xiaohongshu/creator-note-detail.js +1 -1
  177. package/dist/clis/xiaohongshu/creator-note-detail.test.js +2 -0
  178. package/dist/clis/xiaohongshu/creator-notes.test.js +2 -0
  179. package/dist/clis/xiaohongshu/download.js +1 -1
  180. package/dist/clis/xueqiu/earnings-date.yaml +69 -0
  181. package/dist/clis/xueqiu/search.yaml +2 -1
  182. package/dist/clis/xueqiu/stock.yaml +2 -0
  183. package/dist/clis/yahoo-finance/quote.js +1 -1
  184. package/dist/commanderAdapter.js +13 -7
  185. package/dist/discovery.d.ts +8 -0
  186. package/dist/discovery.js +105 -19
  187. package/dist/doctor.js +3 -1
  188. package/dist/doctor.test.js +46 -2
  189. package/dist/engine.test.d.ts +0 -3
  190. package/dist/engine.test.js +74 -6
  191. package/dist/execution.d.ts +4 -2
  192. package/dist/execution.js +31 -7
  193. package/dist/explore.d.ts +76 -3
  194. package/dist/explore.js +11 -4
  195. package/dist/generate.d.ts +41 -2
  196. package/dist/generate.js +5 -4
  197. package/dist/main.js +2 -1
  198. package/dist/pipeline/executor.d.ts +2 -2
  199. package/dist/pipeline/executor.js +2 -2
  200. package/dist/pipeline/executor.test.js +33 -6
  201. package/dist/pipeline/registry.d.ts +1 -1
  202. package/dist/pipeline/steps/browser.d.ts +7 -7
  203. package/dist/pipeline/steps/browser.js +15 -7
  204. package/dist/pipeline/steps/fetch.d.ts +1 -1
  205. package/dist/pipeline/steps/fetch.js +11 -7
  206. package/dist/pipeline/steps/transform.d.ts +6 -5
  207. package/dist/pipeline/steps/transform.js +30 -9
  208. package/dist/pipeline/template.d.ts +6 -6
  209. package/dist/pipeline/template.js +43 -5
  210. package/dist/pipeline/template.test.js +18 -0
  211. package/dist/pipeline/transform.test.js +11 -0
  212. package/dist/plugin.d.ts +31 -0
  213. package/dist/plugin.js +216 -0
  214. package/dist/plugin.test.d.ts +4 -0
  215. package/dist/plugin.test.js +76 -0
  216. package/dist/registry-api.d.ts +11 -0
  217. package/dist/registry-api.js +9 -0
  218. package/dist/registry.d.ts +11 -0
  219. package/dist/registry.js +6 -1
  220. package/dist/synthesize.d.ts +94 -4
  221. package/dist/synthesize.js +5 -4
  222. package/dist/types.d.ts +39 -26
  223. package/dist/validate.js +8 -2
  224. package/docs/.vitepress/config.mts +6 -4
  225. package/docs/adapters/browser/barchart.md +6 -5
  226. package/docs/adapters/browser/bilibili.md +9 -0
  227. package/docs/adapters/browser/devto.md +35 -0
  228. package/docs/adapters/browser/douban.md +38 -0
  229. package/docs/adapters/browser/facebook.md +36 -0
  230. package/docs/adapters/browser/google.md +62 -0
  231. package/docs/adapters/browser/grok.md +26 -8
  232. package/docs/adapters/browser/instagram.md +46 -0
  233. package/docs/adapters/browser/lobsters.md +32 -0
  234. package/docs/adapters/browser/medium.md +32 -0
  235. package/docs/adapters/browser/reddit.md +9 -0
  236. package/docs/adapters/browser/sinablog.md +36 -0
  237. package/docs/adapters/browser/substack.md +38 -0
  238. package/docs/adapters/browser/tiktok.md +68 -0
  239. package/docs/adapters/browser/wikipedia.md +11 -2
  240. package/docs/adapters/browser/xueqiu.md +10 -0
  241. package/docs/adapters/browser/yahoo-finance.md +6 -5
  242. package/docs/adapters/desktop/antigravity.md +6 -0
  243. package/docs/adapters/desktop/chatgpt.md +2 -1
  244. package/docs/adapters/desktop/codex.md +5 -1
  245. package/docs/adapters/desktop/cursor.md +4 -0
  246. package/docs/adapters/desktop/discord.md +7 -7
  247. package/docs/adapters/index.md +1 -4
  248. package/docs/guide/getting-started.md +1 -0
  249. package/docs/guide/plugins.md +153 -0
  250. package/docs/zh/guide/plugins.md +107 -0
  251. package/extension/src/background.ts +18 -11
  252. package/package.json +10 -5
  253. package/scripts/clean-dist.cjs +13 -0
  254. package/src/browser/cdp.ts +71 -31
  255. package/src/browser/daemon-client.ts +2 -1
  256. package/src/browser/dom-helpers.ts +38 -7
  257. package/src/browser/dom-snapshot.test.ts +249 -0
  258. package/src/browser/dom-snapshot.ts +770 -0
  259. package/src/browser/index.ts +2 -0
  260. package/src/browser/page.ts +50 -19
  261. package/src/build-manifest.test.ts +70 -2
  262. package/src/build-manifest.ts +94 -26
  263. package/src/cli.ts +71 -2
  264. package/src/clis/barchart/greeks.ts +1 -1
  265. package/src/clis/barchart/options.ts +1 -1
  266. package/src/clis/barchart/quote.ts +1 -1
  267. package/src/clis/bilibili/download.ts +1 -1
  268. package/src/clis/bilibili/following.ts +1 -1
  269. package/src/clis/bilibili/subtitle.ts +1 -1
  270. package/src/clis/bilibili/user-videos.ts +1 -1
  271. package/src/clis/boss/batchgreet.ts +14 -106
  272. package/src/clis/boss/chatlist.ts +12 -26
  273. package/src/clis/boss/chatmsg.ts +16 -40
  274. package/src/clis/boss/common.ts +287 -0
  275. package/src/clis/boss/detail.ts +8 -54
  276. package/src/clis/boss/exchange.ts +15 -89
  277. package/src/clis/boss/greet.ts +23 -160
  278. package/src/clis/boss/invite.ts +36 -133
  279. package/src/clis/boss/joblist.ts +7 -36
  280. package/src/clis/boss/mark.ts +13 -94
  281. package/src/clis/boss/recommend.ts +12 -57
  282. package/src/clis/boss/resume.ts +19 -124
  283. package/src/clis/boss/search.ts +13 -66
  284. package/src/clis/boss/send.ts +21 -161
  285. package/src/clis/boss/stats.ts +19 -74
  286. package/src/clis/coupang/add-to-cart.ts +1 -1
  287. package/src/clis/devto/tag.yaml +34 -0
  288. package/src/clis/devto/top.yaml +29 -0
  289. package/src/clis/devto/user.yaml +33 -0
  290. package/src/clis/douban/book-hot.ts +15 -0
  291. package/src/clis/douban/marks.ts +135 -0
  292. package/src/clis/douban/movie-hot.ts +15 -0
  293. package/src/clis/douban/reviews.ts +127 -0
  294. package/src/clis/douban/search.ts +17 -0
  295. package/src/clis/douban/shared.ts +165 -0
  296. package/src/clis/douban/subject.yaml +76 -0
  297. package/src/clis/douban/top250.yaml +70 -0
  298. package/src/clis/douban/utils.ts +81 -0
  299. package/src/clis/facebook/add-friend.yaml +43 -0
  300. package/src/clis/facebook/events.yaml +44 -0
  301. package/src/clis/facebook/feed.yaml +63 -0
  302. package/src/clis/facebook/friends.yaml +42 -0
  303. package/src/clis/facebook/groups.yaml +50 -0
  304. package/src/clis/facebook/join-group.yaml +44 -0
  305. package/src/clis/facebook/memories.yaml +39 -0
  306. package/src/clis/facebook/notifications.yaml +40 -0
  307. package/src/clis/facebook/profile.yaml +37 -0
  308. package/src/clis/facebook/search.yaml +46 -0
  309. package/src/clis/google/news.ts +66 -0
  310. package/src/clis/google/search.ts +133 -0
  311. package/src/clis/google/suggest.ts +40 -0
  312. package/src/clis/google/trends.ts +44 -0
  313. package/src/clis/google/utils.test.ts +82 -0
  314. package/src/clis/google/utils.ts +24 -0
  315. package/src/clis/grok/ask.test.ts +53 -0
  316. package/src/clis/grok/ask.ts +300 -69
  317. package/src/clis/instagram/comment.yaml +52 -0
  318. package/src/clis/instagram/explore.yaml +43 -0
  319. package/src/clis/instagram/follow.yaml +41 -0
  320. package/src/clis/instagram/followers.yaml +51 -0
  321. package/src/clis/instagram/following.yaml +51 -0
  322. package/src/clis/instagram/like.yaml +46 -0
  323. package/src/clis/instagram/profile.yaml +42 -0
  324. package/src/clis/instagram/save.yaml +46 -0
  325. package/src/clis/instagram/saved.yaml +40 -0
  326. package/src/clis/instagram/search.yaml +43 -0
  327. package/src/clis/instagram/unfollow.yaml +38 -0
  328. package/src/clis/instagram/unlike.yaml +46 -0
  329. package/src/clis/instagram/unsave.yaml +46 -0
  330. package/src/clis/instagram/user.yaml +54 -0
  331. package/src/clis/jike/repost.ts +1 -1
  332. package/src/clis/jimeng/generate.yaml +1 -0
  333. package/src/clis/linux-do/category.yaml +1 -0
  334. package/src/clis/lobsters/active.yaml +29 -0
  335. package/src/clis/lobsters/hot.yaml +29 -0
  336. package/src/clis/lobsters/newest.yaml +29 -0
  337. package/src/clis/lobsters/tag.yaml +34 -0
  338. package/src/clis/medium/feed.ts +16 -0
  339. package/src/clis/medium/search.ts +16 -0
  340. package/src/clis/medium/shared.ts +83 -0
  341. package/src/clis/medium/user.ts +16 -0
  342. package/src/clis/reddit/comment.ts +1 -1
  343. package/src/clis/reddit/read.ts +1 -1
  344. package/src/clis/reddit/save.ts +1 -1
  345. package/src/clis/reddit/subreddit.yaml +1 -0
  346. package/src/clis/reddit/subscribe.ts +1 -1
  347. package/src/clis/reddit/upvote.ts +1 -1
  348. package/src/clis/sinablog/article.ts +15 -0
  349. package/src/clis/sinablog/hot.ts +15 -0
  350. package/src/clis/sinablog/search.ts +56 -0
  351. package/src/clis/sinablog/shared.ts +198 -0
  352. package/src/clis/sinablog/user.ts +16 -0
  353. package/src/clis/substack/feed.ts +16 -0
  354. package/src/clis/substack/publication.ts +16 -0
  355. package/src/clis/substack/search.ts +91 -0
  356. package/src/clis/substack/shared.ts +132 -0
  357. package/src/clis/tiktok/comment.yaml +66 -0
  358. package/src/clis/tiktok/explore.yaml +39 -0
  359. package/src/clis/tiktok/follow.yaml +39 -0
  360. package/src/clis/tiktok/following.yaml +46 -0
  361. package/src/clis/tiktok/friends.yaml +47 -0
  362. package/src/clis/tiktok/like.yaml +38 -0
  363. package/src/clis/tiktok/live.yaml +51 -0
  364. package/src/clis/tiktok/notifications.yaml +52 -0
  365. package/src/clis/tiktok/profile.yaml +45 -0
  366. package/src/clis/tiktok/save.yaml +34 -0
  367. package/src/clis/tiktok/search.yaml +46 -0
  368. package/src/clis/tiktok/unfollow.yaml +44 -0
  369. package/src/clis/tiktok/unlike.yaml +38 -0
  370. package/src/clis/tiktok/unsave.yaml +36 -0
  371. package/src/clis/tiktok/user.yaml +44 -0
  372. package/src/clis/twitter/download.ts +3 -3
  373. package/src/clis/twitter/followers.ts +1 -1
  374. package/src/clis/twitter/following.ts +1 -1
  375. package/src/clis/twitter/thread.ts +1 -1
  376. package/src/clis/twitter/timeline.test.ts +109 -0
  377. package/src/clis/twitter/timeline.ts +59 -19
  378. package/src/clis/wikipedia/random.ts +19 -0
  379. package/src/clis/wikipedia/search.ts +10 -4
  380. package/src/clis/wikipedia/summary.ts +4 -9
  381. package/src/clis/wikipedia/trending.ts +41 -0
  382. package/src/clis/wikipedia/utils.ts +31 -0
  383. package/src/clis/xiaohongshu/creator-note-detail.test.ts +2 -0
  384. package/src/clis/xiaohongshu/creator-note-detail.ts +1 -1
  385. package/src/clis/xiaohongshu/creator-notes.test.ts +2 -0
  386. package/src/clis/xiaohongshu/download.ts +1 -1
  387. package/src/clis/xueqiu/earnings-date.yaml +69 -0
  388. package/src/clis/xueqiu/search.yaml +2 -1
  389. package/src/clis/xueqiu/stock.yaml +2 -0
  390. package/src/clis/yahoo-finance/quote.ts +1 -1
  391. package/src/commanderAdapter.ts +17 -10
  392. package/src/discovery.ts +134 -24
  393. package/src/doctor.test.ts +59 -2
  394. package/src/doctor.ts +4 -2
  395. package/src/engine.test.ts +79 -6
  396. package/src/execution.ts +42 -16
  397. package/src/explore.ts +77 -9
  398. package/src/generate.ts +58 -9
  399. package/src/main.ts +2 -1
  400. package/src/pipeline/executor.test.ts +35 -6
  401. package/src/pipeline/executor.ts +11 -7
  402. package/src/pipeline/registry.ts +3 -3
  403. package/src/pipeline/steps/browser.ts +24 -15
  404. package/src/pipeline/steps/fetch.ts +18 -13
  405. package/src/pipeline/steps/transform.ts +40 -15
  406. package/src/pipeline/template.test.ts +18 -0
  407. package/src/pipeline/template.ts +86 -13
  408. package/src/pipeline/transform.test.ts +15 -2
  409. package/src/plugin.test.ts +86 -0
  410. package/src/plugin.ts +254 -0
  411. package/src/registry-api.ts +12 -0
  412. package/src/registry.ts +19 -1
  413. package/src/synthesize.ts +102 -21
  414. package/src/types.ts +44 -12
  415. package/src/validate.ts +19 -4
  416. package/tests/e2e/browser-public.test.ts +11 -0
  417. package/tests/e2e/public-commands.test.ts +64 -0
  418. package/dist/clis/feishu/new.d.ts +0 -1
  419. package/dist/clis/feishu/new.js +0 -27
  420. package/dist/clis/feishu/read.d.ts +0 -1
  421. package/dist/clis/feishu/read.js +0 -40
  422. package/dist/clis/feishu/search.d.ts +0 -1
  423. package/dist/clis/feishu/search.js +0 -30
  424. package/dist/clis/feishu/send.d.ts +0 -1
  425. package/dist/clis/feishu/send.js +0 -39
  426. package/dist/clis/feishu/status.d.ts +0 -1
  427. package/dist/clis/feishu/status.js +0 -28
  428. package/dist/clis/neteasemusic/like.d.ts +0 -1
  429. package/dist/clis/neteasemusic/like.js +0 -25
  430. package/dist/clis/neteasemusic/lyrics.d.ts +0 -1
  431. package/dist/clis/neteasemusic/lyrics.js +0 -47
  432. package/dist/clis/neteasemusic/next.d.ts +0 -1
  433. package/dist/clis/neteasemusic/next.js +0 -26
  434. package/dist/clis/neteasemusic/play.d.ts +0 -1
  435. package/dist/clis/neteasemusic/play.js +0 -26
  436. package/dist/clis/neteasemusic/playing.d.ts +0 -1
  437. package/dist/clis/neteasemusic/playing.js +0 -59
  438. package/dist/clis/neteasemusic/playlist.d.ts +0 -1
  439. package/dist/clis/neteasemusic/playlist.js +0 -46
  440. package/dist/clis/neteasemusic/prev.d.ts +0 -1
  441. package/dist/clis/neteasemusic/prev.js +0 -25
  442. package/dist/clis/neteasemusic/search.d.ts +0 -1
  443. package/dist/clis/neteasemusic/search.js +0 -52
  444. package/dist/clis/neteasemusic/status.d.ts +0 -1
  445. package/dist/clis/neteasemusic/status.js +0 -16
  446. package/dist/clis/neteasemusic/volume.d.ts +0 -1
  447. package/dist/clis/neteasemusic/volume.js +0 -54
  448. package/dist/clis/wechat/chats.d.ts +0 -1
  449. package/dist/clis/wechat/chats.js +0 -28
  450. package/dist/clis/wechat/contacts.d.ts +0 -1
  451. package/dist/clis/wechat/contacts.js +0 -28
  452. package/dist/clis/wechat/read.d.ts +0 -1
  453. package/dist/clis/wechat/read.js +0 -58
  454. package/dist/clis/wechat/search.d.ts +0 -1
  455. package/dist/clis/wechat/search.js +0 -31
  456. package/dist/clis/wechat/send.d.ts +0 -1
  457. package/dist/clis/wechat/send.js +0 -42
  458. package/dist/clis/wechat/status.d.ts +0 -1
  459. package/dist/clis/wechat/status.js +0 -29
  460. package/dist/pipeline.d.ts +0 -7
  461. package/dist/pipeline.js +0 -7
  462. package/docs/adapters/browser/github.md +0 -26
  463. package/docs/adapters/desktop/feishu.md +0 -20
  464. package/docs/adapters/desktop/neteasemusic.md +0 -31
  465. package/docs/adapters/desktop/wechat.md +0 -28
  466. package/src/clis/antigravity/README.md +0 -5
  467. package/src/clis/antigravity/README.zh-CN.md +0 -51
  468. package/src/clis/chaoxing/README.md +0 -14
  469. package/src/clis/chaoxing/README.zh-CN.md +0 -35
  470. package/src/clis/chatgpt/README.md +0 -5
  471. package/src/clis/chatgpt/README.zh-CN.md +0 -44
  472. package/src/clis/chatwise/README.md +0 -5
  473. package/src/clis/chatwise/README.zh-CN.md +0 -38
  474. package/src/clis/codex/README.md +0 -5
  475. package/src/clis/codex/README.zh-CN.md +0 -33
  476. package/src/clis/cursor/README.md +0 -5
  477. package/src/clis/cursor/README.zh-CN.md +0 -33
  478. package/src/clis/discord-app/README.md +0 -5
  479. package/src/clis/discord-app/README.zh-CN.md +0 -28
  480. package/src/clis/feishu/README.md +0 -5
  481. package/src/clis/feishu/README.zh-CN.md +0 -20
  482. package/src/clis/feishu/new.ts +0 -32
  483. package/src/clis/feishu/read.ts +0 -48
  484. package/src/clis/feishu/search.ts +0 -35
  485. package/src/clis/feishu/send.ts +0 -46
  486. package/src/clis/feishu/status.ts +0 -34
  487. package/src/clis/neteasemusic/README.md +0 -5
  488. package/src/clis/neteasemusic/README.zh-CN.md +0 -31
  489. package/src/clis/neteasemusic/like.ts +0 -28
  490. package/src/clis/neteasemusic/lyrics.ts +0 -53
  491. package/src/clis/neteasemusic/next.ts +0 -30
  492. package/src/clis/neteasemusic/play.ts +0 -30
  493. package/src/clis/neteasemusic/playing.ts +0 -62
  494. package/src/clis/neteasemusic/playlist.ts +0 -51
  495. package/src/clis/neteasemusic/prev.ts +0 -29
  496. package/src/clis/neteasemusic/search.ts +0 -58
  497. package/src/clis/neteasemusic/status.ts +0 -18
  498. package/src/clis/neteasemusic/volume.ts +0 -61
  499. package/src/clis/notion/README.md +0 -5
  500. package/src/clis/notion/README.zh-CN.md +0 -29
  501. package/src/clis/wechat/README.md +0 -5
  502. package/src/clis/wechat/README.zh-CN.md +0 -28
  503. package/src/clis/wechat/chats.ts +0 -33
  504. package/src/clis/wechat/contacts.ts +0 -33
  505. package/src/clis/wechat/read.ts +0 -72
  506. package/src/clis/wechat/search.ts +0 -36
  507. package/src/clis/wechat/send.ts +0 -49
  508. package/src/clis/wechat/status.ts +0 -35
  509. package/src/pipeline.ts +0 -8
@@ -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
  ],
@@ -67,6 +68,9 @@ export default defineConfig({
67
68
  { text: 'Chaoxing', link: '/adapters/browser/chaoxing' },
68
69
  { text: 'Grok', link: '/adapters/browser/grok' },
69
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' },
70
74
  ],
71
75
  },
72
76
  {
@@ -74,7 +78,7 @@ export default defineConfig({
74
78
  collapsed: false,
75
79
  items: [
76
80
  { text: 'HackerNews', link: '/adapters/browser/hackernews' },
77
- { text: 'GitHub', link: '/adapters/browser/github' },
81
+ { text: 'Dev.to', link: '/adapters/browser/devto' },
78
82
  { text: 'BBC', link: '/adapters/browser/bbc' },
79
83
  { text: 'Apple Podcasts', link: '/adapters/browser/apple-podcasts' },
80
84
  { text: 'Xiaoyuzhou', link: '/adapters/browser/xiaoyuzhou' },
@@ -98,9 +102,6 @@ export default defineConfig({
98
102
  { text: 'ChatWise', link: '/adapters/desktop/chatwise' },
99
103
  { text: 'Notion', link: '/adapters/desktop/notion' },
100
104
  { text: 'Discord', link: '/adapters/desktop/discord' },
101
- { text: 'Feishu', link: '/adapters/desktop/feishu' },
102
- { text: 'WeChat', link: '/adapters/desktop/wechat' },
103
- { text: 'NeteaseMusic', link: '/adapters/desktop/neteasemusic' },
104
105
  ],
105
106
  },
106
107
  ],
@@ -150,6 +151,7 @@ export default defineConfig({
150
151
  { text: '快速开始', link: '/zh/guide/getting-started' },
151
152
  { text: '安装', link: '/zh/guide/installation' },
152
153
  { text: 'Browser Bridge', link: '/zh/guide/browser-bridge' },
154
+ { text: '插件', link: '/zh/guide/plugins' },
153
155
  ],
154
156
  },
155
157
  ],
@@ -1,6 +1,6 @@
1
1
  # Barchart
2
2
 
3
- **Mode**: 🌐 Public · **Domain**: `barchart.com`
3
+ **Mode**: 🔐 Browser · **Domain**: `barchart.com`
4
4
 
5
5
  ## Commands
6
6
 
@@ -15,13 +15,13 @@
15
15
 
16
16
  ```bash
17
17
  # Get stock quote
18
- opencli barchart quote --symbol AAPL
18
+ opencli barchart quote AAPL
19
19
 
20
20
  # View options chain
21
- opencli barchart options --symbol TSLA
21
+ opencli barchart options TSLA
22
22
 
23
23
  # Options greeks overview
24
- opencli barchart greeks --symbol NVDA
24
+ opencli barchart greeks NVDA
25
25
 
26
26
  # Unusual options flow
27
27
  opencli barchart flow --limit 20 -f json
@@ -29,4 +29,5 @@ opencli barchart flow --limit 20 -f json
29
29
 
30
30
  ## Prerequisites
31
31
 
32
- - No browser required uses public API
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,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).
@@ -1,24 +1,28 @@
1
1
  # Grok
2
2
 
3
- **Mode**: 🔐 Browser · **Domain**: `grok.com`
3
+ **Mode**: Default Grok adapter + optional explicit consumer web path · **Domain**: `grok.com`
4
4
 
5
5
  ## Commands
6
6
 
7
7
  | Command | Description |
8
8
  |---------|-------------|
9
- | `opencli grok ask` | Send a message to Grok and get response |
9
+ | `opencli grok ask` | Keep the default Grok ask behavior |
10
+ | `opencli grok ask --web` | Use the explicit grok.com consumer web UI flow |
10
11
 
11
12
  ## Usage Examples
12
13
 
13
14
  ```bash
14
- # Ask Grok a question
15
+ # Default / compatibility path
15
16
  opencli grok ask --prompt "Explain quantum computing in simple terms"
16
17
 
17
- # Start a new chat session
18
- opencli grok ask --prompt "Hello" --new
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
19
23
 
20
24
  # Set custom timeout (default: 120s)
21
- opencli grok ask --prompt "Write a long essay" --timeout 180
25
+ opencli grok ask --prompt "Write a long essay" --web --timeout 180
22
26
  ```
23
27
 
24
28
  ### Options
@@ -27,9 +31,23 @@ opencli grok ask --prompt "Write a long essay" --timeout 180
27
31
  |--------|-------------|
28
32
  | `--prompt` | The message to send (required) |
29
33
  | `--timeout` | Wait timeout in seconds (default: 120) |
30
- | `--new` | Start a new chat session (default: false) |
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.
31
42
 
32
43
  ## Prerequisites
33
44
 
34
- - Chrome running and **logged into** grok.com
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
35
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,46 @@
1
+ # Instagram
2
+
3
+ **Mode**: 🔐 Browser · **Domain**: `instagram.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli instagram profile` | Get user profile info |
10
+ | `opencli instagram search` | Search users |
11
+ | `opencli instagram user` | Get recent posts from a user |
12
+ | `opencli instagram explore` | Discover trending posts |
13
+ | `opencli instagram followers` | List user's followers |
14
+ | `opencli instagram following` | List user's following |
15
+ | `opencli instagram saved` | Get your saved posts |
16
+
17
+ ## Usage Examples
18
+
19
+ ```bash
20
+ # View a user's profile
21
+ opencli instagram profile nasa
22
+
23
+ # Search users
24
+ opencli instagram search nasa --limit 5
25
+
26
+ # View a user's recent posts
27
+ opencli instagram user nasa --limit 10
28
+
29
+ # Discover trending posts
30
+ opencli instagram explore --limit 20
31
+
32
+ # List followers/following
33
+ opencli instagram followers nasa --limit 20
34
+ opencli instagram following nasa --limit 20
35
+
36
+ # Get your saved posts
37
+ opencli instagram saved --limit 10
38
+
39
+ # JSON output
40
+ opencli instagram profile nasa -f json
41
+ ```
42
+
43
+ ## Prerequisites
44
+
45
+ - Chrome running and **logged into** instagram.com
46
+ - [Browser Bridge extension](/guide/browser-bridge) installed
@@ -0,0 +1,32 @@
1
+ # Lobsters
2
+
3
+ **Mode**: 🌐 Public · **Domain**: `lobste.rs`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli lobsters hot` | Hottest stories |
10
+ | `opencli lobsters newest` | Latest stories |
11
+ | `opencli lobsters active` | Most active discussions |
12
+ | `opencli lobsters tag` | Stories by tag |
13
+
14
+ ## Usage Examples
15
+
16
+ ```bash
17
+ # Quick start
18
+ opencli lobsters hot --limit 10
19
+
20
+ # Filter by tag
21
+ opencli lobsters tag --tag rust --limit 5
22
+
23
+ # JSON output
24
+ opencli lobsters hot -f json
25
+
26
+ # Verbose mode
27
+ opencli lobsters hot -v
28
+ ```
29
+
30
+ ## Prerequisites
31
+
32
+ None — all commands use the public JSON API, no browser or login required.
@@ -0,0 +1,32 @@
1
+ # Medium
2
+
3
+ **Mode**: 🌗 Mixed · **Domain**: `medium.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli medium feed` | Get hot Medium posts, optionally scoped to a topic |
10
+ | `opencli medium search` | Search Medium posts by keyword |
11
+ | `opencli medium user` | Get recent articles by a user |
12
+
13
+ ## Usage Examples
14
+
15
+ ```bash
16
+ # Get the general Medium feed
17
+ opencli medium feed --limit 10
18
+
19
+ # Search posts by keyword
20
+ opencli medium search ai
21
+
22
+ # Get articles by a user
23
+ opencli medium user @username
24
+
25
+ # Topic feed as JSON
26
+ opencli medium feed --topic programming -f json
27
+ ```
28
+
29
+ ## Prerequisites
30
+
31
+ - `opencli medium search` can run without a browser
32
+ - `opencli medium feed` and `opencli medium user` require Browser Bridge access to `medium.com`
@@ -28,6 +28,15 @@
28
28
  # Quick start
29
29
  opencli reddit hot --limit 5
30
30
 
31
+ # Read one subreddit
32
+ opencli reddit subreddit python --limit 10
33
+
34
+ # Read a post thread
35
+ opencli reddit read 1abc123 --depth 2
36
+
37
+ # Comment on a post
38
+ opencli reddit comment 1abc123 "Great post"
39
+
31
40
  # JSON output
32
41
  opencli reddit hot -f json
33
42
 
@@ -0,0 +1,36 @@
1
+ # 新浪博客 (Sina Blog)
2
+
3
+ **Mode**: 🌐 Public (search) / 🔐 Browser (hot, article, user) · **Domain**: `blog.sina.com.cn`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli sinablog hot` | 获取新浪博客热门文章/推荐 |
10
+ | `opencli sinablog search` | 搜索新浪博客文章(通过新浪搜索,无需浏览器) |
11
+ | `opencli sinablog article` | 获取新浪博客单篇文章详情 |
12
+ | `opencli sinablog user` | 获取新浪博客用户的文章列表 |
13
+
14
+ ## Usage Examples
15
+
16
+ ```bash
17
+ # 热门文章
18
+ opencli sinablog hot --limit 10
19
+
20
+ # 搜索文章(公开 API,无需浏览器)
21
+ opencli sinablog search "人工智能"
22
+
23
+ # 文章详情
24
+ opencli sinablog article "https://blog.sina.com.cn/s/blog_xxx.html"
25
+
26
+ # 用户文章列表
27
+ opencli sinablog user 1234567890 --limit 10
28
+
29
+ # JSON output
30
+ opencli sinablog hot -f json
31
+ ```
32
+
33
+ ## Prerequisites
34
+
35
+ - `search` command: No login required (public API)
36
+ - `hot`, `article`, `user` commands: Chrome with `blog.sina.com.cn` accessible, Browser Bridge extension installed
@@ -0,0 +1,38 @@
1
+ # Substack
2
+
3
+ **Mode**: 🌐 Public (search) / 🔐 Browser (feed, publication) · **Domain**: `substack.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli substack feed` | Substack 热门文章 Feed |
10
+ | `opencli substack search` | 搜索 Substack 文章和 Newsletter(无需浏览器) |
11
+ | `opencli substack publication` | 获取特定 Substack Newsletter 的最新文章 |
12
+
13
+ ## Usage Examples
14
+
15
+ ```bash
16
+ # 热门 Feed
17
+ opencli substack feed --limit 10
18
+
19
+ # 按分类浏览
20
+ opencli substack feed --category tech --limit 10
21
+
22
+ # 搜索文章(公开 API,无需浏览器)
23
+ opencli substack search "AI"
24
+
25
+ # 搜索 Newsletter
26
+ opencli substack search "technology" --type publications
27
+
28
+ # 查看特定 Newsletter 的最新文章
29
+ opencli substack publication "https://example.substack.com" --limit 10
30
+
31
+ # JSON output
32
+ opencli substack search "AI" -f json
33
+ ```
34
+
35
+ ## Prerequisites
36
+
37
+ - `search` command: No login required (public API)
38
+ - `feed`, `publication` commands: Chrome with `substack.com` accessible, Browser Bridge extension installed
@@ -0,0 +1,68 @@
1
+ # TikTok
2
+
3
+ **Mode**: 🔐 Browser · **Domain**: `tiktok.com`
4
+
5
+ ## Commands
6
+
7
+ | Command | Description |
8
+ |---------|-------------|
9
+ | `opencli tiktok profile` | Get user profile info |
10
+ | `opencli tiktok search` | Search videos |
11
+ | `opencli tiktok explore` | Trending videos from explore page |
12
+ | `opencli tiktok user` | Get recent videos from a user |
13
+ | `opencli tiktok following` | List accounts you follow |
14
+ | `opencli tiktok friends` | Friend suggestions |
15
+ | `opencli tiktok live` | Browse live streams |
16
+ | `opencli tiktok notifications` | Get notifications |
17
+ | `opencli tiktok like` | Like a video |
18
+ | `opencli tiktok unlike` | Unlike a video |
19
+ | `opencli tiktok save` | Add to Favorites |
20
+ | `opencli tiktok unsave` | Remove from Favorites |
21
+ | `opencli tiktok follow` | Follow a user |
22
+ | `opencli tiktok unfollow` | Unfollow a user |
23
+ | `opencli tiktok comment` | Comment on a video |
24
+
25
+ ## Usage Examples
26
+
27
+ ```bash
28
+ # View a user's profile
29
+ opencli tiktok profile --username tiktok
30
+
31
+ # Search videos
32
+ opencli tiktok search --query "cooking" --limit 10
33
+
34
+ # Trending explore videos
35
+ opencli tiktok explore --limit 20
36
+
37
+ # Browse live streams
38
+ opencli tiktok live --limit 10
39
+
40
+ # List who you follow
41
+ opencli tiktok following
42
+
43
+ # Friend suggestions
44
+ opencli tiktok friends --limit 10
45
+
46
+ # Like/unlike a video
47
+ opencli tiktok like --url "https://www.tiktok.com/@user/video/123"
48
+ opencli tiktok unlike --url "https://www.tiktok.com/@user/video/123"
49
+
50
+ # Save/unsave (Favorites)
51
+ opencli tiktok save --url "https://www.tiktok.com/@user/video/123"
52
+ opencli tiktok unsave --url "https://www.tiktok.com/@user/video/123"
53
+
54
+ # Follow/unfollow
55
+ opencli tiktok follow --username nasa
56
+ opencli tiktok unfollow --username nasa
57
+
58
+ # Comment on a video
59
+ opencli tiktok comment --url "https://www.tiktok.com/@user/video/123" --text "Great!"
60
+
61
+ # JSON output
62
+ opencli tiktok profile --username tiktok -f json
63
+ ```
64
+
65
+ ## Prerequisites
66
+
67
+ - Chrome running and **logged into** tiktok.com
68
+ - [Browser Bridge extension](/guide/browser-bridge) installed
@@ -8,6 +8,8 @@
8
8
  |---------|-------------|
9
9
  | `opencli wikipedia search` | Search Wikipedia articles |
10
10
  | `opencli wikipedia summary` | Get Wikipedia article summary |
11
+ | `opencli wikipedia random` | Get a random Wikipedia article |
12
+ | `opencli wikipedia trending` | Most-read articles (yesterday) |
11
13
 
12
14
  ## Usage Examples
13
15
 
@@ -16,10 +18,17 @@
16
18
  opencli wikipedia search "quantum computing" --limit 10
17
19
 
18
20
  # Get article summary
19
- opencli wikipedia summary --title "Artificial intelligence"
21
+ opencli wikipedia summary "Artificial intelligence"
20
22
 
21
- # Search in other languages
23
+ # Get a random article
24
+ opencli wikipedia random
25
+
26
+ # Most-read articles (yesterday)
27
+ opencli wikipedia trending --limit 5
28
+
29
+ # Use with other languages
22
30
  opencli wikipedia search "人工智能" --lang zh
31
+ opencli wikipedia random --lang ja
23
32
 
24
33
  # JSON output
25
34
  opencli wikipedia search "Rust" -f json
@@ -7,6 +7,7 @@
7
7
  | Command | Description |
8
8
  |---------|-------------|
9
9
  | `opencli xueqiu feed` | |
10
+ | `opencli xueqiu earnings-date` | |
10
11
  | `opencli xueqiu hot-stock` | |
11
12
  | `opencli xueqiu hot` | |
12
13
  | `opencli xueqiu search` | |
@@ -19,6 +20,15 @@
19
20
  # Quick start
20
21
  opencli xueqiu feed --limit 5
21
22
 
23
+ # Search stocks
24
+ opencli xueqiu search 茅台
25
+
26
+ # View one stock
27
+ opencli xueqiu stock SH600519
28
+
29
+ # Upcoming earnings dates
30
+ opencli xueqiu earnings-date SH600519 --next
31
+
22
32
  # JSON output
23
33
  opencli xueqiu feed -f json
24
34
 
@@ -1,6 +1,6 @@
1
1
  # Yahoo Finance
2
2
 
3
- **Mode**: 🌐 Public · **Domain**: `finance.yahoo.com`
3
+ **Mode**: 🔐 Browser · **Domain**: `finance.yahoo.com`
4
4
 
5
5
  ## Commands
6
6
 
@@ -12,15 +12,16 @@
12
12
 
13
13
  ```bash
14
14
  # Quick start
15
- opencli yahoo-finance quote --limit 5
15
+ opencli yahoo-finance quote AAPL
16
16
 
17
17
  # JSON output
18
- opencli yahoo-finance quote -f json
18
+ opencli yahoo-finance quote TSLA -f json
19
19
 
20
20
  # Verbose mode
21
- opencli yahoo-finance quote -v
21
+ opencli yahoo-finance quote NVDA -v
22
22
  ```
23
23
 
24
24
  ## Prerequisites
25
25
 
26
- - No browser required uses public API
26
+ - Chrome running and able to open `finance.yahoo.com`
27
+ - [Browser Bridge extension](/guide/browser-bridge) installed