@zenalexa/unicli 0.211.2 → 0.213.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1311) hide show
  1. package/AGENTS.md +180 -138
  2. package/README.md +195 -771
  3. package/dist/cli.d.ts +8 -0
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +74 -218
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/acp.d.ts +14 -0
  8. package/dist/commands/acp.d.ts.map +1 -0
  9. package/dist/commands/acp.js +41 -0
  10. package/dist/commands/acp.js.map +1 -0
  11. package/dist/commands/agents.d.ts.map +1 -1
  12. package/dist/commands/agents.js.map +1 -1
  13. package/dist/commands/dev.d.ts.map +1 -1
  14. package/dist/commands/dev.js +8 -3
  15. package/dist/commands/dev.js.map +1 -1
  16. package/dist/commands/dispatch.d.ts +14 -0
  17. package/dist/commands/dispatch.d.ts.map +1 -0
  18. package/dist/commands/dispatch.js +258 -0
  19. package/dist/commands/dispatch.js.map +1 -0
  20. package/dist/commands/ext.d.ts.map +1 -1
  21. package/dist/commands/ext.js +7 -5
  22. package/dist/commands/ext.js.map +1 -1
  23. package/dist/commands/health.d.ts.map +1 -1
  24. package/dist/commands/health.js +33 -22
  25. package/dist/commands/health.js.map +1 -1
  26. package/dist/commands/lint.d.ts +33 -0
  27. package/dist/commands/lint.d.ts.map +1 -0
  28. package/dist/commands/lint.js +332 -0
  29. package/dist/commands/lint.js.map +1 -0
  30. package/dist/commands/mcp.d.ts.map +1 -1
  31. package/dist/commands/mcp.js.map +1 -1
  32. package/dist/commands/migrate-schema.d.ts +56 -0
  33. package/dist/commands/migrate-schema.d.ts.map +1 -0
  34. package/dist/commands/migrate-schema.js +540 -0
  35. package/dist/commands/migrate-schema.js.map +1 -0
  36. package/dist/commands/migrate.d.ts +54 -0
  37. package/dist/commands/migrate.d.ts.map +1 -0
  38. package/dist/commands/migrate.js +270 -0
  39. package/dist/commands/migrate.js.map +1 -0
  40. package/dist/commands/search.d.ts.map +1 -1
  41. package/dist/commands/search.js +7 -1
  42. package/dist/commands/search.js.map +1 -1
  43. package/dist/commands/skills.d.ts.map +1 -1
  44. package/dist/commands/skills.js +76 -0
  45. package/dist/commands/skills.js.map +1 -1
  46. package/dist/commands/usage.d.ts.map +1 -1
  47. package/dist/commands/usage.js +20 -19
  48. package/dist/commands/usage.js.map +1 -1
  49. package/dist/constants.d.ts +2 -0
  50. package/dist/constants.d.ts.map +1 -1
  51. package/dist/constants.js +2 -0
  52. package/dist/constants.js.map +1 -1
  53. package/dist/core/envelope.d.ts +87 -0
  54. package/dist/core/envelope.d.ts.map +1 -0
  55. package/dist/core/envelope.js +94 -0
  56. package/dist/core/envelope.js.map +1 -0
  57. package/dist/core/index.d.ts +12 -0
  58. package/dist/core/index.d.ts.map +1 -0
  59. package/dist/core/index.js +12 -0
  60. package/dist/core/index.js.map +1 -0
  61. package/dist/core/registry.d.ts +63 -0
  62. package/dist/core/registry.d.ts.map +1 -0
  63. package/dist/core/registry.js +62 -0
  64. package/dist/core/registry.js.map +1 -0
  65. package/dist/core/schema-v2.d.ts +119 -0
  66. package/dist/core/schema-v2.d.ts.map +1 -0
  67. package/dist/core/schema-v2.js +130 -0
  68. package/dist/core/schema-v2.js.map +1 -0
  69. package/dist/core/types.d.ts +24 -0
  70. package/dist/core/types.d.ts.map +1 -0
  71. package/dist/core/types.js +15 -0
  72. package/dist/core/types.js.map +1 -0
  73. package/dist/discovery/aliases.d.ts +5 -0
  74. package/dist/discovery/aliases.d.ts.map +1 -1
  75. package/dist/discovery/aliases.js +45 -2
  76. package/dist/discovery/aliases.js.map +1 -1
  77. package/dist/discovery/loader.d.ts.map +1 -1
  78. package/dist/discovery/loader.js +83 -5
  79. package/dist/discovery/loader.js.map +1 -1
  80. package/dist/discovery/search.d.ts.map +1 -1
  81. package/dist/discovery/search.js +42 -5
  82. package/dist/discovery/search.js.map +1 -1
  83. package/dist/engine/executor.d.ts +77 -0
  84. package/dist/engine/executor.d.ts.map +1 -0
  85. package/dist/engine/executor.js +189 -0
  86. package/dist/engine/executor.js.map +1 -0
  87. package/dist/engine/repair/logger.d.ts.map +1 -1
  88. package/dist/engine/repair/logger.js +11 -1
  89. package/dist/engine/repair/logger.js.map +1 -1
  90. package/dist/engine/runtime.d.ts +23 -0
  91. package/dist/engine/runtime.d.ts.map +1 -0
  92. package/dist/engine/runtime.js +167 -0
  93. package/dist/engine/runtime.js.map +1 -0
  94. package/dist/engine/ssrf.d.ts +18 -0
  95. package/dist/engine/ssrf.d.ts.map +1 -0
  96. package/dist/engine/ssrf.js +55 -0
  97. package/dist/engine/ssrf.js.map +1 -0
  98. package/dist/engine/step-registry.d.ts +16 -0
  99. package/dist/engine/step-registry.d.ts.map +1 -0
  100. package/dist/engine/step-registry.js +25 -0
  101. package/dist/engine/step-registry.js.map +1 -0
  102. package/dist/engine/steps/append.d.ts +3 -0
  103. package/dist/engine/steps/append.d.ts.map +1 -0
  104. package/dist/engine/steps/append.js +20 -0
  105. package/dist/engine/steps/append.js.map +1 -0
  106. package/dist/engine/steps/assert.d.ts +10 -0
  107. package/dist/engine/steps/assert.d.ts.map +1 -0
  108. package/dist/engine/steps/assert.js +58 -0
  109. package/dist/engine/steps/assert.js.map +1 -0
  110. package/dist/engine/steps/browser-helpers.d.ts +13 -0
  111. package/dist/engine/steps/browser-helpers.d.ts.map +1 -0
  112. package/dist/engine/steps/browser-helpers.js +85 -0
  113. package/dist/engine/steps/browser-helpers.js.map +1 -0
  114. package/dist/engine/steps/click.d.ts +9 -0
  115. package/dist/engine/steps/click.d.ts.map +1 -0
  116. package/dist/engine/steps/click.js +32 -0
  117. package/dist/engine/steps/click.js.map +1 -0
  118. package/dist/engine/steps/cua.d.ts +41 -0
  119. package/dist/engine/steps/cua.d.ts.map +1 -0
  120. package/dist/engine/steps/cua.js +59 -0
  121. package/dist/engine/steps/cua.js.map +1 -0
  122. package/dist/engine/steps/desktop-ax.d.ts +31 -0
  123. package/dist/engine/steps/desktop-ax.d.ts.map +1 -0
  124. package/dist/engine/steps/desktop-ax.js +42 -0
  125. package/dist/engine/steps/desktop-ax.js.map +1 -0
  126. package/dist/engine/steps/download.d.ts +13 -0
  127. package/dist/engine/steps/download.d.ts.map +1 -0
  128. package/dist/engine/steps/download.js +59 -0
  129. package/dist/engine/steps/download.js.map +1 -0
  130. package/dist/engine/steps/each.d.ts +9 -0
  131. package/dist/engine/steps/each.d.ts.map +1 -0
  132. package/dist/engine/steps/each.js +44 -0
  133. package/dist/engine/steps/each.js.map +1 -0
  134. package/dist/engine/steps/evaluate.d.ts +6 -0
  135. package/dist/engine/steps/evaluate.d.ts.map +1 -0
  136. package/dist/engine/steps/evaluate.js +13 -0
  137. package/dist/engine/steps/evaluate.js.map +1 -0
  138. package/dist/engine/steps/exec.d.ts +12 -0
  139. package/dist/engine/steps/exec.d.ts.map +1 -0
  140. package/dist/engine/steps/exec.js +161 -0
  141. package/dist/engine/steps/exec.js.map +1 -0
  142. package/dist/engine/steps/extract.d.ts +14 -0
  143. package/dist/engine/steps/extract.d.ts.map +1 -0
  144. package/dist/engine/steps/extract.js +51 -0
  145. package/dist/engine/steps/extract.js.map +1 -0
  146. package/dist/engine/steps/fetch-text.d.ts +4 -0
  147. package/dist/engine/steps/fetch-text.d.ts.map +1 -0
  148. package/dist/engine/steps/fetch-text.js +53 -0
  149. package/dist/engine/steps/fetch-text.js.map +1 -0
  150. package/dist/engine/steps/fetch.d.ts +13 -0
  151. package/dist/engine/steps/fetch.d.ts.map +1 -0
  152. package/dist/engine/steps/fetch.js +186 -0
  153. package/dist/engine/steps/fetch.js.map +1 -0
  154. package/dist/engine/steps/filter.d.ts +3 -0
  155. package/dist/engine/steps/filter.d.ts.map +1 -0
  156. package/dist/engine/steps/filter.js +14 -0
  157. package/dist/engine/steps/filter.js.map +1 -0
  158. package/dist/engine/steps/html-to-md.d.ts +3 -0
  159. package/dist/engine/steps/html-to-md.d.ts.map +1 -0
  160. package/dist/engine/steps/html-to-md.js +13 -0
  161. package/dist/engine/steps/html-to-md.js.map +1 -0
  162. package/dist/engine/steps/if.d.ts +8 -0
  163. package/dist/engine/steps/if.d.ts.map +1 -0
  164. package/dist/engine/steps/if.js +36 -0
  165. package/dist/engine/steps/if.js.map +1 -0
  166. package/dist/engine/steps/index.d.ts +38 -0
  167. package/dist/engine/steps/index.d.ts.map +1 -0
  168. package/dist/engine/steps/index.js +38 -0
  169. package/dist/engine/steps/index.js.map +1 -0
  170. package/dist/engine/steps/intercept.d.ts +12 -0
  171. package/dist/engine/steps/intercept.d.ts.map +1 -0
  172. package/dist/engine/steps/intercept.js +67 -0
  173. package/dist/engine/steps/intercept.js.map +1 -0
  174. package/dist/engine/steps/limit.d.ts +3 -0
  175. package/dist/engine/steps/limit.d.ts.map +1 -0
  176. package/dist/engine/steps/limit.js +17 -0
  177. package/dist/engine/steps/limit.js.map +1 -0
  178. package/dist/engine/steps/map.d.ts +3 -0
  179. package/dist/engine/steps/map.d.ts.map +1 -0
  180. package/dist/engine/steps/map.js +20 -0
  181. package/dist/engine/steps/map.js.map +1 -0
  182. package/dist/engine/steps/navigate.d.ts +8 -0
  183. package/dist/engine/steps/navigate.d.ts.map +1 -0
  184. package/dist/engine/steps/navigate.js +15 -0
  185. package/dist/engine/steps/navigate.js.map +1 -0
  186. package/dist/engine/steps/parallel.d.ts +4 -0
  187. package/dist/engine/steps/parallel.d.ts.map +1 -0
  188. package/dist/engine/steps/parallel.js +56 -0
  189. package/dist/engine/steps/parallel.js.map +1 -0
  190. package/dist/engine/steps/parse-rss.d.ts +6 -0
  191. package/dist/engine/steps/parse-rss.d.ts.map +1 -0
  192. package/dist/engine/steps/parse-rss.js +57 -0
  193. package/dist/engine/steps/parse-rss.js.map +1 -0
  194. package/dist/engine/steps/press.d.ts +3 -0
  195. package/dist/engine/steps/press.d.ts.map +1 -0
  196. package/dist/engine/steps/press.js +22 -0
  197. package/dist/engine/steps/press.js.map +1 -0
  198. package/dist/engine/steps/scroll.d.ts +3 -0
  199. package/dist/engine/steps/scroll.d.ts.map +1 -0
  200. package/dist/engine/steps/scroll.js +26 -0
  201. package/dist/engine/steps/scroll.js.map +1 -0
  202. package/dist/engine/steps/select.d.ts +3 -0
  203. package/dist/engine/steps/select.d.ts.map +1 -0
  204. package/dist/engine/steps/select.js +21 -0
  205. package/dist/engine/steps/select.js.map +1 -0
  206. package/dist/engine/steps/set.d.ts +3 -0
  207. package/dist/engine/steps/set.d.ts.map +1 -0
  208. package/dist/engine/steps/set.js +13 -0
  209. package/dist/engine/steps/set.js.map +1 -0
  210. package/dist/engine/steps/snapshot.d.ts +3 -0
  211. package/dist/engine/steps/snapshot.d.ts.map +1 -0
  212. package/dist/engine/steps/snapshot.js +17 -0
  213. package/dist/engine/steps/snapshot.js.map +1 -0
  214. package/dist/engine/steps/sort.d.ts +7 -0
  215. package/dist/engine/steps/sort.d.ts.map +1 -0
  216. package/dist/engine/steps/sort.js +21 -0
  217. package/dist/engine/steps/sort.js.map +1 -0
  218. package/dist/engine/steps/tap.d.ts +12 -0
  219. package/dist/engine/steps/tap.d.ts.map +1 -0
  220. package/dist/engine/steps/tap.js +110 -0
  221. package/dist/engine/steps/tap.js.map +1 -0
  222. package/dist/engine/steps/type.d.ts +8 -0
  223. package/dist/engine/steps/type.d.ts.map +1 -0
  224. package/dist/engine/steps/type.js +20 -0
  225. package/dist/engine/steps/type.js.map +1 -0
  226. package/dist/engine/steps/wait.d.ts +8 -0
  227. package/dist/engine/steps/wait.d.ts.map +1 -0
  228. package/dist/engine/steps/wait.js +17 -0
  229. package/dist/engine/steps/wait.js.map +1 -0
  230. package/dist/engine/steps/websocket.d.ts +4 -0
  231. package/dist/engine/steps/websocket.d.ts.map +1 -0
  232. package/dist/engine/steps/websocket.js +14 -0
  233. package/dist/engine/steps/websocket.js.map +1 -0
  234. package/dist/engine/steps/write-temp.d.ts +7 -0
  235. package/dist/engine/steps/write-temp.d.ts.map +1 -0
  236. package/dist/engine/steps/write-temp.js +19 -0
  237. package/dist/engine/steps/write-temp.js.map +1 -0
  238. package/dist/engine/template.d.ts +42 -0
  239. package/dist/engine/template.d.ts.map +1 -0
  240. package/dist/engine/template.js +378 -0
  241. package/dist/engine/template.js.map +1 -0
  242. package/dist/engine/yaml-runner.d.ts +9 -100
  243. package/dist/engine/yaml-runner.d.ts.map +1 -1
  244. package/dist/engine/yaml-runner.js +15 -2025
  245. package/dist/engine/yaml-runner.js.map +1 -1
  246. package/dist/errors.d.ts +17 -0
  247. package/dist/errors.d.ts.map +1 -0
  248. package/dist/errors.js +16 -0
  249. package/dist/errors.js.map +1 -0
  250. package/dist/manifest-compact.txt +1 -1
  251. package/dist/manifest-search.json +1 -1
  252. package/dist/manifest.json +98 -1
  253. package/dist/mcp/elicitation.d.ts +56 -0
  254. package/dist/mcp/elicitation.d.ts.map +1 -0
  255. package/dist/mcp/elicitation.js +62 -0
  256. package/dist/mcp/elicitation.js.map +1 -0
  257. package/dist/mcp/oauth.d.ts.map +1 -1
  258. package/dist/mcp/oauth.js +80 -9
  259. package/dist/mcp/oauth.js.map +1 -1
  260. package/dist/mcp/server.d.ts +5 -0
  261. package/dist/mcp/server.d.ts.map +1 -1
  262. package/dist/mcp/server.js +73 -67
  263. package/dist/mcp/server.js.map +1 -1
  264. package/dist/mcp/streamable-http.d.ts +36 -11
  265. package/dist/mcp/streamable-http.d.ts.map +1 -1
  266. package/dist/mcp/streamable-http.js +277 -23
  267. package/dist/mcp/streamable-http.js.map +1 -1
  268. package/dist/output/envelope.d.ts +83 -0
  269. package/dist/output/envelope.d.ts.map +1 -0
  270. package/dist/output/envelope.js +96 -0
  271. package/dist/output/envelope.js.map +1 -0
  272. package/dist/output/formatter.d.ts +33 -5
  273. package/dist/output/formatter.d.ts.map +1 -1
  274. package/dist/output/formatter.js +153 -61
  275. package/dist/output/formatter.js.map +1 -1
  276. package/dist/output/md.d.ts +20 -0
  277. package/dist/output/md.d.ts.map +1 -0
  278. package/dist/output/md.js +300 -0
  279. package/dist/output/md.js.map +1 -0
  280. package/dist/protocol/acp.d.ts +126 -0
  281. package/dist/protocol/acp.d.ts.map +1 -0
  282. package/dist/protocol/acp.js +588 -0
  283. package/dist/protocol/acp.js.map +1 -0
  284. package/dist/protocol/skill.d.ts +106 -0
  285. package/dist/protocol/skill.d.ts.map +1 -0
  286. package/dist/protocol/skill.js +276 -0
  287. package/dist/protocol/skill.js.map +1 -0
  288. package/dist/registry.d.ts +2 -0
  289. package/dist/registry.d.ts.map +1 -1
  290. package/dist/registry.js +2 -0
  291. package/dist/registry.js.map +1 -1
  292. package/dist/transport/adapters/cdp-browser.d.ts +44 -0
  293. package/dist/transport/adapters/cdp-browser.d.ts.map +1 -0
  294. package/dist/transport/adapters/cdp-browser.js +240 -0
  295. package/dist/transport/adapters/cdp-browser.js.map +1 -0
  296. package/dist/transport/adapters/cua.d.ts +240 -0
  297. package/dist/transport/adapters/cua.d.ts.map +1 -0
  298. package/dist/transport/adapters/cua.js +663 -0
  299. package/dist/transport/adapters/cua.js.map +1 -0
  300. package/dist/transport/adapters/desktop-atspi.d.ts +27 -0
  301. package/dist/transport/adapters/desktop-atspi.d.ts.map +1 -0
  302. package/dist/transport/adapters/desktop-atspi.js +65 -0
  303. package/dist/transport/adapters/desktop-atspi.js.map +1 -0
  304. package/dist/transport/adapters/desktop-ax.d.ts +59 -0
  305. package/dist/transport/adapters/desktop-ax.d.ts.map +1 -0
  306. package/dist/transport/adapters/desktop-ax.js +311 -0
  307. package/dist/transport/adapters/desktop-ax.js.map +1 -0
  308. package/dist/transport/adapters/desktop-uia.d.ts +27 -0
  309. package/dist/transport/adapters/desktop-uia.d.ts.map +1 -0
  310. package/dist/transport/adapters/desktop-uia.js +66 -0
  311. package/dist/transport/adapters/desktop-uia.js.map +1 -0
  312. package/dist/transport/adapters/http.d.ts +40 -0
  313. package/dist/transport/adapters/http.d.ts.map +1 -0
  314. package/dist/transport/adapters/http.js +353 -0
  315. package/dist/transport/adapters/http.js.map +1 -0
  316. package/dist/transport/adapters/subprocess.d.ts +27 -0
  317. package/dist/transport/adapters/subprocess.d.ts.map +1 -0
  318. package/dist/transport/adapters/subprocess.js +254 -0
  319. package/dist/transport/adapters/subprocess.js.map +1 -0
  320. package/dist/transport/bus.d.ts +74 -0
  321. package/dist/transport/bus.d.ts.map +1 -0
  322. package/dist/transport/bus.js +180 -0
  323. package/dist/transport/bus.js.map +1 -0
  324. package/dist/transport/capability.d.ts +38 -0
  325. package/dist/transport/capability.d.ts.map +1 -0
  326. package/dist/transport/capability.js +254 -0
  327. package/dist/transport/capability.js.map +1 -0
  328. package/dist/transport/types.d.ts +148 -0
  329. package/dist/transport/types.d.ts.map +1 -0
  330. package/dist/transport/types.js +19 -0
  331. package/dist/transport/types.js.map +1 -0
  332. package/dist/types.d.ts +26 -2
  333. package/dist/types.d.ts.map +1 -1
  334. package/dist/types.js.map +1 -1
  335. package/package.json +126 -6
  336. package/src/adapters/1688/item.yaml +10 -0
  337. package/src/adapters/1688/search.yaml +10 -0
  338. package/src/adapters/1688/store.yaml +10 -0
  339. package/src/adapters/36kr/article.yaml +10 -0
  340. package/src/adapters/36kr/hot.yaml +10 -0
  341. package/src/adapters/36kr/latest.yaml +11 -0
  342. package/src/adapters/36kr/news.yaml +10 -0
  343. package/src/adapters/36kr/search.yaml +10 -0
  344. package/src/adapters/adguardhome/add-rule.yaml +10 -0
  345. package/src/adapters/adguardhome/rules.yaml +11 -0
  346. package/src/adapters/adguardhome/stats.yaml +11 -0
  347. package/src/adapters/adguardhome/status.yaml +11 -0
  348. package/src/adapters/adguardhome/toggle.yaml +10 -0
  349. package/src/adapters/amazon/bestsellers.yaml +10 -0
  350. package/src/adapters/amazon/discussion.yaml +10 -0
  351. package/src/adapters/amazon/movers-shakers.yaml +10 -0
  352. package/src/adapters/amazon/new-releases.yaml +10 -0
  353. package/src/adapters/amazon/offer.yaml +10 -0
  354. package/src/adapters/amazon/product.yaml +10 -0
  355. package/src/adapters/amazon/rankings.yaml +10 -0
  356. package/src/adapters/amazon/search.yaml +10 -0
  357. package/src/adapters/apple-music/rate-album.yaml +76 -0
  358. package/src/adapters/apple-notes/list.yaml +55 -0
  359. package/src/adapters/apple-notes/read.yaml +47 -0
  360. package/src/adapters/apple-notes/search.yaml +46 -0
  361. package/src/adapters/apple-podcasts/episodes.yaml +10 -0
  362. package/src/adapters/apple-podcasts/search.yaml +10 -0
  363. package/src/adapters/apple-podcasts/top.yaml +11 -0
  364. package/src/adapters/arxiv/paper.test.ts +15 -0
  365. package/src/adapters/arxiv/paper.yaml +10 -0
  366. package/src/adapters/arxiv/search.test.ts +15 -0
  367. package/src/adapters/arxiv/search.yaml +10 -0
  368. package/src/adapters/arxiv/trending.yaml +11 -0
  369. package/src/adapters/audacity/convert.yaml +10 -0
  370. package/src/adapters/audacity/effects.yaml +10 -0
  371. package/src/adapters/audacity/info.yaml +10 -0
  372. package/src/adapters/audacity/mix.yaml +10 -0
  373. package/src/adapters/audacity/normalize.yaml +10 -0
  374. package/src/adapters/audacity/spectrogram.yaml +10 -0
  375. package/src/adapters/audacity/split-channels.yaml +10 -0
  376. package/src/adapters/audacity/trim.yaml +10 -0
  377. package/src/adapters/autoagent/eval-run.yaml +10 -0
  378. package/src/adapters/aws/s3-ls.yaml +10 -0
  379. package/src/adapters/az/account.yaml +11 -0
  380. package/src/adapters/baidu/hot.yaml +10 -0
  381. package/src/adapters/baidu/search.yaml +10 -0
  382. package/src/adapters/band/bands.yaml +10 -0
  383. package/src/adapters/band/mentions.yaml +10 -0
  384. package/src/adapters/band/post.yaml +10 -0
  385. package/src/adapters/band/posts.yaml +10 -0
  386. package/src/adapters/barchart/flow.yaml +10 -0
  387. package/src/adapters/barchart/greeks.yaml +10 -0
  388. package/src/adapters/barchart/options.yaml +10 -0
  389. package/src/adapters/barchart/quote.yaml +10 -0
  390. package/src/adapters/bbc/news.yaml +10 -0
  391. package/src/adapters/bbc/technology.yaml +10 -0
  392. package/src/adapters/bbc/top.yaml +10 -0
  393. package/src/adapters/bbc/world.yaml +10 -0
  394. package/src/adapters/bilibili/coin.yaml +11 -0
  395. package/src/adapters/bilibili/dynamic.test.ts +15 -0
  396. package/src/adapters/bilibili/dynamic.yaml +10 -0
  397. package/src/adapters/bilibili/favorites.test.ts +15 -0
  398. package/src/adapters/bilibili/favorites.yaml +10 -0
  399. package/src/adapters/bilibili/feed.yaml +11 -0
  400. package/src/adapters/bilibili/following.test.ts +15 -0
  401. package/src/adapters/bilibili/following.yaml +10 -0
  402. package/src/adapters/bilibili/history.yaml +11 -0
  403. package/src/adapters/bilibili/hot.test.ts +15 -0
  404. package/src/adapters/bilibili/hot.yaml +10 -0
  405. package/src/adapters/bilibili/later.yaml +11 -0
  406. package/src/adapters/bilibili/live.yaml +11 -0
  407. package/src/adapters/bilibili/me.test.ts +15 -0
  408. package/src/adapters/bilibili/me.yaml +10 -0
  409. package/src/adapters/bilibili/ranking.yaml +11 -0
  410. package/src/adapters/bilibili/trending.test.ts +15 -0
  411. package/src/adapters/bilibili/trending.yaml +10 -0
  412. package/src/adapters/binance/hot.yaml +10 -0
  413. package/src/adapters/binance/kline.yaml +10 -0
  414. package/src/adapters/binance/ticker.yaml +10 -0
  415. package/src/adapters/blender/animation.yaml +10 -0
  416. package/src/adapters/blender/camera.yaml +10 -0
  417. package/src/adapters/blender/convert.yaml +10 -0
  418. package/src/adapters/blender/export.yaml +10 -0
  419. package/src/adapters/blender/import.yaml +10 -0
  420. package/src/adapters/blender/info.yaml +10 -0
  421. package/src/adapters/blender/lighting.yaml +10 -0
  422. package/src/adapters/blender/materials.yaml +10 -0
  423. package/src/adapters/blender/objects.yaml +10 -0
  424. package/src/adapters/blender/render.yaml +10 -0
  425. package/src/adapters/blender/scene.yaml +10 -0
  426. package/src/adapters/blender/screenshot.yaml +10 -0
  427. package/src/adapters/blender/script.yaml +10 -0
  428. package/src/adapters/bloomberg/businessweek.yaml +10 -0
  429. package/src/adapters/bloomberg/economics.yaml +10 -0
  430. package/src/adapters/bloomberg/feeds.yaml +10 -0
  431. package/src/adapters/bloomberg/industries.yaml +10 -0
  432. package/src/adapters/bloomberg/main.yaml +10 -0
  433. package/src/adapters/bloomberg/markets.yaml +10 -0
  434. package/src/adapters/bloomberg/news.yaml +10 -0
  435. package/src/adapters/bloomberg/opinions.yaml +10 -0
  436. package/src/adapters/bloomberg/politics.yaml +10 -0
  437. package/src/adapters/bloomberg/tech.yaml +10 -0
  438. package/src/adapters/bluesky/feeds.test.ts +15 -0
  439. package/src/adapters/bluesky/feeds.yaml +10 -0
  440. package/src/adapters/bluesky/followers.test.ts +15 -0
  441. package/src/adapters/bluesky/followers.yaml +10 -0
  442. package/src/adapters/bluesky/following.test.ts +15 -0
  443. package/src/adapters/bluesky/following.yaml +10 -0
  444. package/src/adapters/bluesky/likes.test.ts +15 -0
  445. package/src/adapters/bluesky/likes.yaml +10 -0
  446. package/src/adapters/bluesky/notifications.test.ts +15 -0
  447. package/src/adapters/bluesky/notifications.yaml +10 -0
  448. package/src/adapters/bluesky/post.yaml +10 -0
  449. package/src/adapters/bluesky/profile.yaml +10 -0
  450. package/src/adapters/bluesky/search.test.ts +15 -0
  451. package/src/adapters/bluesky/search.yaml +10 -0
  452. package/src/adapters/bluesky/starter-packs.test.ts +15 -0
  453. package/src/adapters/bluesky/starter-packs.yaml +10 -0
  454. package/src/adapters/bluesky/thread.test.ts +15 -0
  455. package/src/adapters/bluesky/thread.yaml +10 -0
  456. package/src/adapters/bluesky/trending.test.ts +15 -0
  457. package/src/adapters/bluesky/trending.yaml +10 -0
  458. package/src/adapters/bluesky/user.test.ts +15 -0
  459. package/src/adapters/bluesky/user.yaml +10 -0
  460. package/src/adapters/boss/batchgreet.yaml +10 -0
  461. package/src/adapters/boss/chatlist.yaml +10 -0
  462. package/src/adapters/boss/chatmsg.yaml +10 -0
  463. package/src/adapters/boss/detail.yaml +10 -0
  464. package/src/adapters/boss/exchange.yaml +10 -0
  465. package/src/adapters/boss/greet.yaml +10 -0
  466. package/src/adapters/boss/invite.yaml +10 -0
  467. package/src/adapters/boss/joblist.yaml +10 -0
  468. package/src/adapters/boss/mark.yaml +10 -0
  469. package/src/adapters/boss/recommend.yaml +10 -0
  470. package/src/adapters/boss/resume.yaml +10 -0
  471. package/src/adapters/boss/search.yaml +10 -0
  472. package/src/adapters/boss/send.yaml +10 -0
  473. package/src/adapters/boss/stats.yaml +10 -0
  474. package/src/adapters/chaoxing/assignments.yaml +10 -0
  475. package/src/adapters/chaoxing/exams.yaml +10 -0
  476. package/src/adapters/chrome/bookmarks.yaml +10 -0
  477. package/src/adapters/chrome/tabs.yaml +10 -0
  478. package/src/adapters/claude-code/version.yaml +10 -0
  479. package/src/adapters/cloudcompare/compare.yaml +10 -0
  480. package/src/adapters/cloudcompare/convert.yaml +10 -0
  481. package/src/adapters/cloudcompare/info.yaml +10 -0
  482. package/src/adapters/cloudcompare/subsample.yaml +10 -0
  483. package/src/adapters/cnki/search.yaml +10 -0
  484. package/src/adapters/cnn/technology.yaml +10 -0
  485. package/src/adapters/cnn/top.yaml +10 -0
  486. package/src/adapters/cocoapods/info.yaml +10 -0
  487. package/src/adapters/cocoapods/search.yaml +10 -0
  488. package/src/adapters/codex-cli/version.yaml +10 -0
  489. package/src/adapters/coinbase/prices.yaml +10 -0
  490. package/src/adapters/coinbase/rates.yaml +10 -0
  491. package/src/adapters/comfyui/generate.yaml +10 -0
  492. package/src/adapters/comfyui/history.yaml +10 -0
  493. package/src/adapters/comfyui/nodes.yaml +10 -0
  494. package/src/adapters/comfyui/status.yaml +10 -0
  495. package/src/adapters/coupang/add-to-cart.yaml +10 -0
  496. package/src/adapters/coupang/hot.yaml +10 -0
  497. package/src/adapters/coupang/search.yaml +10 -0
  498. package/src/adapters/crates-io/info.yaml +10 -0
  499. package/src/adapters/crates-io/search.yaml +10 -0
  500. package/src/adapters/crates-io/versions.yaml +10 -0
  501. package/src/adapters/ctrip/hot.yaml +10 -0
  502. package/src/adapters/ctrip/search.yaml +10 -0
  503. package/src/adapters/cua/bench-list.yaml +10 -0
  504. package/src/adapters/cua/bench-run.yaml +10 -0
  505. package/src/adapters/dangdang/hot.yaml +10 -0
  506. package/src/adapters/dangdang/search.yaml +10 -0
  507. package/src/adapters/deepseek/chat.yaml +10 -0
  508. package/src/adapters/deepseek/models.yaml +10 -0
  509. package/src/adapters/devto/latest.yaml +10 -0
  510. package/src/adapters/devto/search.yaml +10 -0
  511. package/src/adapters/devto/tag.yaml +10 -0
  512. package/src/adapters/devto/top.yaml +10 -0
  513. package/src/adapters/devto/user.yaml +10 -0
  514. package/src/adapters/dianping/hot.yaml +10 -0
  515. package/src/adapters/dianping/search.yaml +10 -0
  516. package/src/adapters/dictionary/examples.yaml +10 -0
  517. package/src/adapters/dictionary/search.yaml +10 -0
  518. package/src/adapters/dictionary/synonyms.yaml +10 -0
  519. package/src/adapters/dingtalk/version.yaml +10 -0
  520. package/src/adapters/docker/build.yaml +10 -0
  521. package/src/adapters/docker/images.yaml +10 -0
  522. package/src/adapters/docker/logs.yaml +10 -0
  523. package/src/adapters/docker/networks.yaml +10 -0
  524. package/src/adapters/docker/ps.yaml +10 -0
  525. package/src/adapters/docker/run.yaml +10 -0
  526. package/src/adapters/docker/volumes.yaml +10 -0
  527. package/src/adapters/docker-hub/info.yaml +10 -0
  528. package/src/adapters/docker-hub/search.yaml +10 -0
  529. package/src/adapters/docker-hub/tags.yaml +10 -0
  530. package/src/adapters/doctl/droplets.yaml +10 -0
  531. package/src/adapters/douban/book-hot.yaml +11 -0
  532. package/src/adapters/douban/download.yaml +10 -0
  533. package/src/adapters/douban/group-hot.yaml +11 -0
  534. package/src/adapters/douban/marks.yaml +10 -0
  535. package/src/adapters/douban/movie-hot.test.ts +15 -0
  536. package/src/adapters/douban/movie-hot.yaml +10 -0
  537. package/src/adapters/douban/new-movies.test.ts +15 -0
  538. package/src/adapters/douban/new-movies.yaml +10 -0
  539. package/src/adapters/douban/photos.yaml +10 -0
  540. package/src/adapters/douban/reviews.yaml +10 -0
  541. package/src/adapters/douban/search.test.ts +15 -0
  542. package/src/adapters/douban/search.yaml +10 -0
  543. package/src/adapters/douban/subject.yaml +10 -0
  544. package/src/adapters/douban/top250.yaml +11 -0
  545. package/src/adapters/douban/tv-hot.test.ts +15 -0
  546. package/src/adapters/douban/tv-hot.yaml +10 -0
  547. package/src/adapters/doubao/ask.yaml +10 -0
  548. package/src/adapters/doubao/new.yaml +10 -0
  549. package/src/adapters/doubao/status.yaml +10 -0
  550. package/src/adapters/doubao-web/ask.yaml +10 -0
  551. package/src/adapters/doubao-web/detail.yaml +10 -0
  552. package/src/adapters/doubao-web/history.yaml +10 -0
  553. package/src/adapters/doubao-web/meeting-summary.yaml +10 -0
  554. package/src/adapters/doubao-web/meeting-transcript.yaml +10 -0
  555. package/src/adapters/doubao-web/new.yaml +10 -0
  556. package/src/adapters/doubao-web/read.yaml +10 -0
  557. package/src/adapters/doubao-web/send.yaml +10 -0
  558. package/src/adapters/doubao-web/status.yaml +10 -0
  559. package/src/adapters/douyu/hot.yaml +10 -0
  560. package/src/adapters/douyu/search.yaml +10 -0
  561. package/src/adapters/drawio/export.yaml +10 -0
  562. package/src/adapters/eastmoney/fund.yaml +10 -0
  563. package/src/adapters/eastmoney/hot.yaml +11 -0
  564. package/src/adapters/eastmoney/market.yaml +11 -0
  565. package/src/adapters/eastmoney/search.yaml +10 -0
  566. package/src/adapters/ele/hot.yaml +11 -0
  567. package/src/adapters/ele/search.yaml +11 -0
  568. package/src/adapters/exchangerate/convert.yaml +10 -0
  569. package/src/adapters/exchangerate/list.yaml +11 -0
  570. package/src/adapters/facebook/add-friend.yaml +10 -0
  571. package/src/adapters/facebook/events.yaml +10 -0
  572. package/src/adapters/facebook/feed.yaml +10 -0
  573. package/src/adapters/facebook/friends.yaml +10 -0
  574. package/src/adapters/facebook/groups.yaml +10 -0
  575. package/src/adapters/facebook/join-group.yaml +10 -0
  576. package/src/adapters/facebook/marketplace.yaml +10 -0
  577. package/src/adapters/facebook/memories.yaml +10 -0
  578. package/src/adapters/facebook/notifications.yaml +10 -0
  579. package/src/adapters/facebook/post.yaml +10 -0
  580. package/src/adapters/facebook/profile.yaml +10 -0
  581. package/src/adapters/facebook/search.yaml +10 -0
  582. package/src/adapters/feishu/calendar.yaml +10 -0
  583. package/src/adapters/feishu/docs.yaml +10 -0
  584. package/src/adapters/feishu/send.yaml +10 -0
  585. package/src/adapters/feishu/tasks.yaml +10 -0
  586. package/src/adapters/ffmpeg/compress.yaml +10 -0
  587. package/src/adapters/ffmpeg/concat.yaml +10 -0
  588. package/src/adapters/ffmpeg/convert.yaml +10 -0
  589. package/src/adapters/ffmpeg/extract-audio.yaml +10 -0
  590. package/src/adapters/ffmpeg/gif.yaml +10 -0
  591. package/src/adapters/ffmpeg/normalize.yaml +10 -0
  592. package/src/adapters/ffmpeg/probe.yaml +10 -0
  593. package/src/adapters/ffmpeg/resize.yaml +10 -0
  594. package/src/adapters/ffmpeg/subtitles.yaml +10 -0
  595. package/src/adapters/ffmpeg/thumbnail.yaml +10 -0
  596. package/src/adapters/ffmpeg/trim.yaml +10 -0
  597. package/src/adapters/figma/export-selected.yaml +72 -0
  598. package/src/adapters/flyctl/apps.yaml +10 -0
  599. package/src/adapters/freecad/assembly.yaml +10 -0
  600. package/src/adapters/freecad/bom.yaml +10 -0
  601. package/src/adapters/freecad/boolean.yaml +10 -0
  602. package/src/adapters/freecad/check.yaml +10 -0
  603. package/src/adapters/freecad/convert.yaml +10 -0
  604. package/src/adapters/freecad/export-stl.yaml +10 -0
  605. package/src/adapters/freecad/import.yaml +10 -0
  606. package/src/adapters/freecad/info.yaml +10 -0
  607. package/src/adapters/freecad/macro.yaml +10 -0
  608. package/src/adapters/freecad/measure.yaml +10 -0
  609. package/src/adapters/freecad/mesh.yaml +10 -0
  610. package/src/adapters/freecad/properties.yaml +10 -0
  611. package/src/adapters/freecad/render.yaml +10 -0
  612. package/src/adapters/freecad/section.yaml +10 -0
  613. package/src/adapters/freecad/sketch.yaml +10 -0
  614. package/src/adapters/futu/hot.yaml +10 -0
  615. package/src/adapters/futu/quote.yaml +10 -0
  616. package/src/adapters/gcloud/projects.yaml +11 -0
  617. package/src/adapters/gemini/ask.yaml +10 -0
  618. package/src/adapters/gemini/deep-research-result.yaml +10 -0
  619. package/src/adapters/gemini/deep-research.yaml +10 -0
  620. package/src/adapters/gemini/image.yaml +10 -0
  621. package/src/adapters/gemini/new.yaml +10 -0
  622. package/src/adapters/gh/issue.yaml +10 -0
  623. package/src/adapters/gh/pr.yaml +10 -0
  624. package/src/adapters/gh/release.yaml +10 -0
  625. package/src/adapters/gh/repo.yaml +10 -0
  626. package/src/adapters/gh/run.yaml +10 -0
  627. package/src/adapters/gimp/adjust.yaml +10 -0
  628. package/src/adapters/gimp/batch.yaml +10 -0
  629. package/src/adapters/gimp/convert.yaml +10 -0
  630. package/src/adapters/gimp/crop.yaml +10 -0
  631. package/src/adapters/gimp/filter.yaml +10 -0
  632. package/src/adapters/gimp/flip.yaml +10 -0
  633. package/src/adapters/gimp/info.yaml +10 -0
  634. package/src/adapters/gimp/layers.yaml +10 -0
  635. package/src/adapters/gimp/merge-layers.yaml +10 -0
  636. package/src/adapters/gimp/resize.yaml +10 -0
  637. package/src/adapters/gimp/rotate.yaml +10 -0
  638. package/src/adapters/gimp/text.yaml +10 -0
  639. package/src/adapters/gitee/repos.yaml +10 -0
  640. package/src/adapters/gitee/search.yaml +10 -0
  641. package/src/adapters/gitee/trending.yaml +11 -0
  642. package/src/adapters/github-trending/daily.test.ts +15 -0
  643. package/src/adapters/github-trending/daily.yaml +10 -0
  644. package/src/adapters/github-trending/developers.yaml +11 -0
  645. package/src/adapters/github-trending/weekly.yaml +11 -0
  646. package/src/adapters/gitlab/projects.yaml +10 -0
  647. package/src/adapters/gitlab/search.yaml +10 -0
  648. package/src/adapters/gitlab/trending.yaml +10 -0
  649. package/src/adapters/godot/project-run.yaml +10 -0
  650. package/src/adapters/godot/scene-export.yaml +10 -0
  651. package/src/adapters/google/news.yaml +10 -0
  652. package/src/adapters/google/search.yaml +10 -0
  653. package/src/adapters/google/suggest.yaml +10 -0
  654. package/src/adapters/google/trends.yaml +10 -0
  655. package/src/adapters/grok/ask.yaml +10 -0
  656. package/src/adapters/hackernews/ask.test.ts +15 -0
  657. package/src/adapters/hackernews/ask.yaml +10 -0
  658. package/src/adapters/hackernews/best.test.ts +15 -0
  659. package/src/adapters/hackernews/best.yaml +10 -0
  660. package/src/adapters/hackernews/comments.test.ts +15 -0
  661. package/src/adapters/hackernews/comments.yaml +10 -0
  662. package/src/adapters/hackernews/item.yaml +10 -0
  663. package/src/adapters/hackernews/jobs.test.ts +15 -0
  664. package/src/adapters/hackernews/jobs.yaml +10 -0
  665. package/src/adapters/hackernews/new.test.ts +15 -0
  666. package/src/adapters/hackernews/new.yaml +10 -0
  667. package/src/adapters/hackernews/search.test.ts +15 -0
  668. package/src/adapters/hackernews/search.yaml +10 -0
  669. package/src/adapters/hackernews/show.test.ts +15 -0
  670. package/src/adapters/hackernews/show.yaml +10 -0
  671. package/src/adapters/hackernews/top.test.ts +15 -0
  672. package/src/adapters/hackernews/top.yaml +10 -0
  673. package/src/adapters/hackernews/user.yaml +10 -0
  674. package/src/adapters/hermes/sessions-search.yaml +10 -0
  675. package/src/adapters/hermes/skills-list.yaml +10 -0
  676. package/src/adapters/hermes/skills-read.yaml +10 -0
  677. package/src/adapters/hf/datasets.yaml +10 -0
  678. package/src/adapters/hf/models.yaml +10 -0
  679. package/src/adapters/hf/spaces.yaml +10 -0
  680. package/src/adapters/hf/top.yaml +10 -0
  681. package/src/adapters/homebrew/info.yaml +10 -0
  682. package/src/adapters/homebrew/search.yaml +10 -0
  683. package/src/adapters/huggingface-papers/daily.yaml +10 -0
  684. package/src/adapters/huggingface-papers/search.yaml +10 -0
  685. package/src/adapters/hupu/detail.yaml +10 -0
  686. package/src/adapters/hupu/hot.yaml +10 -0
  687. package/src/adapters/hupu/like.yaml +10 -0
  688. package/src/adapters/hupu/mentions.yaml +10 -0
  689. package/src/adapters/hupu/reply.yaml +10 -0
  690. package/src/adapters/hupu/search.yaml +10 -0
  691. package/src/adapters/hupu/unlike.yaml +10 -0
  692. package/src/adapters/imagemagick/compare.yaml +10 -0
  693. package/src/adapters/imagemagick/composite.yaml +10 -0
  694. package/src/adapters/imagemagick/convert.yaml +10 -0
  695. package/src/adapters/imagemagick/identify.yaml +10 -0
  696. package/src/adapters/imagemagick/montage.yaml +10 -0
  697. package/src/adapters/imagemagick/resize.yaml +10 -0
  698. package/src/adapters/imdb/box-office.yaml +10 -0
  699. package/src/adapters/imdb/person.yaml +10 -0
  700. package/src/adapters/imdb/reviews.yaml +10 -0
  701. package/src/adapters/imdb/search.yaml +10 -0
  702. package/src/adapters/imdb/title.yaml +10 -0
  703. package/src/adapters/imdb/top.yaml +11 -0
  704. package/src/adapters/imdb/trending.yaml +10 -0
  705. package/src/adapters/imessage/contact.yaml +76 -0
  706. package/src/adapters/imessage/recent.yaml +69 -0
  707. package/src/adapters/imessage/search.yaml +78 -0
  708. package/src/adapters/infoq/articles.yaml +10 -0
  709. package/src/adapters/infoq/latest.yaml +10 -0
  710. package/src/adapters/inkscape/convert.yaml +10 -0
  711. package/src/adapters/inkscape/export.yaml +10 -0
  712. package/src/adapters/inkscape/optimize.yaml +10 -0
  713. package/src/adapters/instagram/activity.yaml +10 -0
  714. package/src/adapters/instagram/comment.yaml +10 -0
  715. package/src/adapters/instagram/explore.yaml +10 -0
  716. package/src/adapters/instagram/follow.yaml +10 -0
  717. package/src/adapters/instagram/followers.yaml +10 -0
  718. package/src/adapters/instagram/following.yaml +10 -0
  719. package/src/adapters/instagram/highlights.yaml +10 -0
  720. package/src/adapters/instagram/like.yaml +10 -0
  721. package/src/adapters/instagram/profile.yaml +10 -0
  722. package/src/adapters/instagram/reels-trending.yaml +10 -0
  723. package/src/adapters/instagram/reels.yaml +10 -0
  724. package/src/adapters/instagram/save.yaml +10 -0
  725. package/src/adapters/instagram/saved.yaml +10 -0
  726. package/src/adapters/instagram/search.yaml +10 -0
  727. package/src/adapters/instagram/stories.yaml +10 -0
  728. package/src/adapters/instagram/suggested.yaml +10 -0
  729. package/src/adapters/instagram/tags.yaml +10 -0
  730. package/src/adapters/instagram/unfollow.yaml +10 -0
  731. package/src/adapters/instagram/unlike.yaml +10 -0
  732. package/src/adapters/instagram/unsave.yaml +10 -0
  733. package/src/adapters/instagram/user.yaml +10 -0
  734. package/src/adapters/ip-info/lookup.yaml +10 -0
  735. package/src/adapters/itch-io/popular.yaml +11 -0
  736. package/src/adapters/itch-io/search.yaml +10 -0
  737. package/src/adapters/itch-io/top.yaml +11 -0
  738. package/src/adapters/ithome/hot.yaml +11 -0
  739. package/src/adapters/ithome/latest.yaml +10 -0
  740. package/src/adapters/ithome/news.yaml +10 -0
  741. package/src/adapters/jd/hot.yaml +11 -0
  742. package/src/adapters/jd/item.yaml +10 -0
  743. package/src/adapters/jd/search.yaml +10 -0
  744. package/src/adapters/jianyu/search.yaml +10 -0
  745. package/src/adapters/jike/feed.yaml +10 -0
  746. package/src/adapters/jike/notifications.yaml +10 -0
  747. package/src/adapters/jike/post.yaml +10 -0
  748. package/src/adapters/jike/search.yaml +10 -0
  749. package/src/adapters/jike/topic.yaml +10 -0
  750. package/src/adapters/jike/user.yaml +10 -0
  751. package/src/adapters/jimeng/generate.yaml +10 -0
  752. package/src/adapters/jimeng/history.yaml +10 -0
  753. package/src/adapters/jq/format.yaml +10 -0
  754. package/src/adapters/jq/query.yaml +10 -0
  755. package/src/adapters/kdenlive/effects.yaml +10 -0
  756. package/src/adapters/kdenlive/info.yaml +10 -0
  757. package/src/adapters/kdenlive/render.yaml +10 -0
  758. package/src/adapters/ke/ershoufang.yaml +10 -0
  759. package/src/adapters/ke/xiaoqu.yaml +10 -0
  760. package/src/adapters/krita/batch.yaml +10 -0
  761. package/src/adapters/krita/convert.yaml +10 -0
  762. package/src/adapters/krita/export.yaml +10 -0
  763. package/src/adapters/krita/info.yaml +10 -0
  764. package/src/adapters/kuaishou/hot.yaml +11 -0
  765. package/src/adapters/kuaishou/search.yaml +11 -0
  766. package/src/adapters/lark/version.yaml +10 -0
  767. package/src/adapters/lesswrong/comments.test.ts +15 -0
  768. package/src/adapters/lesswrong/comments.yaml +10 -0
  769. package/src/adapters/lesswrong/curated.test.ts +15 -0
  770. package/src/adapters/lesswrong/curated.yaml +10 -0
  771. package/src/adapters/lesswrong/frontpage.test.ts +15 -0
  772. package/src/adapters/lesswrong/frontpage.yaml +10 -0
  773. package/src/adapters/lesswrong/new.test.ts +15 -0
  774. package/src/adapters/lesswrong/new.yaml +10 -0
  775. package/src/adapters/lesswrong/read.test.ts +23 -0
  776. package/src/adapters/lesswrong/read.yaml +10 -0
  777. package/src/adapters/lesswrong/sequences.test.ts +15 -0
  778. package/src/adapters/lesswrong/sequences.yaml +10 -0
  779. package/src/adapters/lesswrong/shortform.test.ts +15 -0
  780. package/src/adapters/lesswrong/shortform.yaml +10 -0
  781. package/src/adapters/lesswrong/tag.yaml +10 -0
  782. package/src/adapters/lesswrong/tags.test.ts +15 -0
  783. package/src/adapters/lesswrong/tags.yaml +10 -0
  784. package/src/adapters/lesswrong/top-month.test.ts +15 -0
  785. package/src/adapters/lesswrong/top-month.yaml +10 -0
  786. package/src/adapters/lesswrong/top-week.test.ts +15 -0
  787. package/src/adapters/lesswrong/top-week.yaml +10 -0
  788. package/src/adapters/lesswrong/top-year.test.ts +15 -0
  789. package/src/adapters/lesswrong/top-year.yaml +10 -0
  790. package/src/adapters/lesswrong/top.test.ts +15 -0
  791. package/src/adapters/lesswrong/top.yaml +10 -0
  792. package/src/adapters/lesswrong/user-posts.yaml +10 -0
  793. package/src/adapters/lesswrong/user.yaml +10 -0
  794. package/src/adapters/libreoffice/convert.yaml +10 -0
  795. package/src/adapters/libreoffice/print.yaml +10 -0
  796. package/src/adapters/linear/issue-create.test.ts +15 -0
  797. package/src/adapters/linear/issue-create.yaml +101 -0
  798. package/src/adapters/linear/issue-list.yaml +90 -0
  799. package/src/adapters/linear/issue-update.test.ts +15 -0
  800. package/src/adapters/linear/issue-update.yaml +103 -0
  801. package/src/adapters/linkedin/jobs.yaml +10 -0
  802. package/src/adapters/linkedin/profile.yaml +10 -0
  803. package/src/adapters/linkedin/search.yaml +10 -0
  804. package/src/adapters/linkedin/timeline.yaml +10 -0
  805. package/src/adapters/linux-do/categories.yaml +10 -0
  806. package/src/adapters/linux-do/category.yaml +10 -0
  807. package/src/adapters/linux-do/feed.yaml +10 -0
  808. package/src/adapters/linux-do/hot.yaml +10 -0
  809. package/src/adapters/linux-do/latest.yaml +10 -0
  810. package/src/adapters/linux-do/search.yaml +10 -0
  811. package/src/adapters/linux-do/tags.yaml +10 -0
  812. package/src/adapters/linux-do/topic.yaml +10 -0
  813. package/src/adapters/linux-do/user-posts.yaml +10 -0
  814. package/src/adapters/linux-do/user-topics.yaml +10 -0
  815. package/src/adapters/lobsters/active.yaml +10 -0
  816. package/src/adapters/lobsters/hot.yaml +10 -0
  817. package/src/adapters/lobsters/newest.yaml +10 -0
  818. package/src/adapters/lobsters/search.yaml +10 -0
  819. package/src/adapters/lobsters/tag.yaml +10 -0
  820. package/src/adapters/macos/active-app.yaml +10 -0
  821. package/src/adapters/macos/apps-list.yaml +10 -0
  822. package/src/adapters/macos/apps.yaml +10 -0
  823. package/src/adapters/macos/battery.yaml +10 -0
  824. package/src/adapters/macos/bluetooth.yaml +10 -0
  825. package/src/adapters/macos/brightness.yaml +10 -0
  826. package/src/adapters/macos/caffeinate.yaml +10 -0
  827. package/src/adapters/macos/calendar-create.yaml +10 -0
  828. package/src/adapters/macos/calendar-list.yaml +10 -0
  829. package/src/adapters/macos/calendar-today.yaml +10 -0
  830. package/src/adapters/macos/clipboard.yaml +10 -0
  831. package/src/adapters/macos/contacts-search.yaml +10 -0
  832. package/src/adapters/macos/dark-mode.yaml +10 -0
  833. package/src/adapters/macos/disk-info.yaml +10 -0
  834. package/src/adapters/macos/disk-usage.yaml +10 -0
  835. package/src/adapters/macos/do-not-disturb.yaml +10 -0
  836. package/src/adapters/macos/empty-trash.yaml +10 -0
  837. package/src/adapters/macos/finder-copy.yaml +10 -0
  838. package/src/adapters/macos/finder-move.yaml +10 -0
  839. package/src/adapters/macos/finder-new-folder.yaml +10 -0
  840. package/src/adapters/macos/finder-recent.yaml +10 -0
  841. package/src/adapters/macos/finder-selection.yaml +10 -0
  842. package/src/adapters/macos/finder-tags.yaml +10 -0
  843. package/src/adapters/macos/lock-screen.yaml +10 -0
  844. package/src/adapters/macos/mail-send.yaml +10 -0
  845. package/src/adapters/macos/mail-status.yaml +10 -0
  846. package/src/adapters/macos/messages-send.yaml +10 -0
  847. package/src/adapters/macos/music-control.yaml +10 -0
  848. package/src/adapters/macos/music-now.yaml +10 -0
  849. package/src/adapters/macos/notes-list.yaml +10 -0
  850. package/src/adapters/macos/notes-search.yaml +10 -0
  851. package/src/adapters/macos/notification.yaml +10 -0
  852. package/src/adapters/macos/notify.yaml +10 -0
  853. package/src/adapters/macos/open-app.yaml +10 -0
  854. package/src/adapters/macos/open.yaml +10 -0
  855. package/src/adapters/macos/photos-search.yaml +10 -0
  856. package/src/adapters/macos/processes.yaml +10 -0
  857. package/src/adapters/macos/reminder-create.yaml +10 -0
  858. package/src/adapters/macos/reminders-complete.yaml +10 -0
  859. package/src/adapters/macos/reminders-list.yaml +10 -0
  860. package/src/adapters/macos/safari-history.yaml +10 -0
  861. package/src/adapters/macos/safari-tabs.yaml +10 -0
  862. package/src/adapters/macos/safari-url.yaml +10 -0
  863. package/src/adapters/macos/say.yaml +10 -0
  864. package/src/adapters/macos/screen-lock.yaml +10 -0
  865. package/src/adapters/macos/screen-recording.yaml +10 -0
  866. package/src/adapters/macos/screenshot.yaml +10 -0
  867. package/src/adapters/macos/shortcuts-list.yaml +10 -0
  868. package/src/adapters/macos/shortcuts-run.yaml +10 -0
  869. package/src/adapters/macos/sleep.yaml +10 -0
  870. package/src/adapters/macos/spotlight.yaml +10 -0
  871. package/src/adapters/macos/system-info.yaml +10 -0
  872. package/src/adapters/macos/trash.yaml +10 -0
  873. package/src/adapters/macos/uptime.yaml +10 -0
  874. package/src/adapters/macos/volume.yaml +10 -0
  875. package/src/adapters/macos/wallpaper.yaml +10 -0
  876. package/src/adapters/macos/wifi-info.yaml +10 -0
  877. package/src/adapters/macos/wifi.yaml +10 -0
  878. package/src/adapters/maimai/search.yaml +10 -0
  879. package/src/adapters/maoyan/hot.yaml +10 -0
  880. package/src/adapters/maoyan/search.yaml +10 -0
  881. package/src/adapters/mastodon/search.yaml +10 -0
  882. package/src/adapters/mastodon/timeline.yaml +11 -0
  883. package/src/adapters/mastodon/trending.yaml +10 -0
  884. package/src/adapters/mastodon/user.yaml +10 -0
  885. package/src/adapters/medium/article.yaml +10 -0
  886. package/src/adapters/medium/feed.yaml +10 -0
  887. package/src/adapters/medium/search.yaml +10 -0
  888. package/src/adapters/medium/trending.yaml +10 -0
  889. package/src/adapters/medium/user.yaml +10 -0
  890. package/src/adapters/meituan/hot.yaml +10 -0
  891. package/src/adapters/meituan/search.yaml +10 -0
  892. package/src/adapters/mermaid/render.yaml +10 -0
  893. package/src/adapters/minimax/chat.yaml +10 -0
  894. package/src/adapters/minimax/models.yaml +10 -0
  895. package/src/adapters/minimax/tts.yaml +10 -0
  896. package/src/adapters/motion-studio/component-get.yaml +10 -0
  897. package/src/adapters/mubu/list.yaml +10 -0
  898. package/src/adapters/mubu/search.yaml +17 -0
  899. package/src/adapters/musescore/convert.yaml +10 -0
  900. package/src/adapters/musescore/export.yaml +10 -0
  901. package/src/adapters/musescore/info.yaml +10 -0
  902. package/src/adapters/musescore/instruments.yaml +10 -0
  903. package/src/adapters/musescore/transpose.yaml +10 -0
  904. package/src/adapters/neonctl/projects.yaml +10 -0
  905. package/src/adapters/netease-music/hot.yaml +11 -0
  906. package/src/adapters/netease-music/playlist.yaml +10 -0
  907. package/src/adapters/netease-music/search.yaml +10 -0
  908. package/src/adapters/netease-music/top.yaml +11 -0
  909. package/src/adapters/netlify/sites.yaml +10 -0
  910. package/src/adapters/notebooklm/current.yaml +10 -0
  911. package/src/adapters/notebooklm/get.yaml +10 -0
  912. package/src/adapters/notebooklm/history.yaml +10 -0
  913. package/src/adapters/notebooklm/list.yaml +10 -0
  914. package/src/adapters/notebooklm/note-list.yaml +10 -0
  915. package/src/adapters/notebooklm/notes-get.yaml +10 -0
  916. package/src/adapters/notebooklm/open.yaml +10 -0
  917. package/src/adapters/notebooklm/rpc.yaml +10 -0
  918. package/src/adapters/notebooklm/shared.yaml +10 -0
  919. package/src/adapters/notebooklm/source-fulltext.yaml +10 -0
  920. package/src/adapters/notebooklm/source-get.yaml +10 -0
  921. package/src/adapters/notebooklm/source-guide.yaml +10 -0
  922. package/src/adapters/notebooklm/source-list.yaml +10 -0
  923. package/src/adapters/notebooklm/status.yaml +10 -0
  924. package/src/adapters/notebooklm/summary.yaml +10 -0
  925. package/src/adapters/notion/databases.yaml +10 -0
  926. package/src/adapters/notion/pages.yaml +10 -0
  927. package/src/adapters/notion/search.yaml +10 -0
  928. package/src/adapters/novita/generate.yaml +10 -0
  929. package/src/adapters/novita/models.yaml +10 -0
  930. package/src/adapters/novita/status.yaml +10 -0
  931. package/src/adapters/npm/downloads.yaml +10 -0
  932. package/src/adapters/npm/info.yaml +10 -0
  933. package/src/adapters/npm/search.yaml +10 -0
  934. package/src/adapters/npm/versions.yaml +10 -0
  935. package/src/adapters/npm-trends/compare.yaml +10 -0
  936. package/src/adapters/npm-trends/trending.yaml +10 -0
  937. package/src/adapters/nytimes/search.yaml +10 -0
  938. package/src/adapters/nytimes/top.yaml +10 -0
  939. package/src/adapters/obs/record-start.yaml +10 -0
  940. package/src/adapters/obs/record-stop.yaml +10 -0
  941. package/src/adapters/obs/scenes.yaml +10 -0
  942. package/src/adapters/obs/screenshot.yaml +10 -0
  943. package/src/adapters/obs/sources.yaml +10 -0
  944. package/src/adapters/obs/status.yaml +10 -0
  945. package/src/adapters/obs/stream-start.yaml +10 -0
  946. package/src/adapters/obs/stream-stop.yaml +10 -0
  947. package/src/adapters/obsidian/daily.yaml +10 -0
  948. package/src/adapters/obsidian/open.yaml +10 -0
  949. package/src/adapters/obsidian/search.yaml +10 -0
  950. package/src/adapters/ollama/generate.yaml +10 -0
  951. package/src/adapters/ollama/list.yaml +10 -0
  952. package/src/adapters/ollama/models.yaml +11 -0
  953. package/src/adapters/ollama/ps.yaml +10 -0
  954. package/src/adapters/ones/enrich-tasks.yaml +10 -0
  955. package/src/adapters/ones/login.yaml +10 -0
  956. package/src/adapters/ones/logout.yaml +10 -0
  957. package/src/adapters/ones/me.yaml +10 -0
  958. package/src/adapters/ones/my-tasks.yaml +10 -0
  959. package/src/adapters/ones/resolve-labels.yaml +10 -0
  960. package/src/adapters/ones/task-helpers.yaml +10 -0
  961. package/src/adapters/ones/task.yaml +10 -0
  962. package/src/adapters/ones/tasks.yaml +10 -0
  963. package/src/adapters/ones/token-info.yaml +10 -0
  964. package/src/adapters/ones/worklog.yaml +10 -0
  965. package/src/adapters/opencode/version.yaml +10 -0
  966. package/src/adapters/openharness/memory-read.yaml +10 -0
  967. package/src/adapters/openharness/skills-list.yaml +10 -0
  968. package/src/adapters/openrouter/models.yaml +10 -0
  969. package/src/adapters/openrouter/search.yaml +10 -0
  970. package/src/adapters/pandoc/convert.yaml +10 -0
  971. package/src/adapters/paperreview/feedback.yaml +10 -0
  972. package/src/adapters/paperreview/review.yaml +10 -0
  973. package/src/adapters/paperreview/submit.yaml +10 -0
  974. package/src/adapters/perplexity/ask.yaml +10 -0
  975. package/src/adapters/pexels/curated.yaml +10 -0
  976. package/src/adapters/pexels/search.yaml +10 -0
  977. package/src/adapters/pinduoduo/hot.yaml +10 -0
  978. package/src/adapters/pinduoduo/search.yaml +10 -0
  979. package/src/adapters/pixiv/detail.yaml +10 -0
  980. package/src/adapters/pixiv/download.yaml +10 -0
  981. package/src/adapters/pixiv/illusts.yaml +10 -0
  982. package/src/adapters/pixiv/ranking.yaml +10 -0
  983. package/src/adapters/pixiv/search.yaml +10 -0
  984. package/src/adapters/pixiv/user.yaml +10 -0
  985. package/src/adapters/producthunt/browse.yaml +10 -0
  986. package/src/adapters/producthunt/hot.yaml +10 -0
  987. package/src/adapters/producthunt/posts.yaml +10 -0
  988. package/src/adapters/producthunt/search.yaml +10 -0
  989. package/src/adapters/producthunt/today.yaml +10 -0
  990. package/src/adapters/pscale/databases.yaml +10 -0
  991. package/src/adapters/pypi/info.yaml +10 -0
  992. package/src/adapters/pypi/search.yaml +10 -0
  993. package/src/adapters/pypi/versions.yaml +10 -0
  994. package/src/adapters/quark/ls.yaml +10 -0
  995. package/src/adapters/quark/search.yaml +10 -0
  996. package/src/adapters/qweather/forecast.yaml +10 -0
  997. package/src/adapters/qweather/now.yaml +10 -0
  998. package/src/adapters/railway/deploy.yaml +10 -0
  999. package/src/adapters/reddit/comment.yaml +10 -0
  1000. package/src/adapters/reddit/comments.test.ts +15 -0
  1001. package/src/adapters/reddit/comments.yaml +10 -0
  1002. package/src/adapters/reddit/frontpage.test.ts +15 -0
  1003. package/src/adapters/reddit/frontpage.yaml +10 -0
  1004. package/src/adapters/reddit/hot.test.ts +15 -0
  1005. package/src/adapters/reddit/hot.yaml +10 -0
  1006. package/src/adapters/reddit/new.test.ts +15 -0
  1007. package/src/adapters/reddit/new.yaml +10 -0
  1008. package/src/adapters/reddit/popular.test.ts +15 -0
  1009. package/src/adapters/reddit/popular.yaml +10 -0
  1010. package/src/adapters/reddit/read.test.ts +15 -0
  1011. package/src/adapters/reddit/read.yaml +10 -0
  1012. package/src/adapters/reddit/rising.test.ts +15 -0
  1013. package/src/adapters/reddit/rising.yaml +10 -0
  1014. package/src/adapters/reddit/save.yaml +10 -0
  1015. package/src/adapters/reddit/saved.test.ts +15 -0
  1016. package/src/adapters/reddit/saved.yaml +10 -0
  1017. package/src/adapters/reddit/search.test.ts +15 -0
  1018. package/src/adapters/reddit/search.yaml +10 -0
  1019. package/src/adapters/reddit/subreddit.test.ts +15 -0
  1020. package/src/adapters/reddit/subreddit.yaml +10 -0
  1021. package/src/adapters/reddit/subscribe.yaml +10 -0
  1022. package/src/adapters/reddit/top.test.ts +15 -0
  1023. package/src/adapters/reddit/top.yaml +10 -0
  1024. package/src/adapters/reddit/trending.test.ts +15 -0
  1025. package/src/adapters/reddit/trending.yaml +10 -0
  1026. package/src/adapters/reddit/upvote.yaml +10 -0
  1027. package/src/adapters/reddit/upvoted.test.ts +15 -0
  1028. package/src/adapters/reddit/upvoted.yaml +10 -0
  1029. package/src/adapters/reddit/user-comments.test.ts +15 -0
  1030. package/src/adapters/reddit/user-comments.yaml +10 -0
  1031. package/src/adapters/reddit/user-posts.test.ts +15 -0
  1032. package/src/adapters/reddit/user-posts.yaml +10 -0
  1033. package/src/adapters/reddit/user.test.ts +21 -0
  1034. package/src/adapters/reddit/user.yaml +10 -0
  1035. package/src/adapters/renderdoc/capture-list.yaml +10 -0
  1036. package/src/adapters/renderdoc/frame-export.yaml +10 -0
  1037. package/src/adapters/replicate/run.yaml +10 -0
  1038. package/src/adapters/replicate/search.yaml +10 -0
  1039. package/src/adapters/replicate/trending.yaml +11 -0
  1040. package/src/adapters/reuters/article.yaml +10 -0
  1041. package/src/adapters/reuters/latest.yaml +11 -0
  1042. package/src/adapters/reuters/search.yaml +10 -0
  1043. package/src/adapters/reuters/top.yaml +11 -0
  1044. package/src/adapters/shotcut/effects.yaml +10 -0
  1045. package/src/adapters/shotcut/info.yaml +10 -0
  1046. package/src/adapters/shotcut/render.yaml +10 -0
  1047. package/src/adapters/sinablog/article.yaml +10 -0
  1048. package/src/adapters/sinablog/hot.yaml +10 -0
  1049. package/src/adapters/sinablog/search.yaml +10 -0
  1050. package/src/adapters/sinablog/user.yaml +10 -0
  1051. package/src/adapters/sinafinance/market.yaml +10 -0
  1052. package/src/adapters/sinafinance/news.yaml +10 -0
  1053. package/src/adapters/sinafinance/rolling-news.yaml +10 -0
  1054. package/src/adapters/sinafinance/stock-rank.yaml +10 -0
  1055. package/src/adapters/sinafinance/stock.yaml +10 -0
  1056. package/src/adapters/sketch/artboards.yaml +10 -0
  1057. package/src/adapters/sketch/export.yaml +10 -0
  1058. package/src/adapters/sketch/symbols.yaml +10 -0
  1059. package/src/adapters/slack/channels.yaml +10 -0
  1060. package/src/adapters/slack/messages.yaml +10 -0
  1061. package/src/adapters/slack/post.yaml +10 -0
  1062. package/src/adapters/slack/search.yaml +10 -0
  1063. package/src/adapters/slack/send.yaml +10 -0
  1064. package/src/adapters/slack/status.yaml +10 -0
  1065. package/src/adapters/slack/users.yaml +10 -0
  1066. package/src/adapters/slay-the-spire-ii/deck.yaml +10 -0
  1067. package/src/adapters/slay-the-spire-ii/end-turn.yaml +10 -0
  1068. package/src/adapters/slay-the-spire-ii/map.yaml +10 -0
  1069. package/src/adapters/slay-the-spire-ii/play-card.yaml +10 -0
  1070. package/src/adapters/slay-the-spire-ii/status.yaml +10 -0
  1071. package/src/adapters/slay-the-spire-ii/use-potion.yaml +10 -0
  1072. package/src/adapters/slock/servers.yaml +10 -0
  1073. package/src/adapters/smzdm/article.yaml +10 -0
  1074. package/src/adapters/smzdm/hot.yaml +10 -0
  1075. package/src/adapters/smzdm/search.yaml +10 -0
  1076. package/src/adapters/spotify/now-playing.yaml +10 -0
  1077. package/src/adapters/spotify/playlists.yaml +10 -0
  1078. package/src/adapters/spotify/search.yaml +10 -0
  1079. package/src/adapters/spotify/top-tracks.yaml +10 -0
  1080. package/src/adapters/sspai/hot.yaml +10 -0
  1081. package/src/adapters/sspai/latest.yaml +10 -0
  1082. package/src/adapters/stackoverflow/bounties.yaml +10 -0
  1083. package/src/adapters/stackoverflow/hot.yaml +10 -0
  1084. package/src/adapters/stackoverflow/question.yaml +10 -0
  1085. package/src/adapters/stackoverflow/search.yaml +10 -0
  1086. package/src/adapters/stackoverflow/tags.yaml +10 -0
  1087. package/src/adapters/stackoverflow/unanswered.yaml +10 -0
  1088. package/src/adapters/stagehand/wrap-observe.yaml +10 -0
  1089. package/src/adapters/steam/app-details.yaml +10 -0
  1090. package/src/adapters/steam/new-releases.yaml +10 -0
  1091. package/src/adapters/steam/search.yaml +10 -0
  1092. package/src/adapters/steam/specials.yaml +10 -0
  1093. package/src/adapters/steam/top-sellers.yaml +10 -0
  1094. package/src/adapters/steam/wishlist.yaml +10 -0
  1095. package/src/adapters/substack/feed.yaml +10 -0
  1096. package/src/adapters/substack/publication.yaml +10 -0
  1097. package/src/adapters/substack/search.yaml +10 -0
  1098. package/src/adapters/substack/trending.yaml +10 -0
  1099. package/src/adapters/supabase/projects.yaml +10 -0
  1100. package/src/adapters/taobao/hot.yaml +10 -0
  1101. package/src/adapters/taobao/search.yaml +10 -0
  1102. package/src/adapters/techcrunch/latest.yaml +10 -0
  1103. package/src/adapters/techcrunch/search.yaml +10 -0
  1104. package/src/adapters/theverge/latest.yaml +10 -0
  1105. package/src/adapters/theverge/search.yaml +10 -0
  1106. package/src/adapters/threads/hot.yaml +11 -0
  1107. package/src/adapters/threads/search.yaml +11 -0
  1108. package/src/adapters/tieba/hot.yaml +11 -0
  1109. package/src/adapters/tieba/posts.yaml +10 -0
  1110. package/src/adapters/tieba/read.yaml +10 -0
  1111. package/src/adapters/tieba/search.yaml +10 -0
  1112. package/src/adapters/tiktok/comment.yaml +10 -0
  1113. package/src/adapters/tiktok/explore.yaml +10 -0
  1114. package/src/adapters/tiktok/follow.yaml +10 -0
  1115. package/src/adapters/tiktok/following.yaml +10 -0
  1116. package/src/adapters/tiktok/friends.yaml +10 -0
  1117. package/src/adapters/tiktok/like.yaml +10 -0
  1118. package/src/adapters/tiktok/live.yaml +10 -0
  1119. package/src/adapters/tiktok/notifications.yaml +10 -0
  1120. package/src/adapters/tiktok/profile.yaml +10 -0
  1121. package/src/adapters/tiktok/save.yaml +10 -0
  1122. package/src/adapters/tiktok/search.yaml +10 -0
  1123. package/src/adapters/tiktok/trending.yaml +10 -0
  1124. package/src/adapters/tiktok/unfollow.yaml +10 -0
  1125. package/src/adapters/tiktok/unlike.yaml +10 -0
  1126. package/src/adapters/tiktok/unsave.yaml +10 -0
  1127. package/src/adapters/tiktok/user.yaml +10 -0
  1128. package/src/adapters/toutiao/hot.yaml +10 -0
  1129. package/src/adapters/toutiao/search.yaml +11 -0
  1130. package/src/adapters/twitch/games.yaml +10 -0
  1131. package/src/adapters/twitch/search.yaml +10 -0
  1132. package/src/adapters/twitch/streams.yaml +10 -0
  1133. package/src/adapters/twitch/top.yaml +10 -0
  1134. package/src/adapters/twitter/lists.yaml +10 -0
  1135. package/src/adapters/twitter/media.yaml +10 -0
  1136. package/src/adapters/twitter/mentions.yaml +10 -0
  1137. package/src/adapters/twitter/mute.yaml +10 -0
  1138. package/src/adapters/twitter/pin.yaml +10 -0
  1139. package/src/adapters/twitter/quotes.yaml +10 -0
  1140. package/src/adapters/twitter/retweets.yaml +10 -0
  1141. package/src/adapters/twitter/spaces.yaml +10 -0
  1142. package/src/adapters/twitter/unmute.yaml +10 -0
  1143. package/src/adapters/unsplash/random.yaml +10 -0
  1144. package/src/adapters/unsplash/search.yaml +10 -0
  1145. package/src/adapters/v2ex/daily.yaml +10 -0
  1146. package/src/adapters/v2ex/hot.yaml +10 -0
  1147. package/src/adapters/v2ex/latest.yaml +10 -0
  1148. package/src/adapters/v2ex/me.test.ts +15 -0
  1149. package/src/adapters/v2ex/me.yaml +10 -0
  1150. package/src/adapters/v2ex/member.yaml +10 -0
  1151. package/src/adapters/v2ex/node.yaml +10 -0
  1152. package/src/adapters/v2ex/nodes.yaml +10 -0
  1153. package/src/adapters/v2ex/notifications.test.ts +15 -0
  1154. package/src/adapters/v2ex/notifications.yaml +10 -0
  1155. package/src/adapters/v2ex/replies.yaml +10 -0
  1156. package/src/adapters/v2ex/search.test.ts +15 -0
  1157. package/src/adapters/v2ex/search.yaml +10 -0
  1158. package/src/adapters/v2ex/topic.yaml +10 -0
  1159. package/src/adapters/v2ex/user.yaml +10 -0
  1160. package/src/adapters/vercel/list.yaml +10 -0
  1161. package/src/adapters/vscode/extensions.yaml +10 -0
  1162. package/src/adapters/vscode/install-ext.yaml +10 -0
  1163. package/src/adapters/vscode/open.yaml +10 -0
  1164. package/src/adapters/web/read.yaml +10 -0
  1165. package/src/adapters/wechat-channels/hot.yaml +11 -0
  1166. package/src/adapters/wechat-channels/search.yaml +18 -0
  1167. package/src/adapters/weibo/comments.yaml +10 -0
  1168. package/src/adapters/weibo/feed.yaml +10 -0
  1169. package/src/adapters/weibo/hot.yaml +10 -0
  1170. package/src/adapters/weibo/me.yaml +10 -0
  1171. package/src/adapters/weibo/post.yaml +10 -0
  1172. package/src/adapters/weibo/profile.yaml +10 -0
  1173. package/src/adapters/weibo/search.yaml +10 -0
  1174. package/src/adapters/weibo/timeline.yaml +10 -0
  1175. package/src/adapters/weibo/trending.yaml +10 -0
  1176. package/src/adapters/weibo/user.yaml +10 -0
  1177. package/src/adapters/weixin/article.yaml +10 -0
  1178. package/src/adapters/weixin/download.yaml +10 -0
  1179. package/src/adapters/weixin/hot.yaml +10 -0
  1180. package/src/adapters/weixin/search.yaml +10 -0
  1181. package/src/adapters/weread/book.yaml +10 -0
  1182. package/src/adapters/weread/highlights.yaml +10 -0
  1183. package/src/adapters/weread/notebooks.yaml +10 -0
  1184. package/src/adapters/weread/notes.yaml +10 -0
  1185. package/src/adapters/weread/ranking.yaml +10 -0
  1186. package/src/adapters/weread/search.yaml +10 -0
  1187. package/src/adapters/weread/shelf.yaml +10 -0
  1188. package/src/adapters/wikipedia/random.yaml +10 -0
  1189. package/src/adapters/wikipedia/search.yaml +10 -0
  1190. package/src/adapters/wikipedia/summary.yaml +10 -0
  1191. package/src/adapters/wikipedia/today.yaml +11 -0
  1192. package/src/adapters/wikipedia/trending.yaml +10 -0
  1193. package/src/adapters/wiremock/create-stub.yaml +10 -0
  1194. package/src/adapters/wiremock/delete-stub.yaml +10 -0
  1195. package/src/adapters/wiremock/reset.yaml +10 -0
  1196. package/src/adapters/wiremock/stubs.yaml +10 -0
  1197. package/src/adapters/wiremock/verify.yaml +10 -0
  1198. package/src/adapters/wrangler/list.yaml +10 -0
  1199. package/src/adapters/xianyu/chat.yaml +10 -0
  1200. package/src/adapters/xianyu/item.yaml +10 -0
  1201. package/src/adapters/xianyu/search.yaml +11 -0
  1202. package/src/adapters/xiaoe/catalog.yaml +10 -0
  1203. package/src/adapters/xiaoe/content.yaml +10 -0
  1204. package/src/adapters/xiaoe/courses.yaml +10 -0
  1205. package/src/adapters/xiaoe/detail.yaml +10 -0
  1206. package/src/adapters/xiaoe/play-url.yaml +10 -0
  1207. package/src/adapters/xiaohongshu/feed.yaml +10 -0
  1208. package/src/adapters/xiaohongshu/follow.yaml +10 -0
  1209. package/src/adapters/xiaohongshu/hashtag.yaml +10 -0
  1210. package/src/adapters/xiaohongshu/hot.yaml +10 -0
  1211. package/src/adapters/xiaohongshu/like.yaml +10 -0
  1212. package/src/adapters/xiaohongshu/notifications.yaml +10 -0
  1213. package/src/adapters/xiaohongshu/profile.yaml +10 -0
  1214. package/src/adapters/xiaohongshu/save.yaml +10 -0
  1215. package/src/adapters/xiaohongshu/suggest.yaml +10 -0
  1216. package/src/adapters/xiaohongshu/trending.yaml +10 -0
  1217. package/src/adapters/xiaohongshu/unfollow.yaml +10 -0
  1218. package/src/adapters/xiaoyuzhou/episode.yaml +10 -0
  1219. package/src/adapters/xiaoyuzhou/podcast-episodes.yaml +10 -0
  1220. package/src/adapters/xiaoyuzhou/podcast.yaml +10 -0
  1221. package/src/adapters/xueqiu/comments.yaml +10 -0
  1222. package/src/adapters/xueqiu/earnings-date.yaml +10 -0
  1223. package/src/adapters/xueqiu/feed.yaml +10 -0
  1224. package/src/adapters/xueqiu/fund-holdings.yaml +10 -0
  1225. package/src/adapters/xueqiu/fund-snapshot.yaml +10 -0
  1226. package/src/adapters/xueqiu/hot-stock.yaml +10 -0
  1227. package/src/adapters/xueqiu/hot.yaml +10 -0
  1228. package/src/adapters/xueqiu/market.yaml +10 -0
  1229. package/src/adapters/xueqiu/quote.yaml +10 -0
  1230. package/src/adapters/xueqiu/search.yaml +10 -0
  1231. package/src/adapters/xueqiu/stock.yaml +10 -0
  1232. package/src/adapters/xueqiu/watchlist.yaml +10 -0
  1233. package/src/adapters/yahoo-finance/quote.yaml +10 -0
  1234. package/src/adapters/yahoo-finance/search.yaml +10 -0
  1235. package/src/adapters/yahoo-finance/trending.yaml +11 -0
  1236. package/src/adapters/ycombinator/launches.yaml +10 -0
  1237. package/src/adapters/yollomi/background.yaml +10 -0
  1238. package/src/adapters/yollomi/edit.yaml +10 -0
  1239. package/src/adapters/yollomi/face-swap.yaml +10 -0
  1240. package/src/adapters/yollomi/generate.yaml +10 -0
  1241. package/src/adapters/yollomi/models.yaml +10 -0
  1242. package/src/adapters/yollomi/object-remover.yaml +10 -0
  1243. package/src/adapters/yollomi/remove-bg.yaml +10 -0
  1244. package/src/adapters/yollomi/restore.yaml +10 -0
  1245. package/src/adapters/yollomi/try-on.yaml +10 -0
  1246. package/src/adapters/yollomi/upload.yaml +10 -0
  1247. package/src/adapters/yollomi/upscale.yaml +10 -0
  1248. package/src/adapters/yollomi/video.yaml +10 -0
  1249. package/src/adapters/youtube/playlist.yaml +10 -0
  1250. package/src/adapters/youtube/shorts.yaml +10 -0
  1251. package/src/adapters/youtube/trending.yaml +10 -0
  1252. package/src/adapters/yt-dlp/download.yaml +10 -0
  1253. package/src/adapters/yt-dlp/extract-audio.yaml +10 -0
  1254. package/src/adapters/yt-dlp/info.yaml +10 -0
  1255. package/src/adapters/yt-dlp/search.yaml +10 -0
  1256. package/src/adapters/yuanbao/ask.yaml +10 -0
  1257. package/src/adapters/yuanbao/new.yaml +10 -0
  1258. package/src/adapters/yuanbao/shared.yaml +10 -0
  1259. package/src/adapters/zhihu/answer.yaml +10 -0
  1260. package/src/adapters/zhihu/answers.test.ts +15 -0
  1261. package/src/adapters/zhihu/answers.yaml +10 -0
  1262. package/src/adapters/zhihu/article.yaml +10 -0
  1263. package/src/adapters/zhihu/articles.test.ts +15 -0
  1264. package/src/adapters/zhihu/articles.yaml +10 -0
  1265. package/src/adapters/zhihu/collections.test.ts +15 -0
  1266. package/src/adapters/zhihu/collections.yaml +10 -0
  1267. package/src/adapters/zhihu/columns.test.ts +15 -0
  1268. package/src/adapters/zhihu/columns.yaml +10 -0
  1269. package/src/adapters/zhihu/comment.test.ts +15 -0
  1270. package/src/adapters/zhihu/comment.yaml +10 -0
  1271. package/src/adapters/zhihu/download.yaml +10 -0
  1272. package/src/adapters/zhihu/feed.test.ts +15 -0
  1273. package/src/adapters/zhihu/feed.yaml +10 -0
  1274. package/src/adapters/zhihu/followers.test.ts +15 -0
  1275. package/src/adapters/zhihu/followers.yaml +10 -0
  1276. package/src/adapters/zhihu/following.test.ts +15 -0
  1277. package/src/adapters/zhihu/following.yaml +10 -0
  1278. package/src/adapters/zhihu/hot.test.ts +15 -0
  1279. package/src/adapters/zhihu/hot.yaml +10 -0
  1280. package/src/adapters/zhihu/me.yaml +10 -0
  1281. package/src/adapters/zhihu/notifications.test.ts +15 -0
  1282. package/src/adapters/zhihu/notifications.yaml +10 -0
  1283. package/src/adapters/zhihu/pins.test.ts +15 -0
  1284. package/src/adapters/zhihu/pins.yaml +10 -0
  1285. package/src/adapters/zhihu/question.test.ts +15 -0
  1286. package/src/adapters/zhihu/question.yaml +10 -0
  1287. package/src/adapters/zhihu/search.test.ts +15 -0
  1288. package/src/adapters/zhihu/search.yaml +10 -0
  1289. package/src/adapters/zhihu/topic.test.ts +15 -0
  1290. package/src/adapters/zhihu/topic.yaml +10 -0
  1291. package/src/adapters/zhihu/topics.test.ts +15 -0
  1292. package/src/adapters/zhihu/topics.yaml +10 -0
  1293. package/src/adapters/zhihu/trending.test.ts +15 -0
  1294. package/src/adapters/zhihu/trending.yaml +10 -0
  1295. package/src/adapters/zhihu/user.yaml +10 -0
  1296. package/src/adapters/zoom/join.yaml +10 -0
  1297. package/src/adapters/zoom/start.yaml +10 -0
  1298. package/src/adapters/zoom/toggle-mute.yaml +40 -0
  1299. package/src/adapters/zotero/add-note.yaml +10 -0
  1300. package/src/adapters/zotero/add-tag.yaml +10 -0
  1301. package/src/adapters/zotero/collections.yaml +10 -0
  1302. package/src/adapters/zotero/export.yaml +10 -0
  1303. package/src/adapters/zotero/items.yaml +10 -0
  1304. package/src/adapters/zotero/notes.yaml +10 -0
  1305. package/src/adapters/zotero/search.yaml +10 -0
  1306. package/src/adapters/zotero/tags.yaml +10 -0
  1307. package/src/adapters/zsxq/dynamics.yaml +10 -0
  1308. package/src/adapters/zsxq/groups.yaml +10 -0
  1309. package/src/adapters/zsxq/search.yaml +10 -0
  1310. package/src/adapters/zsxq/topic.yaml +10 -0
  1311. package/src/adapters/zsxq/topics.yaml +10 -0
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <!-- AGENT: npm install -g @zenalexa/unicli && unicli search "your intent" | 1020 commands across 198 sites. JSON when piped. Self-repairing YAML adapters. Bilingual search (EN/ZH). See AGENTS.md -->
1
+ <!-- AGENT: npm install -g @zenalexa/unicli && unicli search "your intent" hundreds of commands across ~200 sites. JSON when piped. Self-repairing YAML adapters. Bilingual EN/ZH search. See AGENTS.md for live counts. -->
2
2
 
3
3
  <div align="center">
4
4
 
@@ -10,16 +10,17 @@
10
10
 
11
11
  <br><br>
12
12
 
13
- **The compiler that turns the internet into CLI commands for AI agents.**
13
+ **CLI is all agents need.**
14
+
15
+ The execution layer for agent skills. Deterministic, editable, cross-vendor.
14
16
 
15
17
  <br>
16
18
 
17
- <img src="https://img.shields.io/badge/198_sites-1020_commands-00d4aa?style=flat-square" alt="coverage">
18
- <img src="https://img.shields.io/badge/~80_tokens-per_call-E8A838?style=flat-square" alt="tokens">
19
- <img src="https://img.shields.io/badge/self--repairing-YAML_adapters-8B5CF6?style=flat-square" alt="self-repair">
20
19
  <a href="https://www.npmjs.com/package/@zenalexa/unicli"><img src="https://img.shields.io/npm/v/@zenalexa/unicli?style=flat-square&color=cb3837" alt="npm"></a>
21
20
  <a href="https://github.com/olo-dot-io/Uni-CLI/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/olo-dot-io/Uni-CLI/ci.yml?style=flat-square&label=CI" alt="CI"></a>
22
21
  <a href="./LICENSE"><img src="https://img.shields.io/github/license/olo-dot-io/Uni-CLI?style=flat-square" alt="license"></a>
22
+ <img src="https://img.shields.io/badge/tests-<!-- STATS:test_count -->1205<!-- /STATS -->-44cc11?style=flat-square" alt="tests">
23
+ <img src="https://img.shields.io/badge/agent--reach-ally-6a5acd?style=flat-square" alt="agent-reach ally">
23
24
 
24
25
  <br><br>
25
26
 
@@ -27,56 +28,93 @@
27
28
  npm install -g @zenalexa/unicli
28
29
  ```
29
30
 
31
+ <br>
32
+
33
+ <img src="docs/demo/demo.svg" alt="Uni-CLI in 30 seconds" width="720">
34
+
30
35
  </div>
31
36
 
32
37
  ---
33
38
 
34
- ```bash
35
- unicli search "推特热门" # Bilingual discovery → twitter trending
36
- unicli hackernews top --limit 5 # Hacker News front page
37
- unicli twitter search "AI agents" # Twitter (authenticated)
38
- unicli bilibili hot # Bilibili trending
39
- unicli blender render scene.blend # Render a 3D scene
40
- unicli notion search "meeting notes" # Search Notion
41
- unicli macos screenshot # macOS screenshot
42
- unicli ffmpeg compress video.mp4 # Compress video
43
- ```
39
+ ## What
44
40
 
45
- Every command outputs **structured JSON when piped** zero flags needed. Every error emits structured JSON to stderr with the adapter path, the failing step, and a fix suggestion. **~80 tokens per call.**
41
+ Uni-CLI is a universal interface that compiles agent intent into deterministic CLI programs. One binary reaches <!-- STATS:site_count -->200<!-- /STATS --> sites, 30+ desktop apps, 35 CLI bridges, and the local OS — <!-- STATS:command_count -->968<!-- /STATS --> commands in total. Every adapter is a 20-line YAML pipeline, so agents can read, edit, and re-run them without a compiler.
46
42
 
47
- ```mermaid
48
- graph LR
49
- A[AI Agent] -->|"unicli search 'intent'"| B["Uni-CLI"]
50
- B --> C["YAML Adapter<br>~20 lines"]
51
- C --> D["Web API"]
52
- C --> E["Chrome CDP"]
53
- C --> F["Subprocess"]
54
- B -.->|self-repair| C
55
- ```
43
+ Coverage is cross-cutting: web APIs and browser automation, desktop subprocesses (ffmpeg, Blender, LibreOffice), macOS system calls (screenshot, clipboard, Calendar), and Computer Use Agents (Anthropic, OpenAI, Google) — all behind the same `unicli <site> <command>` surface. Output is a table in a terminal and JSON when piped. Errors are structured JSON on stderr with the adapter path, the failing step, and a suggestion — enough directional feedback for an agent to fix the adapter and retry.
44
+
45
+ Self-repair is a first-class capability. When a site changes its API, an agent reads the 20-line YAML, edits the selector or endpoint, saves to `~/.unicli/adapters/`, and retries. Fixes survive `npm update`. No human in the loop.
56
46
 
57
- ## Key Ideas
47
+ ## Why
58
48
 
59
- **Universal** 198 sites, 30+ desktop apps, 8 Electron apps, 35 CLI bridges, 51 macOS system commands. One interface: `unicli <site> <command>`.
49
+ MCP tool catalogs cost 4–35× more tokens per call than an equivalent CLI invocation, and 55K tokens of cold-start tax before the agent touches a tool (Firecrawl, Scalekit, Apideck benchmarks; see [`docs/BENCHMARK.md`](docs/BENCHMARK.md)). Agents perform better with executable programs than with catalogs of tool descriptions. Retrieval-over-catalog research in 2025–2026 (Semantic Tool Discovery, ITR Dynamic Tool Exposure, JSPLIT) reports 95–99% context reduction when tools are fetched on demand.
60
50
 
61
- **Discoverable** BM25 bilingual search engine. `unicli search "推特热门"` finds `twitter trending`. `unicli search "download video"` finds `bilibili download`. Agents find what they need in one call.
51
+ Uni-CLI is the execution half of that equation. The MCP server exposes 4 meta-tools (~200 tokens cold-start) `unicli_run`, `unicli_list`, `unicli_search`, `unicli_explore` and the agent pulls the exact tool it needs via BM25 bilingual search over a 50KB index. The CLI itself costs one subprocess per call.
62
52
 
63
- **Self-repairing** When a site changes its API, the agent reads the ~20 line YAML adapter, fixes it, retries. No human in the loop. Fixes persist across updates.
53
+ ## Quick start
64
54
 
65
- **Agent-native** Piped output auto-switches to JSON. Errors are machine-parseable. Exit codes follow `sysexits.h`. The agent doesn't need flags or special handling.
55
+ Five minutes, top-to-bottom:
66
56
 
67
- **Cheap** — ~80 tokens per CLI invocation vs 55,000 tokens for an MCP tool catalog. Three orders of magnitude cheaper in context window cost.
57
+ ```bash
58
+ # 1. Install
59
+ npm install -g @zenalexa/unicli
68
60
 
69
- ## Self-Repair
61
+ # 2. Discover
62
+ unicli list # all sites + commands
63
+ unicli search "推特热门" # → twitter trending (bilingual)
70
64
 
71
- The core differentiator. When a command breaks, agents fix it themselves:
65
+ # 3. Run
66
+ unicli reddit hot --limit 3 # zero-config web API
67
+ unicli hackernews top --json | jq '.[].title' # pipe + transform
68
+
69
+ # 4. Wire into an agent
70
+ claude mcp add unicli -- npx @zenalexa/unicli mcp serve # Claude Code (MCP stdio)
71
+ unicli mcp serve --transport streamable --port 19826 # Any MCP client (HTTP)
72
+ unicli acp # avante.nvim / Zed (ACP)
73
+ ```
74
+
75
+ Full walkthrough with 5 worked examples: [`docs/QUICKSTART.md`](docs/QUICKSTART.md).
76
+
77
+ ## Architecture
72
78
 
73
79
  ```mermaid
74
- flowchart LR
75
- A["unicli site cmd\n❌ fails"] --> B["Structured error\n{adapter_path, step, suggestion}"]
76
- B --> C["Agent reads\n20-line YAML"]
77
- C --> D["Agent edits\nthe adapter"]
78
- D --> E["unicli site cmd\n✅ works"]
79
- E --> F["Fix persists in\n~/.unicli/adapters/"]
80
+ graph TB
81
+ CMD["unicli &lt;site&gt; &lt;command&gt;"]
82
+
83
+ CMD --> ADAPT["Adapter layer<br/>887 YAML · 72 TS · 35 bridges"]
84
+
85
+ ADAPT --> ENGINE["Pipeline engine — <!-- STATS:pipeline_step_count -->54<!-- /STATS -->+ steps<br/>fetch · navigate · exec · extract · each · if · parallel"]
86
+
87
+ ENGINE --> T1["HTTP<br/>(web APIs)"]
88
+ ENGINE --> T2["CDP Browser<br/>(raw WebSocket)"]
89
+ ENGINE --> T3["Subprocess<br/>(ffmpeg, yt-dlp, gh)"]
90
+ ENGINE --> T4["Desktop-AX<br/>(macOS AppleScript)"]
91
+ ENGINE --> T5["Desktop-UIA<br/>(Windows UIAutomation)"]
92
+ ENGINE --> T6["Desktop-AT-SPI<br/>(Linux accessibility)"]
93
+ ENGINE --> T7["CUA<br/>(Anthropic · OpenAI · Google)"]
94
+
95
+ T1 --> OUT["Formatter<br/>table · json · yaml · csv · md"]
96
+ T2 --> OUT
97
+ T3 --> OUT
98
+ T4 --> OUT
99
+ T5 --> OUT
100
+ T6 --> OUT
101
+ T7 --> OUT
102
+ ```
103
+
104
+ Seven TransportAdapters, one adapter layer, one formatter. Adapters are declarative YAML by default (Rice-decidable, no imports) and TypeScript when a site genuinely needs it. The full step reference lives in [`docs/ADAPTER-FORMAT.md`](docs/ADAPTER-FORMAT.md).
105
+
106
+ ## Self-repair
107
+
108
+ When a command breaks:
109
+
110
+ ```
111
+ unicli <site> <cmd> fails
112
+ → structured JSON error on stderr
113
+ { adapter_path, step, action, suggestion }
114
+ → agent opens the ~20-line YAML
115
+ → agent edits the selector / URL / auth
116
+ → unicli <site> <cmd> works
117
+ → fix persists in ~/.unicli/adapters/ (survives npm update)
80
118
  ```
81
119
 
82
120
  ```bash
@@ -85,649 +123,83 @@ unicli test hackernews # Validate adapter
85
123
  unicli repair --loop # Autonomous fix loop
86
124
  ```
87
125
 
88
- Fixes are saved to `~/.unicli/adapters/` and survive `npm update`.
126
+ Exit codes follow `sysexits.h`: `0` ok, `66` empty, `69` unavailable, `75` temporary, `77` auth, `78` config. Agents parse those directly — no regex over human error text.
89
127
 
90
- ## Supported Platforms
128
+ ## Feature matrix
91
129
 
92
- <table><tr><td>
130
+ | Capability | What it means |
131
+ | ------------------------ | ---------------------------------------------------------------------------------------------------- |
132
+ | **CUA backends** | Anthropic `computer-use`, OpenAI Operator, Google CUA, and direct CDP — 4 transports behind one flag |
133
+ | **MCP transports** | stdio · Streamable HTTP (spec 2025-11-25) · SSE · OAuth 2.1 PKCE |
134
+ | **ACP ready** | `unicli acp` speaks JSON-RPC 2.0 for avante.nvim, Zed, Gemini CLI |
135
+ | **Cross-vendor skills** | Skills in `skills/` work in Claude Code, OpenCode, Codex, Cursor, Cline |
136
+ | **Self-repair envelope** | Every error ships `adapter_path` + `step` + `suggestion` (Banach-convergent) |
137
+ | **Bilingual search** | BM25 + TF-IDF, 50KB index, <10ms queries, 200-entry ZH↔EN alias table |
138
+ | **Browser daemon** | Persistent Chrome via CDP, reuses your login sessions, 13-layer stealth |
93
139
 
94
- **198 sites** · **1020 commands** · **35 pipeline steps** · **BM25 bilingual search**
140
+ Detailed benchmarks (p50/p95 token cost per category, vs GitHub MCP cold-start): [`docs/BENCHMARK.md`](docs/BENCHMARK.md).
95
141
 
96
- </td></tr></table>
142
+ ## Platform coverage
97
143
 
98
- <!-- =========================== -->
99
- <!-- WEB — SOCIAL MEDIA -->
100
- <!-- =========================== -->
144
+ <!-- STATS:site_count -->200<!-- /STATS --> sites · <!-- STATS:command_count -->968<!-- /STATS --> commands — the live list is auto-generated in [`AGENTS.md`](AGENTS.md) and split by domain:
101
145
 
102
- <details open>
103
- <summary><strong>Social Media 25 sites</strong></summary>
104
- <br>
105
- <table>
106
- <tr>
107
- <td><img src="https://www.google.com/s2/favicons?domain=x.com&sz=32" width="16"> <b>Twitter</b> <sup>35</sup></td>
108
- <td><img src="https://www.google.com/s2/favicons?domain=reddit.com&sz=32" width="16"> <b>Reddit</b> <sup>20</sup></td>
109
- <td><img src="https://www.google.com/s2/favicons?domain=instagram.com&sz=32" width="16"> <b>Instagram</b> <sup>26</sup></td>
110
- <td><img src="https://www.google.com/s2/favicons?domain=tiktok.com&sz=32" width="16"> <b>TikTok</b> <sup>16</sup></td>
111
- </tr>
112
- <tr>
113
- <td><img src="https://www.google.com/s2/favicons?domain=facebook.com&sz=32" width="16"> <b>Facebook</b> <sup>12</sup></td>
114
- <td><img src="https://www.google.com/s2/favicons?domain=bsky.app&sz=32" width="16"> <b>Bluesky</b> <sup>12</sup></td>
115
- <td><img src="https://www.google.com/s2/favicons?domain=medium.com&sz=32" width="16"> <b>Medium</b> <sup>5</sup></td>
116
- <td><img src="https://www.google.com/s2/favicons?domain=threads.net&sz=32" width="16"> <b>Threads</b> <sup>2</sup></td>
117
- </tr>
118
- <tr>
119
- <td><img src="https://www.google.com/s2/favicons?domain=mastodon.social&sz=32" width="16"> <b>Mastodon</b> <sup>4</sup></td>
120
- <td><img src="https://www.google.com/s2/favicons?domain=bilibili.com&sz=32" width="16"> <b>Bilibili</b> <sup>18</sup></td>
121
- <td><img src="https://www.google.com/s2/favicons?domain=weibo.com&sz=32" width="16"> <b>Weibo</b> <sup>10</sup></td>
122
- <td><img src="https://www.google.com/s2/favicons?domain=zhihu.com&sz=32" width="16"> <b>Zhihu</b> <sup>21</sup></td>
123
- </tr>
124
- <tr>
125
- <td><img src="https://www.google.com/s2/favicons?domain=xiaohongshu.com&sz=32" width="16"> <b>Xiaohongshu</b> <sup>24</sup></td>
126
- <td><img src="https://www.google.com/s2/favicons?domain=douyin.com&sz=32" width="16"> <b>Douyin</b> <sup>23</sup></td>
127
- <td><img src="https://www.google.com/s2/favicons?domain=okjike.com&sz=32" width="16"> <b>Jike</b> <sup>10</sup></td>
128
- <td><img src="https://www.google.com/s2/favicons?domain=douban.com&sz=32" width="16"> <b>Douban</b> <sup>12</sup></td>
129
- </tr>
130
- <tr>
131
- <td><img src="https://www.google.com/s2/favicons?domain=v2ex.com&sz=32" width="16"> <b>V2EX</b> <sup>12</sup></td>
132
- <td><img src="https://www.google.com/s2/favicons?domain=linux.do&sz=32" width="16"> <b>Linux.do</b> <sup>10</sup></td>
133
- <td><img src="https://www.google.com/s2/favicons?domain=weread.qq.com&sz=32" width="16"> <b>WeRead</b> <sup>7</sup></td>
134
- <td><img src="https://www.google.com/s2/favicons?domain=tieba.baidu.com&sz=32" width="16"> <b>Tieba</b> <sup>4</sup></td>
135
- </tr>
136
- <tr>
137
- <td><img src="https://www.google.com/s2/favicons?domain=zsxq.com&sz=32" width="16"> <b>Zsxq</b> <sup>5</sup></td>
138
- <td><img src="https://www.google.com/s2/favicons?domain=xiaoyuzhou.fm&sz=32" width="16"> <b>Xiaoyuzhou</b> <sup>3</sup></td>
139
- <td><img src="https://www.google.com/s2/favicons?domain=blog.sina.com.cn&sz=32" width="16"> <b>Sinablog</b> <sup>4</sup></td>
140
- <td><img src="https://www.google.com/s2/favicons?domain=toutiao.com&sz=32" width="16"> <b>Toutiao</b> <sup>2</sup></td>
141
- </tr>
142
- <tr>
143
- <td><img src="https://www.google.com/s2/favicons?domain=baidu.com&sz=32" width="16"> <b>Baidu</b> <sup>2</sup></td>
144
- <td></td>
145
- <td></td>
146
- <td></td>
147
- </tr>
148
- </table>
149
- </details>
150
-
151
- <!-- =========================== -->
152
- <!-- WEB — TECH & DEV -->
153
- <!-- =========================== -->
154
-
155
- <details>
156
- <summary><strong>Tech & Developer — 19 sites</strong></summary>
157
- <br>
158
- <table>
159
- <tr>
160
- <td><img src="https://www.google.com/s2/favicons?domain=news.ycombinator.com&sz=32" width="16"> <b>Hacker News</b> <sup>10</sup></td>
161
- <td><img src="https://www.google.com/s2/favicons?domain=stackoverflow.com&sz=32" width="16"> <b>Stack Overflow</b> <sup>6</sup></td>
162
- <td><img src="https://www.google.com/s2/favicons?domain=dev.to&sz=32" width="16"> <b>DEV</b> <sup>5</sup></td>
163
- <td><img src="https://www.google.com/s2/favicons?domain=lobste.rs&sz=32" width="16"> <b>Lobsters</b> <sup>5</sup></td>
164
- </tr>
165
- <tr>
166
- <td><img src="https://www.google.com/s2/favicons?domain=producthunt.com&sz=32" width="16"> <b>Product Hunt</b> <sup>5</sup></td>
167
- <td><img src="https://www.google.com/s2/favicons?domain=github.com&sz=32" width="16"> <b>GitHub Trending</b> <sup>3</sup></td>
168
- <td><img src="https://www.google.com/s2/favicons?domain=substack.com&sz=32" width="16"> <b>Substack</b> <sup>4</sup></td>
169
- <td><img src="https://www.google.com/s2/favicons?domain=lesswrong.com&sz=32" width="16"> <b>LessWrong</b> <sup>15</sup></td>
170
- </tr>
171
- <tr>
172
- <td><img src="https://www.google.com/s2/favicons?domain=npmjs.com&sz=32" width="16"> <b>npm</b> <sup>4</sup></td>
173
- <td><img src="https://www.google.com/s2/favicons?domain=pypi.org&sz=32" width="16"> <b>PyPI</b> <sup>3</sup></td>
174
- <td><img src="https://www.google.com/s2/favicons?domain=crates.io&sz=32" width="16"> <b>crates.io</b> <sup>3</sup></td>
175
- <td><img src="https://www.google.com/s2/favicons?domain=cocoapods.org&sz=32" width="16"> <b>CocoaPods</b> <sup>2</sup></td>
176
- </tr>
177
- <tr>
178
- <td><img src="https://www.google.com/s2/favicons?domain=brew.sh&sz=32" width="16"> <b>Homebrew</b> <sup>2</sup></td>
179
- <td><img src="https://www.google.com/s2/favicons?domain=gitlab.com&sz=32" width="16"> <b>GitLab</b> <sup>3</sup></td>
180
- <td><img src="https://www.google.com/s2/favicons?domain=gitee.com&sz=32" width="16"> <b>Gitee</b> <sup>3</sup></td>
181
- <td><img src="https://www.google.com/s2/favicons?domain=npmtrends.com&sz=32" width="16"> <b>npm trends</b> <sup>2</sup></td>
182
- </tr>
183
- <tr>
184
- <td><img src="https://www.google.com/s2/favicons?domain=hub.docker.com&sz=32" width="16"> <b>Docker Hub</b> <sup>3</sup></td>
185
- <td><img src="https://www.google.com/s2/favicons?domain=ycombinator.com&sz=32" width="16"> <b>Y Combinator</b> <sup>1</sup></td>
186
- <td><img src="https://www.google.com/s2/favicons?domain=itch.io&sz=32" width="16"> <b>itch.io</b> <sup>3</sup></td>
187
- <td></td>
188
- </tr>
189
- </table>
190
- </details>
191
-
192
- <!-- =========================== -->
193
- <!-- WEB — AI & ML -->
194
- <!-- =========================== -->
195
-
196
- <details>
197
- <summary><strong>AI & ML — 17 sites</strong></summary>
198
- <br>
199
- <table>
200
- <tr>
201
- <td><img src="https://www.google.com/s2/favicons?domain=gemini.google.com&sz=32" width="16"> <b>Gemini</b> <sup>5</sup></td>
202
- <td><img src="https://www.google.com/s2/favicons?domain=grok.x.ai&sz=32" width="16"> <b>Grok</b> <sup>1</sup></td>
203
- <td><img src="https://www.google.com/s2/favicons?domain=deepseek.com&sz=32" width="16"> <b>DeepSeek</b> <sup>2</sup></td>
204
- <td><img src="https://www.google.com/s2/favicons?domain=perplexity.ai&sz=32" width="16"> <b>Perplexity</b> <sup>1</sup></td>
205
- </tr>
206
- <tr>
207
- <td><img src="https://www.google.com/s2/favicons?domain=doubao.com&sz=32" width="16"> <b>Doubao Web</b> <sup>9</sup></td>
208
- <td><img src="https://www.google.com/s2/favicons?domain=notebooklm.google.com&sz=32" width="16"> <b>NotebookLM</b> <sup>15</sup></td>
209
- <td><img src="https://www.google.com/s2/favicons?domain=yollomi.com&sz=32" width="16"> <b>Yollomi</b> <sup>12</sup></td>
210
- <td><img src="https://www.google.com/s2/favicons?domain=jimeng.jianying.com&sz=32" width="16"> <b>Jimeng</b> <sup>2</sup></td>
211
- </tr>
212
- <tr>
213
- <td><img src="https://www.google.com/s2/favicons?domain=yuanbao.tencent.com&sz=32" width="16"> <b>Yuanbao</b> <sup>3</sup></td>
214
- <td><img src="https://www.google.com/s2/favicons?domain=ollama.com&sz=32" width="16"> <b>Ollama</b> <sup>4</sup></td>
215
- <td><img src="https://www.google.com/s2/favicons?domain=openrouter.ai&sz=32" width="16"> <b>OpenRouter</b> <sup>2</sup></td>
216
- <td><img src="https://www.google.com/s2/favicons?domain=huggingface.co&sz=32" width="16"> <b>Hugging Face</b> <sup>6</sup></td>
217
- </tr>
218
- <tr>
219
- <td><img src="https://www.google.com/s2/favicons?domain=replicate.com&sz=32" width="16"> <b>Replicate</b> <sup>3</sup></td>
220
- <td><img src="https://www.google.com/s2/favicons?domain=minimaxi.com&sz=32" width="16"> <b>MiniMax</b> <sup>3</sup></td>
221
- <td><img src="https://www.google.com/s2/favicons?domain=doubao.com&sz=32" width="16"> <b>Doubao API</b> <sup>3</sup></td>
222
- <td><img src="https://www.google.com/s2/favicons?domain=novita.ai&sz=32" width="16"> <b>Novita</b> <sup>3</sup></td>
223
- </tr>
224
- </table>
225
- </details>
226
-
227
- <!-- =========================== -->
228
- <!-- WEB — VIDEO & STREAMING -->
229
- <!-- =========================== -->
230
-
231
- <details>
232
- <summary><strong>Video & Streaming — 8 sites</strong></summary>
233
- <br>
234
- <table>
235
- <tr>
236
- <td><img src="https://www.google.com/s2/favicons?domain=youtube.com&sz=32" width="16"> <b>YouTube</b> <sup>9</sup></td>
237
- <td><img src="https://www.google.com/s2/favicons?domain=twitch.tv&sz=32" width="16"> <b>Twitch</b> <sup>4</sup></td>
238
- <td><img src="https://www.google.com/s2/favicons?domain=kuaishou.com&sz=32" width="16"> <b>Kuaishou</b> <sup>2</sup></td>
239
- <td><img src="https://www.google.com/s2/favicons?domain=douyu.com&sz=32" width="16"> <b>Douyu</b> <sup>2</sup></td>
240
- </tr>
241
- <tr>
242
- <td><img src="https://www.google.com/s2/favicons?domain=channels.weixin.qq.com&sz=32" width="16"> <b>WeChat Channels</b> <sup>2</sup></td>
243
- <td><img src="https://www.google.com/s2/favicons?domain=podcasts.apple.com&sz=32" width="16"> <b>Apple Podcasts</b> <sup>3</sup></td>
244
- <td><img src="https://www.google.com/s2/favicons?domain=spotify.com&sz=32" width="16"> <b>Spotify</b> <sup>4</sup></td>
245
- <td><img src="https://www.google.com/s2/favicons?domain=music.163.com&sz=32" width="16"> <b>NetEase Music</b> <sup>4</sup></td>
246
- </tr>
247
- </table>
248
- </details>
249
-
250
- <!-- =========================== -->
251
- <!-- WEB — NEWS & MEDIA -->
252
- <!-- =========================== -->
253
-
254
- <details>
255
- <summary><strong>News & Media — 10 sites</strong></summary>
256
- <br>
257
- <table>
258
- <tr>
259
- <td><img src="https://www.google.com/s2/favicons?domain=bloomberg.com&sz=32" width="16"> <b>Bloomberg</b> <sup>10</sup></td>
260
- <td><img src="https://www.google.com/s2/favicons?domain=reuters.com&sz=32" width="16"> <b>Reuters</b> <sup>4</sup></td>
261
- <td><img src="https://www.google.com/s2/favicons?domain=bbc.com&sz=32" width="16"> <b>BBC</b> <sup>4</sup></td>
262
- <td><img src="https://www.google.com/s2/favicons?domain=cnn.com&sz=32" width="16"> <b>CNN</b> <sup>2</sup></td>
263
- </tr>
264
- <tr>
265
- <td><img src="https://www.google.com/s2/favicons?domain=nytimes.com&sz=32" width="16"> <b>NYTimes</b> <sup>2</sup></td>
266
- <td><img src="https://www.google.com/s2/favicons?domain=36kr.com&sz=32" width="16"> <b>36Kr</b> <sup>5</sup></td>
267
- <td><img src="https://www.google.com/s2/favicons?domain=techcrunch.com&sz=32" width="16"> <b>TechCrunch</b> <sup>2</sup></td>
268
- <td><img src="https://www.google.com/s2/favicons?domain=theverge.com&sz=32" width="16"> <b>The Verge</b> <sup>2</sup></td>
269
- </tr>
270
- <tr>
271
- <td><img src="https://www.google.com/s2/favicons?domain=infoq.com&sz=32" width="16"> <b>InfoQ</b> <sup>2</sup></td>
272
- <td><img src="https://www.google.com/s2/favicons?domain=ithome.com&sz=32" width="16"> <b>IT Home</b> <sup>3</sup></td>
273
- <td></td>
274
- <td></td>
275
- </tr>
276
- </table>
277
- </details>
278
-
279
- <!-- =========================== -->
280
- <!-- WEB — FINANCE -->
281
- <!-- =========================== -->
282
-
283
- <details>
284
- <summary><strong>Finance & Trading — 8 sites</strong></summary>
285
- <br>
286
- <table>
287
- <tr>
288
- <td><img src="https://www.google.com/s2/favicons?domain=xueqiu.com&sz=32" width="16"> <b>Xueqiu</b> <sup>12</sup></td>
289
- <td><img src="https://www.google.com/s2/favicons?domain=finance.sina.com.cn&sz=32" width="16"> <b>Sina Finance</b> <sup>5</sup></td>
290
- <td><img src="https://www.google.com/s2/favicons?domain=barchart.com&sz=32" width="16"> <b>Barchart</b> <sup>4</sup></td>
291
- <td><img src="https://www.google.com/s2/favicons?domain=finance.yahoo.com&sz=32" width="16"> <b>Yahoo Finance</b> <sup>3</sup></td>
292
- </tr>
293
- <tr>
294
- <td><img src="https://www.google.com/s2/favicons?domain=binance.com&sz=32" width="16"> <b>Binance</b> <sup>3</sup></td>
295
- <td><img src="https://www.google.com/s2/favicons?domain=futunn.com&sz=32" width="16"> <b>Futu</b> <sup>2</sup></td>
296
- <td><img src="https://www.google.com/s2/favicons?domain=coinbase.com&sz=32" width="16"> <b>Coinbase</b> <sup>2</sup></td>
297
- <td><img src="https://www.google.com/s2/favicons?domain=eastmoney.com&sz=32" width="16"> <b>Eastmoney</b> <sup>4</sup></td>
298
- </tr>
299
- </table>
300
- </details>
301
-
302
- <!-- =========================== -->
303
- <!-- WEB — SHOPPING & LIFE -->
304
- <!-- =========================== -->
305
-
306
- <details>
307
- <summary><strong>Shopping & Lifestyle — 14 sites</strong></summary>
308
- <br>
309
- <table>
310
- <tr>
311
- <td><img src="https://www.google.com/s2/favicons?domain=amazon.com&sz=32" width="16"> <b>Amazon</b> <sup>8</sup></td>
312
- <td><img src="https://www.google.com/s2/favicons?domain=jd.com&sz=32" width="16"> <b>JD</b> <sup>3</sup></td>
313
- <td><img src="https://www.google.com/s2/favicons?domain=taobao.com&sz=32" width="16"> <b>Taobao</b> <sup>2</sup></td>
314
- <td><img src="https://www.google.com/s2/favicons?domain=1688.com&sz=32" width="16"> <b>1688</b> <sup>3</sup></td>
315
- </tr>
316
- <tr>
317
- <td><img src="https://www.google.com/s2/favicons?domain=pinduoduo.com&sz=32" width="16"> <b>Pinduoduo</b> <sup>2</sup></td>
318
- <td><img src="https://www.google.com/s2/favicons?domain=smzdm.com&sz=32" width="16"> <b>SMZDM</b> <sup>3</sup></td>
319
- <td><img src="https://www.google.com/s2/favicons?domain=meituan.com&sz=32" width="16"> <b>Meituan</b> <sup>2</sup></td>
320
- <td><img src="https://www.google.com/s2/favicons?domain=ele.me&sz=32" width="16"> <b>Ele.me</b> <sup>2</sup></td>
321
- </tr>
322
- <tr>
323
- <td><img src="https://www.google.com/s2/favicons?domain=dianping.com&sz=32" width="16"> <b>Dianping</b> <sup>2</sup></td>
324
- <td><img src="https://www.google.com/s2/favicons?domain=coupang.com&sz=32" width="16"> <b>Coupang</b> <sup>3</sup></td>
325
- <td><img src="https://www.google.com/s2/favicons?domain=ctrip.com&sz=32" width="16"> <b>Ctrip</b> <sup>2</sup></td>
326
- <td><img src="https://www.google.com/s2/favicons?domain=xianyu.com&sz=32" width="16"> <b>Xianyu</b> <sup>3</sup></td>
327
- </tr>
328
- <tr>
329
- <td><img src="https://www.google.com/s2/favicons?domain=dangdang.com&sz=32" width="16"> <b>Dangdang</b> <sup>2</sup></td>
330
- <td><img src="https://www.google.com/s2/favicons?domain=maoyan.com&sz=32" width="16"> <b>Maoyan</b> <sup>2</sup></td>
331
- <td></td>
332
- <td></td>
333
- </tr>
334
- </table>
335
- </details>
336
-
337
- <!-- =========================== -->
338
- <!-- WEB — JOBS -->
339
- <!-- =========================== -->
340
-
341
- <details>
342
- <summary><strong>Jobs & Careers — 2 sites</strong></summary>
343
- <br>
344
- <table>
345
- <tr>
346
- <td><img src="https://www.google.com/s2/favicons?domain=zhipin.com&sz=32" width="16"> <b>Boss Zhipin</b> <sup>14</sup></td>
347
- <td><img src="https://www.google.com/s2/favicons?domain=linkedin.com&sz=32" width="16"> <b>LinkedIn</b> <sup>4</sup></td>
348
- <td></td>
349
- <td></td>
350
- </tr>
351
- </table>
352
- </details>
353
-
354
- <!-- =========================== -->
355
- <!-- WEB — REFERENCE -->
356
- <!-- =========================== -->
357
-
358
- <details>
359
- <summary><strong>Education & Reference — 15 sites</strong></summary>
360
- <br>
361
- <table>
362
- <tr>
363
- <td><img src="https://www.google.com/s2/favicons?domain=google.com&sz=32" width="16"> <b>Google</b> <sup>4</sup></td>
364
- <td><img src="https://www.google.com/s2/favicons?domain=wikipedia.org&sz=32" width="16"> <b>Wikipedia</b> <sup>5</sup></td>
365
- <td><img src="https://www.google.com/s2/favicons?domain=arxiv.org&sz=32" width="16"> <b>arXiv</b> <sup>3</sup></td>
366
- <td><img src="https://www.google.com/s2/favicons?domain=cnki.net&sz=32" width="16"> <b>CNKI</b> <sup>1</sup></td>
367
- </tr>
368
- <tr>
369
- <td><img src="https://www.google.com/s2/favicons?domain=chaoxing.com&sz=32" width="16"> <b>Chaoxing</b> <sup>2</sup></td>
370
- <td><img src="https://www.google.com/s2/favicons?domain=dictionary.com&sz=32" width="16"> <b>Dictionary</b> <sup>3</sup></td>
371
- <td><img src="https://www.google.com/s2/favicons?domain=imdb.com&sz=32" width="16"> <b>IMDb</b> <sup>7</sup></td>
372
- <td><img src="https://www.google.com/s2/favicons?domain=paperreview.com&sz=32" width="16"> <b>PaperReview</b> <sup>3</sup></td>
373
- </tr>
374
- <tr>
375
- <td><img src="https://www.google.com/s2/favicons?domain=exchangerate-api.com&sz=32" width="16"> <b>Exchange Rate</b> <sup>2</sup></td>
376
- <td><img src="https://www.google.com/s2/favicons?domain=ipinfo.io&sz=32" width="16"> <b>IP Info</b> <sup>1</sup></td>
377
- <td><img src="https://www.google.com/s2/favicons?domain=qweather.com&sz=32" width="16"> <b>QWeather</b> <sup>2</sup></td>
378
- <td><img src="https://www.google.com/s2/favicons?domain=unsplash.com&sz=32" width="16"> <b>Unsplash</b> <sup>2</sup></td>
379
- </tr>
380
- <tr>
381
- <td><img src="https://www.google.com/s2/favicons?domain=pexels.com&sz=32" width="16"> <b>Pexels</b> <sup>2</sup></td>
382
- <td><img src="https://www.google.com/s2/favicons?domain=sspai.com&sz=32" width="16"> <b>Sspai</b> <sup>2</sup></td>
383
- <td></td>
384
- <td></td>
385
- </tr>
386
- </table>
387
- </details>
388
-
389
- <!-- =========================== -->
390
- <!-- WEB — OTHER -->
391
- <!-- =========================== -->
392
-
393
- <details>
394
- <summary><strong>Other Web — 16 sites</strong></summary>
395
- <br>
396
- <table>
397
- <tr>
398
- <td><img src="https://www.google.com/s2/favicons?domain=ones.com&sz=32" width="16"> <b>Ones</b> <sup>11</sup></td>
399
- <td><img src="https://www.google.com/s2/favicons?domain=pixiv.net&sz=32" width="16"> <b>Pixiv</b> <sup>6</sup></td>
400
- <td><img src="https://www.google.com/s2/favicons?domain=hupu.com&sz=32" width="16"> <b>Hupu</b> <sup>7</sup></td>
401
- <td><img src="https://www.google.com/s2/favicons?domain=steampowered.com&sz=32" width="16"> <b>Steam</b> <sup>6</sup></td>
402
- </tr>
403
- <tr>
404
- <td><img src="https://www.google.com/s2/favicons?domain=band.us&sz=32" width="16"> <b>Band</b> <sup>4</sup></td>
405
- <td><img src="https://www.google.com/s2/favicons?domain=xiaoe-tech.com&sz=32" width="16"> <b>Xiaoe</b> <sup>5</sup></td>
406
- <td><img src="https://www.google.com/s2/favicons?domain=quark.cn&sz=32" width="16"> <b>Quark</b> <sup>2</sup></td>
407
- <td><img src="https://www.google.com/s2/favicons?domain=mubu.com&sz=32" width="16"> <b>Mubu</b> <sup>2</sup></td>
408
- </tr>
409
- <tr>
410
- <td><img src="https://www.google.com/s2/favicons?domain=ke.com&sz=32" width="16"> <b>Ke.com</b> <sup>2</sup></td>
411
- <td><img src="https://www.google.com/s2/favicons?domain=maimai.cn&sz=32" width="16"> <b>Maimai</b> <sup>1</sup></td>
412
- <td><img src="https://www.google.com/s2/favicons?domain=feishu.cn&sz=32" width="16"> <b>Feishu</b> <sup>4</sup></td>
413
- <td><img src="https://www.google.com/s2/favicons?domain=slock.it&sz=32" width="16"> <b>Slock</b> <sup>1</sup></td>
414
- </tr>
415
- <tr>
416
- <td><img src="https://www.google.com/s2/favicons?domain=jianyu.com&sz=32" width="16"> <b>Jianyu</b> <sup>1</sup></td>
417
- <td><img src="https://www.google.com/s2/favicons?domain=weixin.qq.com&sz=32" width="16"> <b>WeChat</b> <sup>4</sup></td>
418
- <td></td>
419
- <td></td>
420
- </tr>
421
- </table>
422
- </details>
423
-
424
- <!-- =========================== -->
425
- <!-- DESKTOP SOFTWARE -->
426
- <!-- =========================== -->
427
-
428
- <details>
429
- <summary><strong>Desktop Software — 30 apps</strong></summary>
430
- <br>
431
- <table>
432
- <tr>
433
- <th colspan="4">3D / CAD</th>
434
- </tr>
435
- <tr>
436
- <td><img src="https://cdn.simpleicons.org/blender/E87D0D" width="16"> <b>Blender</b> <sup>13</sup></td>
437
- <td><img src="https://www.google.com/s2/favicons?domain=freecad.org&sz=32" width="16"> <b>FreeCAD</b> <sup>15</sup></td>
438
- <td><img src="https://www.google.com/s2/favicons?domain=cloudcompare.org&sz=32" width="16"> <b>CloudCompare</b> <sup>4</sup></td>
439
- <td><img src="https://cdn.simpleicons.org/godotengine/478CBF" width="16"> <b>Godot</b> <sup>2</sup></td>
440
- </tr>
441
- <tr>
442
- <td><img src="https://www.google.com/s2/favicons?domain=renderdoc.org&sz=32" width="16"> <b>RenderDoc</b> <sup>2</sup></td>
443
- <td></td>
444
- <td></td>
445
- <td></td>
446
- </tr>
447
- <tr>
448
- <th colspan="4">Image</th>
449
- </tr>
450
- <tr>
451
- <td><img src="https://cdn.simpleicons.org/gimp/5C5543" width="16"> <b>GIMP</b> <sup>12</sup></td>
452
- <td><img src="https://cdn.simpleicons.org/inkscape/000000" width="16"> <b>Inkscape</b> <sup>3</sup></td>
453
- <td><img src="https://www.google.com/s2/favicons?domain=imagemagick.org&sz=32" width="16"> <b>ImageMagick</b> <sup>6</sup></td>
454
- <td><img src="https://www.google.com/s2/favicons?domain=krita.org&sz=32" width="16"> <b>Krita</b> <sup>4</sup></td>
455
- </tr>
456
- <tr>
457
- <td><img src="https://cdn.simpleicons.org/sketch/F7B500" width="16"> <b>Sketch</b> <sup>3</sup></td>
458
- <td></td>
459
- <td></td>
460
- <td></td>
461
- </tr>
462
- <tr>
463
- <th colspan="4">Video / Audio</th>
464
- </tr>
465
- <tr>
466
- <td><img src="https://cdn.simpleicons.org/ffmpeg/007808" width="16"> <b>FFmpeg</b> <sup>11</sup></td>
467
- <td><img src="https://cdn.simpleicons.org/kdenlive/527EB2" width="16"> <b>Kdenlive</b> <sup>3</sup></td>
468
- <td><img src="https://www.google.com/s2/favicons?domain=shotcut.org&sz=32" width="16"> <b>Shotcut</b> <sup>3</sup></td>
469
- <td><img src="https://cdn.simpleicons.org/audacity/0000CC" width="16"> <b>Audacity</b> <sup>8</sup></td>
470
- </tr>
471
- <tr>
472
- <td><img src="https://www.google.com/s2/favicons?domain=musescore.org&sz=32" width="16"> <b>MuseScore</b> <sup>5</sup></td>
473
- <td></td>
474
- <td></td>
475
- <td></td>
476
- </tr>
477
- <tr>
478
- <th colspan="4">Productivity</th>
479
- </tr>
480
- <tr>
481
- <td><img src="https://cdn.simpleicons.org/obsstudio/302E31" width="16"> <b>OBS Studio</b> <sup>8</sup></td>
482
- <td><img src="https://www.google.com/s2/favicons?domain=zotero.org&sz=32" width="16"> <b>Zotero</b> <sup>8</sup></td>
483
- <td><img src="https://cdn.simpleicons.org/visualstudiocode/007ACC" width="16"> <b>VS Code</b> <sup>3</sup></td>
484
- <td><img src="https://cdn.simpleicons.org/obsidian/7C3AED" width="16"> <b>Obsidian</b> <sup>3</sup></td>
485
- </tr>
486
- <tr>
487
- <td><img src="https://cdn.simpleicons.org/notion/000000" width="16"> <b>Notion</b> <sup>3</sup></td>
488
- <td><img src="https://cdn.simpleicons.org/libreoffice/18A303" width="16"> <b>LibreOffice</b> <sup>2</sup></td>
489
- <td><img src="https://www.google.com/s2/favicons?domain=pandoc.org&sz=32" width="16"> <b>Pandoc</b> <sup>1</sup></td>
490
- <td><img src="https://www.google.com/s2/favicons?domain=draw.io&sz=32" width="16"> <b>Draw.io</b> <sup>1</sup></td>
491
- </tr>
492
- <tr>
493
- <td><img src="https://www.google.com/s2/favicons?domain=mermaid.js.org&sz=32" width="16"> <b>Mermaid</b> <sup>1</sup></td>
494
- <td></td>
495
- <td></td>
496
- <td></td>
497
- </tr>
498
- <tr>
499
- <th colspan="4">Other</th>
500
- </tr>
501
- <tr>
502
- <td><img src="https://cdn.simpleicons.org/googlechrome/4285F4" width="16"> <b>Chrome</b> <sup>2</sup></td>
503
- <td><img src="https://cdn.simpleicons.org/zoom/0B5CFF" width="16"> <b>Zoom</b> <sup>2</sup></td>
504
- <td><img src="https://www.google.com/s2/favicons?domain=wiremock.org&sz=32" width="16"> <b>WireMock</b> <sup>5</sup></td>
505
- <td><img src="https://www.google.com/s2/favicons?domain=adguard.com&sz=32" width="16"> <b>AdGuard Home</b> <sup>5</sup></td>
506
- </tr>
507
- <tr>
508
- <td><img src="https://www.google.com/s2/favicons?domain=comfyui.com&sz=32" width="16"> <b>ComfyUI</b> <sup>4</sup></td>
509
- <td><img src="https://www.google.com/s2/favicons?domain=steampowered.com&sz=32" width="16"> <b>Slay the Spire II</b> <sup>6</sup></td>
510
- <td></td>
511
- <td></td>
512
- </tr>
513
- </table>
514
- </details>
515
-
516
- <!-- =========================== -->
517
- <!-- ELECTRON APPS -->
518
- <!-- =========================== -->
519
-
520
- <details>
521
- <summary><strong>Electron Apps — 8 apps, 70+ commands</strong></summary>
522
- <br>
146
+ | Domain | Highlights |
147
+ | --------------------- | ----------------------------------------------------------------------- |
148
+ | **Social (25)** | twitter, reddit, instagram, tiktok, xiaohongshu, bilibili, zhihu, weibo |
149
+ | **Tech (19)** | hackernews, stackoverflow, producthunt, github-trending, npm, pypi |
150
+ | **News (11)** | bbc, reuters, bloomberg, nytimes, techcrunch, 36kr |
151
+ | **Finance (8)** | xueqiu, yahoo-finance, eastmoney, binance, coinbase |
152
+ | **AI / ML (14)** | huggingface, ollama, replicate, perplexity, deepseek, doubao |
153
+ | **Desktop (30+)** | blender, ffmpeg, imagemagick, gimp, freecad, musescore, kdenlive |
154
+ | **macOS system (58)** | screenshot, clipboard, Calendar, Mail, Reminders, Shortcuts, Safari |
155
+ | **CLI bridges (35)** | gh, yt-dlp, jq, aws, vercel, supabase, wrangler, stripe |
523
156
 
524
- All via Chrome DevTools Protocol no extensions, no hacks.
525
-
526
- <table>
527
- <tr>
528
- <td><img src="https://www.google.com/s2/favicons?domain=cursor.com&sz=32" width="16"> <b>Cursor</b></td>
529
- <td>ask, send, read, model, composer, extract-code, new, status, screenshot, dump, history, export</td>
530
- <td><code>9226</code></td>
531
- </tr>
532
- <tr>
533
- <td><img src="https://www.google.com/s2/favicons?domain=openai.com&sz=32" width="16"> <b>Codex</b></td>
534
- <td>ask, send, read, model, extract-diff, new, status, screenshot, dump, history, export</td>
535
- <td><code>9222</code></td>
536
- </tr>
537
- <tr>
538
- <td><img src="https://www.google.com/s2/favicons?domain=chat.openai.com&sz=32" width="16"> <b>ChatGPT</b></td>
539
- <td>ask, send, read, model, new, status, screenshot, dump</td>
540
- <td><code>9236</code></td>
541
- </tr>
542
- <tr>
543
- <td><img src="https://www.google.com/s2/favicons?domain=notion.so&sz=32" width="16"> <b>Notion</b></td>
544
- <td>search, read, write, new, status, sidebar, favorites, export, screenshot</td>
545
- <td><code>9230</code></td>
546
- </tr>
547
- <tr>
548
- <td><img src="https://www.google.com/s2/favicons?domain=discord.com&sz=32" width="16"> <b>Discord</b></td>
549
- <td>servers, channels, read, send, search, members, status, delete</td>
550
- <td><code>9232</code></td>
551
- </tr>
552
- <tr>
553
- <td><img src="https://www.google.com/s2/favicons?domain=chatwise.app&sz=32" width="16"> <b>ChatWise</b></td>
554
- <td>ask, send, read, model, new, status, screenshot, dump</td>
555
- <td><code>9228</code></td>
556
- </tr>
557
- <tr>
558
- <td><img src="https://www.google.com/s2/favicons?domain=doubao.com&sz=32" width="16"> <b>Doubao</b></td>
559
- <td>ask, send, read, new, status, screenshot, dump</td>
560
- <td><code>9225</code></td>
561
- </tr>
562
- <tr>
563
- <td><img src="https://www.google.com/s2/favicons?domain=antigravity.ai&sz=32" width="16"> <b>Antigravity</b></td>
564
- <td>ask, send, read, model, new, status, screenshot, dump</td>
565
- <td><code>9234</code></td>
566
- </tr>
567
- </table>
568
- </details>
569
-
570
- <!-- =========================== -->
571
- <!-- CLI BRIDGES -->
572
- <!-- =========================== -->
573
-
574
- <details>
575
- <summary><strong>CLI Bridges — 35 tools</strong></summary>
576
- <br>
157
+ Run `unicli list` for the live catalog, or `unicli list --category=<domain>` to filter.
577
158
 
578
- Passthrough wrappers that normalize output to JSON:
579
-
580
- <table>
581
- <tr>
582
- <td><img src="https://cdn.simpleicons.org/docker/2496ED" width="16"> Docker</td>
583
- <td><img src="https://cdn.simpleicons.org/github/181717" width="16"> gh</td>
584
- <td><img src="https://www.google.com/s2/favicons?domain=jqlang.github.io&sz=32" width="16"> jq</td>
585
- <td><img src="https://www.google.com/s2/favicons?domain=yt-dl.org&sz=32" width="16"> yt-dlp</td>
586
- </tr>
587
- <tr>
588
- <td><img src="https://cdn.simpleicons.org/vercel/000000" width="16"> Vercel</td>
589
- <td><img src="https://cdn.simpleicons.org/supabase/3FCF8E" width="16"> Supabase</td>
590
- <td><img src="https://cdn.simpleicons.org/cloudflare/F38020" width="16"> Wrangler</td>
591
- <td><img src="https://www.google.com/s2/favicons?domain=feishu.cn&sz=32" width="16"> Lark</td>
592
- </tr>
593
- <tr>
594
- <td><img src="https://www.google.com/s2/favicons?domain=dingtalk.com&sz=32" width="16"> DingTalk</td>
595
- <td><img src="https://www.google.com/s2/favicons?domain=huggingface.co&sz=32" width="16"> HF CLI</td>
596
- <td><img src="https://www.google.com/s2/favicons?domain=anthropic.com&sz=32" width="16"> Claude Code</td>
597
- <td><img src="https://www.google.com/s2/favicons?domain=openai.com&sz=32" width="16"> Codex CLI</td>
598
- </tr>
599
- <tr>
600
- <td><img src="https://www.google.com/s2/favicons?domain=opencode.ai&sz=32" width="16"> OpenCode</td>
601
- <td><img src="https://cdn.simpleicons.org/amazonaws/232F3E" width="16"> AWS</td>
602
- <td><img src="https://cdn.simpleicons.org/googlecloud/4285F4" width="16"> GCloud</td>
603
- <td><img src="https://cdn.simpleicons.org/microsoftazure/0078D4" width="16"> Azure</td>
604
- </tr>
605
- <tr>
606
- <td><img src="https://cdn.simpleicons.org/digitalocean/0080FF" width="16"> DigitalOcean</td>
607
- <td><img src="https://cdn.simpleicons.org/netlify/00C7B7" width="16"> Netlify</td>
608
- <td><img src="https://www.google.com/s2/favicons?domain=railway.app&sz=32" width="16"> Railway</td>
609
- <td><img src="https://www.google.com/s2/favicons?domain=fly.io&sz=32" width="16"> Fly.io</td>
610
- </tr>
611
- <tr>
612
- <td><img src="https://www.google.com/s2/favicons?domain=planetscale.com&sz=32" width="16"> PlanetScale</td>
613
- <td><img src="https://www.google.com/s2/favicons?domain=neon.tech&sz=32" width="16"> Neon</td>
614
- <td><img src="https://cdn.simpleicons.org/slack/4A154B" width="16"> Slack</td>
615
- <td><img src="https://www.google.com/s2/favicons?domain=kimi.ai&sz=32" width="16"> Kimi CLI</td>
616
- </tr>
617
- <tr>
618
- <td><img src="https://www.google.com/s2/favicons?domain=workspace.google.com&sz=32" width="16"> GWS</td>
619
- <td><img src="https://www.google.com/s2/favicons?domain=deepagents.ai&sz=32" width="16"> DeepAgents</td>
620
- <td><img src="https://cdn.simpleicons.org/stripe/635BFF" width="16"> Stripe</td>
621
- <td><img src="https://cdn.simpleicons.org/firebase/DD2C00" width="16"> Firebase</td>
622
- </tr>
623
- <tr>
624
- <td><img src="https://www.google.com/s2/favicons?domain=minimaxi.com&sz=32" width="16"> MMX CLI</td>
625
- <td><img src="https://www.google.com/s2/favicons?domain=wecom.work&sz=32" width="16"> WeCom</td>
626
- <td><img src="https://www.google.com/s2/favicons?domain=mem0.ai&sz=32" width="16"> Mem0</td>
627
- <td>+ more</td>
628
- </tr>
629
- </table>
630
- </details>
631
-
632
- <!-- =========================== -->
633
- <!-- macOS SYSTEM -->
634
- <!-- =========================== -->
635
-
636
- <details>
637
- <summary><strong><img src="https://cdn.simpleicons.org/apple/000000" width="16"> macOS System — 51 commands</strong></summary>
638
- <br>
639
- <table>
640
- <tr>
641
- <th>Audio/Display</th>
642
- <td>volume, brightness, dark-mode, say</td>
643
- </tr>
644
- <tr>
645
- <th>Power/System</th>
646
- <td>battery, lock-screen, caffeinate, sleep, uptime, system-info</td>
647
- </tr>
648
- <tr>
649
- <th>Files/Search</th>
650
- <td>spotlight, disk-info, trash, empty-trash, open, finder-tags, finder-recent, finder-selection</td>
651
- </tr>
652
- <tr>
653
- <th>Network</th>
654
- <td>wifi, wifi-info, bluetooth</td>
655
- </tr>
656
- <tr>
657
- <th>Notifications</th>
658
- <td>notify, notification, do-not-disturb</td>
659
- </tr>
660
- <tr>
661
- <th>Apps</th>
662
- <td>apps, apps-list, active-app, open-app, safari-tabs, shortcuts-list, shortcuts-run</td>
663
- </tr>
664
- <tr>
665
- <th>PIM</th>
666
- <td>calendar-list, calendar-create, calendar-today, contacts-search, mail-status, mail-send, messages-send, reminders-list, reminders-create, reminders-complete</td>
667
- </tr>
668
- <tr>
669
- <th>Media</th>
670
- <td>music-now, music-control, photos-search, notes-list, notes-search, screenshot, clipboard, processes</td>
671
- </tr>
672
- </table>
673
- </details>
674
-
675
- <!-- =========================== -->
676
- <!-- AGENT PLATFORMS -->
677
- <!-- =========================== -->
678
-
679
- <details>
680
- <summary><strong>Agent Platforms — 6 integrations</strong></summary>
681
- <br>
682
- <table>
683
- <tr>
684
- <td><img src="https://www.google.com/s2/favicons?domain=hermes.ai&sz=32" width="16"> <b>Hermes</b> <sup>3</sup></td>
685
- <td><img src="https://www.google.com/s2/favicons?domain=autoagent.dev&sz=32" width="16"> <b>AutoAgent</b> <sup>1</sup></td>
686
- <td><img src="https://www.google.com/s2/favicons?domain=stagehand.dev&sz=32" width="16"> <b>Stagehand</b> <sup>1</sup></td>
687
- </tr>
688
- <tr>
689
- <td><img src="https://www.google.com/s2/favicons?domain=github.com&sz=32" width="16"> <b>OpenHarness</b> <sup>2</sup></td>
690
- <td><img src="https://www.google.com/s2/favicons?domain=openai.com&sz=32" width="16"> <b>CUA</b> <sup>2</sup></td>
691
- <td></td>
692
- </tr>
693
- </table>
694
- </details>
159
+ ## Agent integration
695
160
 
696
- ## Architecture
161
+ Every major agent platform works out of the box:
697
162
 
698
- ```mermaid
699
- graph TB
700
- CMD["unicli &lt;site&gt; &lt;command&gt; [args]"]
701
-
702
- CMD --> YAML["YAML Adapter<br/><i>~20 lines, agent-editable</i>"]
703
- CMD --> TS["TS Adapter<br/><i>complex logic</i>"]
704
- CMD --> BRIDGE["Bridge<br/><i>passthrough to CLI</i>"]
705
-
706
- YAML --> ENGINE
707
- TS --> ENGINE
708
- BRIDGE --> ENGINE
709
-
710
- subgraph ENGINE ["Pipeline Engine — 35 steps"]
711
- direction LR
712
- API["fetch fetch_text<br/>parse_rss html_to_md"]
713
- TRANSFORM["select map filter<br/>sort limit"]
714
- BROWSER["navigate evaluate<br/>click type press<br/>scroll intercept<br/>snapshot tap extract"]
715
- CONTROL["set if each<br/>parallel append<br/>rate_limit assert retry"]
716
- OTHER["exec write_temp<br/>download websocket"]
717
- end
718
-
719
- ENGINE --> CDP["Direct CDP"]
720
- ENGINE --> DAEMON["Browser Daemon<br/><i>reuses Chrome logins</i>"]
721
-
722
- CDP --> OUT["Output Formatter<br/><i>table · json · yaml · csv · md</i>"]
723
- DAEMON --> OUT
163
+ | Platform | One-liner | Notes |
164
+ | --------------- | ---------------------------------------------------------- | ----------------------------------------- |
165
+ | **Claude Code** | `claude mcp add unicli -- npx @zenalexa/unicli mcp serve` | 4 meta-tools, stdio |
166
+ | **Codex CLI** | Add `[mcp_servers.unicli]` to `~/.codex/config.toml` | First-class AGENTS.md citizen |
167
+ | **Cursor** | MCP Settings `unicli` → `npx @zenalexa/unicli mcp serve` | Bilingual search works inside Cursor chat |
168
+ | **avante.nvim** | `type = "acp", command = "unicli", args = { "acp" }` | See [`docs/AVANTE.md`](docs/AVANTE.md) |
169
+ | **OpenCode** | MCP via `opencode.jsonc` — `command: "unicli mcp serve"` | AGENTS.md auto-loaded |
170
+ | **Cline** | Add MCP server in settings — stdio transport | Same 4 meta-tools, 200-token cold start |
171
+
172
+ Direct shell access (any agent with Bash or exec):
173
+
174
+ ```bash
175
+ unicli twitter search "AI agents"
176
+ unicli blender render scene.blend --output /tmp/frame.png
177
+ unicli macos screenshot --region 0,0,1920,1080
724
178
  ```
725
179
 
726
- Remote browser support via `UNICLI_CDP_ENDPOINT` — connect to any CDP WebSocket (Cloudflare Browser Rendering, Browserless, or self-hosted).
180
+ ## Authentication
181
+
182
+ Five auth strategies, auto-probed in a cascade (`public → cookie → header`):
183
+
184
+ | Strategy | How |
185
+ | ----------- | ------------------------------------------------------ |
186
+ | `public` | Direct HTTP, no credentials |
187
+ | `cookie` | `~/.unicli/cookies/<site>.json` injected into headers |
188
+ | `header` | Cookie + auto-extracted CSRF (ct0, bili_jct, …) |
189
+ | `intercept` | Chrome navigates, Uni-CLI captures XHR/fetch responses |
190
+ | `ui` | Direct DOM interaction via CDP (click, type, submit) |
727
191
 
728
- ## Write an Adapter
192
+ ```bash
193
+ unicli auth setup twitter # Print required cookies + target path
194
+ unicli auth check twitter # Validate cookie file
195
+ unicli auth list # All configured sites
196
+ ```
729
197
 
730
- Most adapters are ~20 lines of YAML:
198
+ The browser daemon (`unicli browser start`) reuses your signed-in Chrome session via CDP — no cookie export, no extension install. Auto-exits after 4h idle.
199
+
200
+ ## Write an adapter
201
+
202
+ Most adapters are ~20 lines of YAML. No TypeScript, no build step, no imports:
731
203
 
732
204
  ```yaml
733
205
  site: hackernews
@@ -742,147 +214,99 @@ pipeline:
742
214
  do:
743
215
  - fetch:
744
216
  url: "https://hacker-news.firebaseio.com/v0/item/${{ item }}.json"
745
- max: "${{ args.limit | default(30) }}"
746
217
  - map:
747
218
  title: "${{ item.title }}"
748
219
  score: "${{ item.score }}"
749
220
  url: "${{ item.url }}"
750
- by: "${{ item.by }}"
751
- columns: [title, score, by, url]
752
- ```
753
-
754
- Five adapter types: `web-api`, `desktop`, `browser`, `bridge`, `service`.
755
-
756
- 29 template filters in a sandboxed VM: `join`, `urlencode`, `truncate`, `slugify`, `sanitize`, `basename`, `strip_html`, `default`, `split`, `first`, `last`, `length`, `keys`, `json`, `replace`, `lowercase`, `uppercase`, `trim`, `slice`, `reverse`, `unique`, `abs`, `round`, `ceil`, `floor`, `int`, `float`, `str`, `ext`.
757
-
758
- ## Authentication
759
-
760
- Five strategies, auto-detected via cascade (`PUBLIC → COOKIE → HEADER`):
761
-
762
- | Strategy | How |
763
- | ----------- | -------------------------------------------------------- |
764
- | `public` | Direct HTTP — no credentials |
765
- | `cookie` | Injects cookies from `~/.unicli/cookies/<site>.json` |
766
- | `header` | Cookie + auto-extracted CSRF token (ct0, bili_jct, etc.) |
767
- | `intercept` | Navigates page in Chrome, captures XHR/fetch responses |
768
- | `ui` | Direct DOM interaction (click, type, submit) |
769
-
770
- ```bash
771
- unicli auth setup twitter # Show required cookies + template
772
- unicli auth check twitter # Validate cookie file
773
- unicli auth list # List configured sites
221
+ columns: [title, score, url]
774
222
  ```
775
223
 
776
- ## Browser Daemon
224
+ Five adapter types: `web-api`, `desktop`, `browser`, `bridge`, `service`. 29 template filters (`join`, `urlencode`, `truncate`, `slugify`, `default`, `json`, …) run in a sandboxed VM.
777
225
 
778
- Persistent background process that reuses your Chrome login sessions — no cookie export, no extension install:
226
+ Scaffold, dev, test:
779
227
 
780
228
  ```bash
781
- unicli daemon status # Check daemon
782
- unicli operate open <url> # Navigate
783
- unicli operate state # DOM accessibility snapshot
784
- unicli operate click <ref> # Click by ref
785
- unicli operate type <ref> <text> # Type into element
786
- unicli operate eval <js> # Execute JavaScript
787
- unicli operate screenshot # Capture page
229
+ unicli init <site> <command> # Scaffold new adapter
230
+ unicli dev <path> # Hot-reload during dev
231
+ unicli test <site> # Validate
788
232
  unicli record <url> # Auto-generate adapter from traffic
789
233
  ```
790
234
 
791
- 13-layer anti-detection stealth: webdriver removal, `chrome.runtime` mock, CDP marker cleanup, `Error.stack` filtering, iframe consistency, and more. Auto-exits after 4h idle.
235
+ Full reference: [`docs/ADAPTER-FORMAT.md`](docs/ADAPTER-FORMAT.md). Migrating from OpenCLI: [`docs/MIGRATING-FROM-OPENCLI.md`](docs/MIGRATING-FROM-OPENCLI.md) and the one-shot `unicli import opencli-yaml`.
792
236
 
793
- ## Agent Integration
237
+ ## Search
794
238
 
795
- Works with every major agent platform:
239
+ Agents find commands by intent, bilingual:
796
240
 
797
241
  ```bash
798
- # Claude Code / Codex CLI — direct shell
799
- unicli twitter search "AI agents"
800
-
801
- # MCP one command to expose all 969 commands
802
- unicli mcp serve
803
-
804
- # AGENTS.md — discovery file already included in repo
805
- cat AGENTS.md
242
+ unicli search "推特热门" # twitter trending
243
+ unicli search "download video" # → bilibili download, yt-dlp download, twitter download
244
+ unicli search "股票行情" # → binance ticker, xueqiu quote, barchart quote
245
+ unicli search --category finance # browse by category
806
246
  ```
807
247
 
808
- | Platform | Integration |
809
- | --- | --- |
810
- | **Claude Code** | Bash tool + MCP server + AGENTS.md |
811
- | **Codex CLI** | Shell execution + MCP + AGENTS.md (first-class) |
812
- | **OpenClaw** | Plugin + MCP + ClawHub skill |
813
- | **Hermes Agent** | MCP + Skills Hub + persistent shell |
814
- | **OpenCode** | MCP via opencode.jsonc + AGENTS.md |
248
+ BM25 + TF-IDF scoring with a 200-entry ZH↔EN alias table. The index is 50KB, queries complete in under 10ms.
815
249
 
816
- ## Development
250
+ ## Theory + benchmarks
817
251
 
818
- ```bash
819
- git clone https://github.com/olo-dot-io/Uni-CLI.git && cd Uni-CLI
820
- npm install && npm run verify
821
- ```
252
+ The design rests on five principles, each tied to a citation in [`docs/refs.bib`](docs/refs.bib):
822
253
 
823
- | Command | Purpose |
824
- | ---------------------- | ------------------------- |
825
- | `npm run dev` | Dev run |
826
- | `npm run build` | Production build |
827
- | `npm run typecheck` | TypeScript strict |
828
- | `npm run lint` | Oxlint |
829
- | `npm run test` | Unit tests (788) |
830
- | `npm run test:adapter` | Validate all adapters |
831
- | `npm run verify` | Full pipeline |
254
+ 1. **Rice's restriction** — every adapter has decidable semantics (YAML pipeline, no Turing-complete logic).
255
+ 2. **Lehman's mandate** no adapter is permanent; self-repair is first-class.
256
+ 3. **Shannon's compression** CLI invocations are near-optimal compression of the underlying API call.
257
+ 4. **Agent tool trilemma (original)** — coverage × accuracy × performance, pick two. We choose accuracy × performance.
258
+ 5. **Banach convergence** — structured errors must provide directional feedback (`adapter_path` + `step` + `suggestion`) so repair iterations converge.
832
259
 
833
- 7 production dependencies: `chalk`, `cli-table3`, `commander`, `js-yaml`, `turndown`, `undici`, `ws`.
260
+ Full treatment with 42 citations: [`docs/THEORY.md`](docs/THEORY.md). Reproducible benchmarks comparing Uni-CLI to GitHub MCP and Firecrawl MCP: [`docs/BENCHMARK.md`](docs/BENCHMARK.md).
834
261
 
835
- ## Contributing
836
-
837
- The fastest way to contribute: write a [20-line YAML adapter](./CONTRIBUTING.md) for a site you use.
262
+ ## Development
838
263
 
839
264
  ```bash
840
- unicli init <site> <command> # Scaffold new adapter
841
- unicli dev <path> # Hot-reload during dev
842
- unicli test <site> # Validate
265
+ git clone https://github.com/olo-dot-io/Uni-CLI.git && cd Uni-CLI
266
+ npm install
267
+ npm run verify # typecheck + lint + test + build + stats check
843
268
  ```
844
269
 
845
- ## Search & Discovery
270
+ | Command | Purpose |
271
+ | ---------------------- | --------------------------------------------------------- |
272
+ | `npm run dev` | Run from source |
273
+ | `npm run build` | Production build |
274
+ | `npm run typecheck` | TypeScript strict |
275
+ | `npm run lint` | Oxlint |
276
+ | `npm run test` | Unit tests (<!-- STATS:test_count -->1205<!-- /STATS -->) |
277
+ | `npm run test:adapter` | Validate all adapters |
278
+ | `npm run verify` | Full pipeline (7 gates) |
846
279
 
847
- Agents find commands through bilingual semantic search no need to memorize site names.
280
+ Seven production dependencies: `chalk`, `cli-table3`, `commander`, `js-yaml`, `turndown`, `undici`, `ws`.
848
281
 
849
- ```bash
850
- unicli search "推特热门" # → twitter trending
851
- unicli search "download video" # → bilibili download, yt-dlp download, twitter download
852
- unicli search "股票行情" # → binance ticker, barchart quote, xueqiu quote
853
- unicli search --category finance # → all finance commands
854
- ```
282
+ ## Release cadence
855
283
 
856
- The search engine uses BM25 scoring with a ~200-entry bilingual alias table (Chinese↔English). The entire index is 50KB, searches complete in <10ms.
284
+ Patches ship every **Friday 09:00 HKT** when substantive commits have landed since the last tag. Quiet weeks are recorded and skipped — silence is success, not failure. Dependabot bumps are grouped into one PR per Monday so they ride along in the Friday cut without flooding the commit log.
857
285
 
858
- ## Agent Integration
286
+ <a href="https://github.com/olo-dot-io/Uni-CLI/commits/main"><img src="https://img.shields.io/github/last-commit/olo-dot-io/Uni-CLI?style=flat-square&label=last-commit" alt="last commit"></a>
859
287
 
860
- ```bash
861
- # CLI direct (any agent with shell access)
862
- npm install -g @zenalexa/unicli
288
+ Full policy — manual overrides, cancellation procedure, escalation rules: [`docs/RELEASE-CADENCE.md`](docs/RELEASE-CADENCE.md).
863
289
 
864
- # MCP server (Claude Code, Codex CLI, Hermes, OpenCode)
865
- npx @zenalexa/unicli mcp serve
866
-
867
- # MCP with SSE transport (remote connections)
868
- npx @zenalexa/unicli mcp serve --transport sse --port 19826
869
-
870
- # MCP with OAuth (enterprise)
871
- npx @zenalexa/unicli mcp serve --transport http --auth
872
- ```
290
+ ## Contributing
873
291
 
874
- | Platform | One-line Setup |
875
- |----------|---------------|
876
- | **Claude Code** | `claude mcp add unicli -- npx @zenalexa/unicli mcp serve` |
877
- | **Codex CLI** | Add `[mcp_servers.unicli]` to `~/.codex/config.toml` |
878
- | **Any MCP client** | `npx @zenalexa/unicli mcp serve` (stdio) |
292
+ The fastest path to a merged PR: write a 20-line YAML adapter for a site you use every day. Per-domain guides live in [`contributing/`](contributing/):
879
293
 
880
- The MCP server exposes 4 meta-tools by default (~200 tokens). `unicli_search` provides bilingual semantic search across all 1020 commands.
294
+ | Area | Guide |
295
+ | ---------------- | -------------------------------------------------------- |
296
+ | New adapter | [`contributing/adapter.md`](contributing/adapter.md) |
297
+ | New transport | [`contributing/transport.md`](contributing/transport.md) |
298
+ | CUA backend | [`contributing/cua.md`](contributing/cua.md) |
299
+ | MCP server | [`contributing/mcp.md`](contributing/mcp.md) |
300
+ | ACP integration | [`contributing/acp.md`](contributing/acp.md) |
301
+ | Release process | [`contributing/release.md`](contributing/release.md) |
302
+ | Schema migration | [`contributing/schema.md`](contributing/schema.md) |
881
303
 
882
304
  ## License
883
305
 
884
306
  [Apache-2.0](./LICENSE)
885
307
 
308
+ Repo: <https://github.com/olo-dot-io/Uni-CLI> · npm: [`@zenalexa/unicli`](https://www.npmjs.com/package/@zenalexa/unicli) · Issues welcome.
309
+
886
310
  ---
887
311
 
888
312
  <p align="center">
@@ -892,6 +316,6 @@ The MCP server exposes 4 meta-tools by default (~200 tokens). `unicli_search` pr
892
316
  </p>
893
317
 
894
318
  <p align="center">
895
- <sub>v0.211.2 — Vostok · Volynov</sub><br>
896
- <sub>198 sites · 1020 commands · 35 pipeline steps · BM25+TF-IDF bilingual search · MCP 2025-03-26 · 855 tests</sub>
319
+ <sub>v0.213.0-beta.2 — Vostok · Gagarin (Pre-release 2)</sub><br>
320
+ <sub><!-- STATS:site_count -->200<!-- /STATS --> sites · <!-- STATS:command_count -->968<!-- /STATS --> commands · <!-- STATS:pipeline_step_count -->54<!-- /STATS --> pipeline steps · BM25+TF-IDF bilingual search · MCP 2025-11-25 · <!-- STATS:test_count -->1205<!-- /STATS --> tests</sub>
897
321
  </p>