@zenalexa/unicli 0.211.2 → 0.212.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1087) hide show
  1. package/AGENTS.md +59 -136
  2. package/README.md +189 -773
  3. package/dist/cli.d.ts +8 -0
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +109 -9
  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/health.d.ts.map +1 -1
  14. package/dist/commands/health.js +14 -0
  15. package/dist/commands/health.js.map +1 -1
  16. package/dist/commands/lint.d.ts +32 -0
  17. package/dist/commands/lint.d.ts.map +1 -0
  18. package/dist/commands/lint.js +377 -0
  19. package/dist/commands/lint.js.map +1 -0
  20. package/dist/commands/mcp.d.ts.map +1 -1
  21. package/dist/commands/mcp.js.map +1 -1
  22. package/dist/commands/migrate-schema.d.ts +56 -0
  23. package/dist/commands/migrate-schema.d.ts.map +1 -0
  24. package/dist/commands/migrate-schema.js +522 -0
  25. package/dist/commands/migrate-schema.js.map +1 -0
  26. package/dist/commands/migrate.d.ts +54 -0
  27. package/dist/commands/migrate.d.ts.map +1 -0
  28. package/dist/commands/migrate.js +270 -0
  29. package/dist/commands/migrate.js.map +1 -0
  30. package/dist/commands/skills.d.ts.map +1 -1
  31. package/dist/commands/skills.js +76 -0
  32. package/dist/commands/skills.js.map +1 -1
  33. package/dist/constants.d.ts +2 -0
  34. package/dist/constants.d.ts.map +1 -1
  35. package/dist/constants.js +2 -0
  36. package/dist/constants.js.map +1 -1
  37. package/dist/core/envelope.d.ts +87 -0
  38. package/dist/core/envelope.d.ts.map +1 -0
  39. package/dist/core/envelope.js +94 -0
  40. package/dist/core/envelope.js.map +1 -0
  41. package/dist/core/index.d.ts +12 -0
  42. package/dist/core/index.d.ts.map +1 -0
  43. package/dist/core/index.js +12 -0
  44. package/dist/core/index.js.map +1 -0
  45. package/dist/core/registry.d.ts +63 -0
  46. package/dist/core/registry.d.ts.map +1 -0
  47. package/dist/core/registry.js +62 -0
  48. package/dist/core/registry.js.map +1 -0
  49. package/dist/core/schema-v2.d.ts +111 -0
  50. package/dist/core/schema-v2.d.ts.map +1 -0
  51. package/dist/core/schema-v2.js +118 -0
  52. package/dist/core/schema-v2.js.map +1 -0
  53. package/dist/core/types.d.ts +24 -0
  54. package/dist/core/types.d.ts.map +1 -0
  55. package/dist/core/types.js +15 -0
  56. package/dist/core/types.js.map +1 -0
  57. package/dist/discovery/aliases.d.ts +5 -0
  58. package/dist/discovery/aliases.d.ts.map +1 -1
  59. package/dist/discovery/aliases.js +45 -2
  60. package/dist/discovery/aliases.js.map +1 -1
  61. package/dist/discovery/loader.d.ts.map +1 -1
  62. package/dist/discovery/loader.js +82 -5
  63. package/dist/discovery/loader.js.map +1 -1
  64. package/dist/discovery/search.d.ts.map +1 -1
  65. package/dist/discovery/search.js +42 -5
  66. package/dist/discovery/search.js.map +1 -1
  67. package/dist/engine/repair/logger.d.ts.map +1 -1
  68. package/dist/engine/repair/logger.js +11 -1
  69. package/dist/engine/repair/logger.js.map +1 -1
  70. package/dist/engine/steps/browser.d.ts +11 -0
  71. package/dist/engine/steps/browser.d.ts.map +1 -0
  72. package/dist/engine/steps/browser.js +11 -0
  73. package/dist/engine/steps/browser.js.map +1 -0
  74. package/dist/engine/steps/control.d.ts +10 -0
  75. package/dist/engine/steps/control.d.ts.map +1 -0
  76. package/dist/engine/steps/control.js +10 -0
  77. package/dist/engine/steps/control.js.map +1 -0
  78. package/dist/engine/steps/cua.d.ts +53 -0
  79. package/dist/engine/steps/cua.d.ts.map +1 -0
  80. package/dist/engine/steps/cua.js +71 -0
  81. package/dist/engine/steps/cua.js.map +1 -0
  82. package/dist/engine/steps/desktop-ax.d.ts +38 -0
  83. package/dist/engine/steps/desktop-ax.d.ts.map +1 -0
  84. package/dist/engine/steps/desktop-ax.js +49 -0
  85. package/dist/engine/steps/desktop-ax.js.map +1 -0
  86. package/dist/engine/steps/desktop.d.ts +10 -0
  87. package/dist/engine/steps/desktop.d.ts.map +1 -0
  88. package/dist/engine/steps/desktop.js +10 -0
  89. package/dist/engine/steps/desktop.js.map +1 -0
  90. package/dist/engine/steps/download.d.ts +10 -0
  91. package/dist/engine/steps/download.d.ts.map +1 -0
  92. package/dist/engine/steps/download.js +10 -0
  93. package/dist/engine/steps/download.js.map +1 -0
  94. package/dist/engine/steps/fetch.d.ts +10 -0
  95. package/dist/engine/steps/fetch.d.ts.map +1 -0
  96. package/dist/engine/steps/fetch.js +10 -0
  97. package/dist/engine/steps/fetch.js.map +1 -0
  98. package/dist/engine/steps/index.d.ts +19 -0
  99. package/dist/engine/steps/index.d.ts.map +1 -0
  100. package/dist/engine/steps/index.js +19 -0
  101. package/dist/engine/steps/index.js.map +1 -0
  102. package/dist/engine/steps/transform.d.ts +10 -0
  103. package/dist/engine/steps/transform.d.ts.map +1 -0
  104. package/dist/engine/steps/transform.js +10 -0
  105. package/dist/engine/steps/transform.js.map +1 -0
  106. package/dist/engine/steps/websocket.d.ts +10 -0
  107. package/dist/engine/steps/websocket.d.ts.map +1 -0
  108. package/dist/engine/steps/websocket.js +10 -0
  109. package/dist/engine/steps/websocket.js.map +1 -0
  110. package/dist/engine/yaml-runner.d.ts +159 -1
  111. package/dist/engine/yaml-runner.d.ts.map +1 -1
  112. package/dist/engine/yaml-runner.js +180 -32
  113. package/dist/engine/yaml-runner.js.map +1 -1
  114. package/dist/manifest-compact.txt +1 -1
  115. package/dist/manifest-search.json +1 -1
  116. package/dist/manifest.json +98 -1
  117. package/dist/mcp/elicitation.d.ts +56 -0
  118. package/dist/mcp/elicitation.d.ts.map +1 -0
  119. package/dist/mcp/elicitation.js +62 -0
  120. package/dist/mcp/elicitation.js.map +1 -0
  121. package/dist/mcp/oauth.d.ts.map +1 -1
  122. package/dist/mcp/oauth.js +80 -9
  123. package/dist/mcp/oauth.js.map +1 -1
  124. package/dist/mcp/server.d.ts +5 -0
  125. package/dist/mcp/server.d.ts.map +1 -1
  126. package/dist/mcp/server.js +72 -66
  127. package/dist/mcp/server.js.map +1 -1
  128. package/dist/mcp/streamable-http.d.ts +36 -11
  129. package/dist/mcp/streamable-http.d.ts.map +1 -1
  130. package/dist/mcp/streamable-http.js +277 -23
  131. package/dist/mcp/streamable-http.js.map +1 -1
  132. package/dist/output/formatter.d.ts +14 -4
  133. package/dist/output/formatter.d.ts.map +1 -1
  134. package/dist/output/formatter.js +49 -25
  135. package/dist/output/formatter.js.map +1 -1
  136. package/dist/protocol/acp.d.ts +126 -0
  137. package/dist/protocol/acp.d.ts.map +1 -0
  138. package/dist/protocol/acp.js +588 -0
  139. package/dist/protocol/acp.js.map +1 -0
  140. package/dist/protocol/skill.d.ts +106 -0
  141. package/dist/protocol/skill.d.ts.map +1 -0
  142. package/dist/protocol/skill.js +276 -0
  143. package/dist/protocol/skill.js.map +1 -0
  144. package/dist/registry.d.ts +2 -0
  145. package/dist/registry.d.ts.map +1 -1
  146. package/dist/registry.js +2 -0
  147. package/dist/registry.js.map +1 -1
  148. package/dist/transport/adapters/cdp-browser.d.ts +44 -0
  149. package/dist/transport/adapters/cdp-browser.d.ts.map +1 -0
  150. package/dist/transport/adapters/cdp-browser.js +240 -0
  151. package/dist/transport/adapters/cdp-browser.js.map +1 -0
  152. package/dist/transport/adapters/cua.d.ts +240 -0
  153. package/dist/transport/adapters/cua.d.ts.map +1 -0
  154. package/dist/transport/adapters/cua.js +663 -0
  155. package/dist/transport/adapters/cua.js.map +1 -0
  156. package/dist/transport/adapters/desktop-atspi.d.ts +27 -0
  157. package/dist/transport/adapters/desktop-atspi.d.ts.map +1 -0
  158. package/dist/transport/adapters/desktop-atspi.js +65 -0
  159. package/dist/transport/adapters/desktop-atspi.js.map +1 -0
  160. package/dist/transport/adapters/desktop-ax.d.ts +59 -0
  161. package/dist/transport/adapters/desktop-ax.d.ts.map +1 -0
  162. package/dist/transport/adapters/desktop-ax.js +311 -0
  163. package/dist/transport/adapters/desktop-ax.js.map +1 -0
  164. package/dist/transport/adapters/desktop-uia.d.ts +27 -0
  165. package/dist/transport/adapters/desktop-uia.d.ts.map +1 -0
  166. package/dist/transport/adapters/desktop-uia.js +66 -0
  167. package/dist/transport/adapters/desktop-uia.js.map +1 -0
  168. package/dist/transport/adapters/http.d.ts +40 -0
  169. package/dist/transport/adapters/http.d.ts.map +1 -0
  170. package/dist/transport/adapters/http.js +353 -0
  171. package/dist/transport/adapters/http.js.map +1 -0
  172. package/dist/transport/adapters/subprocess.d.ts +27 -0
  173. package/dist/transport/adapters/subprocess.d.ts.map +1 -0
  174. package/dist/transport/adapters/subprocess.js +254 -0
  175. package/dist/transport/adapters/subprocess.js.map +1 -0
  176. package/dist/transport/bus.d.ts +28 -0
  177. package/dist/transport/bus.d.ts.map +1 -0
  178. package/dist/transport/bus.js +112 -0
  179. package/dist/transport/bus.js.map +1 -0
  180. package/dist/transport/capability.d.ts +38 -0
  181. package/dist/transport/capability.d.ts.map +1 -0
  182. package/dist/transport/capability.js +254 -0
  183. package/dist/transport/capability.js.map +1 -0
  184. package/dist/transport/types.d.ts +148 -0
  185. package/dist/transport/types.d.ts.map +1 -0
  186. package/dist/transport/types.js +19 -0
  187. package/dist/transport/types.js.map +1 -0
  188. package/dist/types.d.ts +18 -2
  189. package/dist/types.d.ts.map +1 -1
  190. package/dist/types.js.map +1 -1
  191. package/package.json +26 -4
  192. package/src/adapters/1688/item.yaml +7 -0
  193. package/src/adapters/1688/search.yaml +7 -0
  194. package/src/adapters/1688/store.yaml +7 -0
  195. package/src/adapters/36kr/article.yaml +7 -0
  196. package/src/adapters/36kr/hot.yaml +7 -0
  197. package/src/adapters/36kr/latest.yaml +7 -0
  198. package/src/adapters/36kr/news.yaml +7 -0
  199. package/src/adapters/36kr/search.yaml +7 -0
  200. package/src/adapters/adguardhome/add-rule.yaml +7 -0
  201. package/src/adapters/adguardhome/rules.yaml +7 -0
  202. package/src/adapters/adguardhome/stats.yaml +7 -0
  203. package/src/adapters/adguardhome/status.yaml +7 -0
  204. package/src/adapters/adguardhome/toggle.yaml +7 -0
  205. package/src/adapters/amazon/bestsellers.yaml +7 -0
  206. package/src/adapters/amazon/discussion.yaml +7 -0
  207. package/src/adapters/amazon/movers-shakers.yaml +7 -0
  208. package/src/adapters/amazon/new-releases.yaml +7 -0
  209. package/src/adapters/amazon/offer.yaml +7 -0
  210. package/src/adapters/amazon/product.yaml +7 -0
  211. package/src/adapters/amazon/rankings.yaml +7 -0
  212. package/src/adapters/amazon/search.yaml +7 -0
  213. package/src/adapters/apple-music/rate-album.yaml +71 -0
  214. package/src/adapters/apple-notes/list.yaml +52 -0
  215. package/src/adapters/apple-notes/read.yaml +44 -0
  216. package/src/adapters/apple-notes/search.yaml +43 -0
  217. package/src/adapters/apple-podcasts/episodes.yaml +7 -0
  218. package/src/adapters/apple-podcasts/search.yaml +7 -0
  219. package/src/adapters/apple-podcasts/top.yaml +7 -0
  220. package/src/adapters/arxiv/paper.yaml +7 -0
  221. package/src/adapters/arxiv/search.yaml +7 -0
  222. package/src/adapters/arxiv/trending.yaml +7 -0
  223. package/src/adapters/audacity/convert.yaml +7 -0
  224. package/src/adapters/audacity/effects.yaml +7 -0
  225. package/src/adapters/audacity/info.yaml +7 -0
  226. package/src/adapters/audacity/mix.yaml +7 -0
  227. package/src/adapters/audacity/normalize.yaml +7 -0
  228. package/src/adapters/audacity/spectrogram.yaml +7 -0
  229. package/src/adapters/audacity/split-channels.yaml +7 -0
  230. package/src/adapters/audacity/trim.yaml +7 -0
  231. package/src/adapters/autoagent/eval-run.yaml +7 -0
  232. package/src/adapters/aws/s3-ls.yaml +7 -0
  233. package/src/adapters/az/account.yaml +7 -0
  234. package/src/adapters/baidu/hot.yaml +7 -0
  235. package/src/adapters/baidu/search.yaml +7 -0
  236. package/src/adapters/band/bands.yaml +7 -0
  237. package/src/adapters/band/mentions.yaml +7 -0
  238. package/src/adapters/band/post.yaml +7 -0
  239. package/src/adapters/band/posts.yaml +7 -0
  240. package/src/adapters/barchart/flow.yaml +7 -0
  241. package/src/adapters/barchart/greeks.yaml +7 -0
  242. package/src/adapters/barchart/options.yaml +7 -0
  243. package/src/adapters/barchart/quote.yaml +7 -0
  244. package/src/adapters/bbc/news.yaml +7 -0
  245. package/src/adapters/bbc/technology.yaml +7 -0
  246. package/src/adapters/bbc/top.yaml +7 -0
  247. package/src/adapters/bbc/world.yaml +7 -0
  248. package/src/adapters/bilibili/coin.yaml +7 -0
  249. package/src/adapters/bilibili/dynamic.yaml +7 -0
  250. package/src/adapters/bilibili/favorites.yaml +7 -0
  251. package/src/adapters/bilibili/feed.yaml +7 -0
  252. package/src/adapters/bilibili/following.yaml +7 -0
  253. package/src/adapters/bilibili/history.yaml +7 -0
  254. package/src/adapters/bilibili/hot.yaml +7 -0
  255. package/src/adapters/bilibili/later.yaml +7 -0
  256. package/src/adapters/bilibili/live.yaml +7 -0
  257. package/src/adapters/bilibili/me.yaml +7 -0
  258. package/src/adapters/bilibili/ranking.yaml +7 -0
  259. package/src/adapters/bilibili/trending.yaml +7 -0
  260. package/src/adapters/binance/hot.yaml +7 -0
  261. package/src/adapters/binance/kline.yaml +7 -0
  262. package/src/adapters/binance/ticker.yaml +7 -0
  263. package/src/adapters/blender/animation.yaml +7 -0
  264. package/src/adapters/blender/camera.yaml +7 -0
  265. package/src/adapters/blender/convert.yaml +7 -0
  266. package/src/adapters/blender/export.yaml +7 -0
  267. package/src/adapters/blender/import.yaml +7 -0
  268. package/src/adapters/blender/info.yaml +7 -0
  269. package/src/adapters/blender/lighting.yaml +7 -0
  270. package/src/adapters/blender/materials.yaml +7 -0
  271. package/src/adapters/blender/objects.yaml +7 -0
  272. package/src/adapters/blender/render.yaml +7 -0
  273. package/src/adapters/blender/scene.yaml +7 -0
  274. package/src/adapters/blender/screenshot.yaml +7 -0
  275. package/src/adapters/blender/script.yaml +7 -0
  276. package/src/adapters/bloomberg/businessweek.yaml +7 -0
  277. package/src/adapters/bloomberg/economics.yaml +7 -0
  278. package/src/adapters/bloomberg/feeds.yaml +7 -0
  279. package/src/adapters/bloomberg/industries.yaml +7 -0
  280. package/src/adapters/bloomberg/main.yaml +7 -0
  281. package/src/adapters/bloomberg/markets.yaml +7 -0
  282. package/src/adapters/bloomberg/news.yaml +7 -0
  283. package/src/adapters/bloomberg/opinions.yaml +7 -0
  284. package/src/adapters/bloomberg/politics.yaml +7 -0
  285. package/src/adapters/bloomberg/tech.yaml +7 -0
  286. package/src/adapters/bluesky/feeds.yaml +7 -0
  287. package/src/adapters/bluesky/followers.yaml +7 -0
  288. package/src/adapters/bluesky/following.yaml +7 -0
  289. package/src/adapters/bluesky/likes.yaml +7 -0
  290. package/src/adapters/bluesky/notifications.yaml +7 -0
  291. package/src/adapters/bluesky/post.yaml +7 -0
  292. package/src/adapters/bluesky/profile.yaml +7 -0
  293. package/src/adapters/bluesky/search.yaml +7 -0
  294. package/src/adapters/bluesky/starter-packs.yaml +7 -0
  295. package/src/adapters/bluesky/thread.yaml +7 -0
  296. package/src/adapters/bluesky/trending.yaml +7 -0
  297. package/src/adapters/bluesky/user.yaml +7 -0
  298. package/src/adapters/boss/batchgreet.yaml +7 -0
  299. package/src/adapters/boss/chatlist.yaml +7 -0
  300. package/src/adapters/boss/chatmsg.yaml +7 -0
  301. package/src/adapters/boss/detail.yaml +7 -0
  302. package/src/adapters/boss/exchange.yaml +7 -0
  303. package/src/adapters/boss/greet.yaml +7 -0
  304. package/src/adapters/boss/invite.yaml +7 -0
  305. package/src/adapters/boss/joblist.yaml +7 -0
  306. package/src/adapters/boss/mark.yaml +7 -0
  307. package/src/adapters/boss/recommend.yaml +7 -0
  308. package/src/adapters/boss/resume.yaml +7 -0
  309. package/src/adapters/boss/search.yaml +7 -0
  310. package/src/adapters/boss/send.yaml +7 -0
  311. package/src/adapters/boss/stats.yaml +7 -0
  312. package/src/adapters/chaoxing/assignments.yaml +7 -0
  313. package/src/adapters/chaoxing/exams.yaml +7 -0
  314. package/src/adapters/chrome/bookmarks.yaml +7 -0
  315. package/src/adapters/chrome/tabs.yaml +7 -0
  316. package/src/adapters/claude-code/version.yaml +7 -0
  317. package/src/adapters/cloudcompare/compare.yaml +7 -0
  318. package/src/adapters/cloudcompare/convert.yaml +7 -0
  319. package/src/adapters/cloudcompare/info.yaml +7 -0
  320. package/src/adapters/cloudcompare/subsample.yaml +7 -0
  321. package/src/adapters/cnki/search.yaml +7 -0
  322. package/src/adapters/cnn/technology.yaml +7 -0
  323. package/src/adapters/cnn/top.yaml +7 -0
  324. package/src/adapters/cocoapods/info.yaml +7 -0
  325. package/src/adapters/cocoapods/search.yaml +7 -0
  326. package/src/adapters/codex-cli/version.yaml +7 -0
  327. package/src/adapters/coinbase/prices.yaml +7 -0
  328. package/src/adapters/coinbase/rates.yaml +7 -0
  329. package/src/adapters/comfyui/generate.yaml +7 -0
  330. package/src/adapters/comfyui/history.yaml +7 -0
  331. package/src/adapters/comfyui/nodes.yaml +7 -0
  332. package/src/adapters/comfyui/status.yaml +7 -0
  333. package/src/adapters/coupang/add-to-cart.yaml +7 -0
  334. package/src/adapters/coupang/hot.yaml +7 -0
  335. package/src/adapters/coupang/search.yaml +7 -0
  336. package/src/adapters/crates-io/info.yaml +7 -0
  337. package/src/adapters/crates-io/search.yaml +7 -0
  338. package/src/adapters/crates-io/versions.yaml +7 -0
  339. package/src/adapters/ctrip/hot.yaml +7 -0
  340. package/src/adapters/ctrip/search.yaml +7 -0
  341. package/src/adapters/cua/bench-list.yaml +7 -0
  342. package/src/adapters/cua/bench-run.yaml +7 -0
  343. package/src/adapters/dangdang/hot.yaml +7 -0
  344. package/src/adapters/dangdang/search.yaml +7 -0
  345. package/src/adapters/deepseek/chat.yaml +7 -0
  346. package/src/adapters/deepseek/models.yaml +7 -0
  347. package/src/adapters/devto/latest.yaml +7 -0
  348. package/src/adapters/devto/search.yaml +7 -0
  349. package/src/adapters/devto/tag.yaml +7 -0
  350. package/src/adapters/devto/top.yaml +7 -0
  351. package/src/adapters/devto/user.yaml +7 -0
  352. package/src/adapters/dianping/hot.yaml +7 -0
  353. package/src/adapters/dianping/search.yaml +7 -0
  354. package/src/adapters/dictionary/examples.yaml +7 -0
  355. package/src/adapters/dictionary/search.yaml +7 -0
  356. package/src/adapters/dictionary/synonyms.yaml +7 -0
  357. package/src/adapters/dingtalk/version.yaml +7 -0
  358. package/src/adapters/docker/build.yaml +7 -0
  359. package/src/adapters/docker/images.yaml +7 -0
  360. package/src/adapters/docker/logs.yaml +7 -0
  361. package/src/adapters/docker/networks.yaml +7 -0
  362. package/src/adapters/docker/ps.yaml +7 -0
  363. package/src/adapters/docker/run.yaml +7 -0
  364. package/src/adapters/docker/volumes.yaml +7 -0
  365. package/src/adapters/docker-hub/info.yaml +7 -0
  366. package/src/adapters/docker-hub/search.yaml +7 -0
  367. package/src/adapters/docker-hub/tags.yaml +7 -0
  368. package/src/adapters/doctl/droplets.yaml +7 -0
  369. package/src/adapters/douban/book-hot.yaml +7 -0
  370. package/src/adapters/douban/download.yaml +7 -0
  371. package/src/adapters/douban/group-hot.yaml +7 -0
  372. package/src/adapters/douban/marks.yaml +7 -0
  373. package/src/adapters/douban/movie-hot.yaml +7 -0
  374. package/src/adapters/douban/new-movies.yaml +7 -0
  375. package/src/adapters/douban/photos.yaml +7 -0
  376. package/src/adapters/douban/reviews.yaml +7 -0
  377. package/src/adapters/douban/search.yaml +7 -0
  378. package/src/adapters/douban/subject.yaml +7 -0
  379. package/src/adapters/douban/top250.yaml +7 -0
  380. package/src/adapters/douban/tv-hot.yaml +7 -0
  381. package/src/adapters/doubao/ask.yaml +7 -0
  382. package/src/adapters/doubao/new.yaml +7 -0
  383. package/src/adapters/doubao/status.yaml +7 -0
  384. package/src/adapters/doubao-web/ask.yaml +7 -0
  385. package/src/adapters/doubao-web/detail.yaml +7 -0
  386. package/src/adapters/doubao-web/history.yaml +7 -0
  387. package/src/adapters/doubao-web/meeting-summary.yaml +7 -0
  388. package/src/adapters/doubao-web/meeting-transcript.yaml +7 -0
  389. package/src/adapters/doubao-web/new.yaml +7 -0
  390. package/src/adapters/doubao-web/read.yaml +7 -0
  391. package/src/adapters/doubao-web/send.yaml +7 -0
  392. package/src/adapters/doubao-web/status.yaml +7 -0
  393. package/src/adapters/douyu/hot.yaml +7 -0
  394. package/src/adapters/douyu/search.yaml +7 -0
  395. package/src/adapters/drawio/export.yaml +7 -0
  396. package/src/adapters/eastmoney/fund.yaml +7 -0
  397. package/src/adapters/eastmoney/hot.yaml +7 -0
  398. package/src/adapters/eastmoney/market.yaml +7 -0
  399. package/src/adapters/eastmoney/search.yaml +7 -0
  400. package/src/adapters/ele/hot.yaml +8 -0
  401. package/src/adapters/ele/search.yaml +8 -0
  402. package/src/adapters/exchangerate/convert.yaml +7 -0
  403. package/src/adapters/exchangerate/list.yaml +7 -0
  404. package/src/adapters/facebook/add-friend.yaml +7 -0
  405. package/src/adapters/facebook/events.yaml +7 -0
  406. package/src/adapters/facebook/feed.yaml +7 -0
  407. package/src/adapters/facebook/friends.yaml +7 -0
  408. package/src/adapters/facebook/groups.yaml +7 -0
  409. package/src/adapters/facebook/join-group.yaml +7 -0
  410. package/src/adapters/facebook/marketplace.yaml +7 -0
  411. package/src/adapters/facebook/memories.yaml +7 -0
  412. package/src/adapters/facebook/notifications.yaml +7 -0
  413. package/src/adapters/facebook/post.yaml +7 -0
  414. package/src/adapters/facebook/profile.yaml +7 -0
  415. package/src/adapters/facebook/search.yaml +7 -0
  416. package/src/adapters/feishu/calendar.yaml +7 -0
  417. package/src/adapters/feishu/docs.yaml +7 -0
  418. package/src/adapters/feishu/send.yaml +7 -0
  419. package/src/adapters/feishu/tasks.yaml +7 -0
  420. package/src/adapters/ffmpeg/compress.yaml +7 -0
  421. package/src/adapters/ffmpeg/concat.yaml +7 -0
  422. package/src/adapters/ffmpeg/convert.yaml +7 -0
  423. package/src/adapters/ffmpeg/extract-audio.yaml +7 -0
  424. package/src/adapters/ffmpeg/gif.yaml +7 -0
  425. package/src/adapters/ffmpeg/normalize.yaml +7 -0
  426. package/src/adapters/ffmpeg/probe.yaml +7 -0
  427. package/src/adapters/ffmpeg/resize.yaml +7 -0
  428. package/src/adapters/ffmpeg/subtitles.yaml +7 -0
  429. package/src/adapters/ffmpeg/thumbnail.yaml +7 -0
  430. package/src/adapters/ffmpeg/trim.yaml +7 -0
  431. package/src/adapters/figma/export-selected.yaml +67 -0
  432. package/src/adapters/flyctl/apps.yaml +7 -0
  433. package/src/adapters/freecad/assembly.yaml +7 -0
  434. package/src/adapters/freecad/bom.yaml +7 -0
  435. package/src/adapters/freecad/boolean.yaml +7 -0
  436. package/src/adapters/freecad/check.yaml +7 -0
  437. package/src/adapters/freecad/convert.yaml +7 -0
  438. package/src/adapters/freecad/export-stl.yaml +7 -0
  439. package/src/adapters/freecad/import.yaml +7 -0
  440. package/src/adapters/freecad/info.yaml +7 -0
  441. package/src/adapters/freecad/macro.yaml +7 -0
  442. package/src/adapters/freecad/measure.yaml +7 -0
  443. package/src/adapters/freecad/mesh.yaml +7 -0
  444. package/src/adapters/freecad/properties.yaml +7 -0
  445. package/src/adapters/freecad/render.yaml +7 -0
  446. package/src/adapters/freecad/section.yaml +7 -0
  447. package/src/adapters/freecad/sketch.yaml +7 -0
  448. package/src/adapters/futu/hot.yaml +7 -0
  449. package/src/adapters/futu/quote.yaml +7 -0
  450. package/src/adapters/gcloud/projects.yaml +7 -0
  451. package/src/adapters/gemini/ask.yaml +7 -0
  452. package/src/adapters/gemini/deep-research-result.yaml +7 -0
  453. package/src/adapters/gemini/deep-research.yaml +7 -0
  454. package/src/adapters/gemini/image.yaml +7 -0
  455. package/src/adapters/gemini/new.yaml +7 -0
  456. package/src/adapters/gh/issue.yaml +7 -0
  457. package/src/adapters/gh/pr.yaml +7 -0
  458. package/src/adapters/gh/release.yaml +7 -0
  459. package/src/adapters/gh/repo.yaml +7 -0
  460. package/src/adapters/gh/run.yaml +7 -0
  461. package/src/adapters/gimp/adjust.yaml +7 -0
  462. package/src/adapters/gimp/batch.yaml +7 -0
  463. package/src/adapters/gimp/convert.yaml +7 -0
  464. package/src/adapters/gimp/crop.yaml +7 -0
  465. package/src/adapters/gimp/filter.yaml +7 -0
  466. package/src/adapters/gimp/flip.yaml +7 -0
  467. package/src/adapters/gimp/info.yaml +7 -0
  468. package/src/adapters/gimp/layers.yaml +7 -0
  469. package/src/adapters/gimp/merge-layers.yaml +7 -0
  470. package/src/adapters/gimp/resize.yaml +7 -0
  471. package/src/adapters/gimp/rotate.yaml +7 -0
  472. package/src/adapters/gimp/text.yaml +7 -0
  473. package/src/adapters/gitee/repos.yaml +7 -0
  474. package/src/adapters/gitee/search.yaml +7 -0
  475. package/src/adapters/gitee/trending.yaml +7 -0
  476. package/src/adapters/github-trending/daily.yaml +7 -0
  477. package/src/adapters/github-trending/developers.yaml +7 -0
  478. package/src/adapters/github-trending/weekly.yaml +7 -0
  479. package/src/adapters/gitlab/projects.yaml +7 -0
  480. package/src/adapters/gitlab/search.yaml +7 -0
  481. package/src/adapters/gitlab/trending.yaml +7 -0
  482. package/src/adapters/godot/project-run.yaml +7 -0
  483. package/src/adapters/godot/scene-export.yaml +7 -0
  484. package/src/adapters/google/news.yaml +7 -0
  485. package/src/adapters/google/search.yaml +7 -0
  486. package/src/adapters/google/suggest.yaml +7 -0
  487. package/src/adapters/google/trends.yaml +7 -0
  488. package/src/adapters/grok/ask.yaml +7 -0
  489. package/src/adapters/hackernews/ask.yaml +7 -0
  490. package/src/adapters/hackernews/best.yaml +7 -0
  491. package/src/adapters/hackernews/comments.yaml +7 -0
  492. package/src/adapters/hackernews/item.yaml +7 -0
  493. package/src/adapters/hackernews/jobs.yaml +7 -0
  494. package/src/adapters/hackernews/new.yaml +7 -0
  495. package/src/adapters/hackernews/search.yaml +7 -0
  496. package/src/adapters/hackernews/show.yaml +7 -0
  497. package/src/adapters/hackernews/top.yaml +7 -0
  498. package/src/adapters/hackernews/user.yaml +7 -0
  499. package/src/adapters/hermes/sessions-search.yaml +7 -0
  500. package/src/adapters/hermes/skills-list.yaml +7 -0
  501. package/src/adapters/hermes/skills-read.yaml +7 -0
  502. package/src/adapters/hf/datasets.yaml +7 -0
  503. package/src/adapters/hf/models.yaml +7 -0
  504. package/src/adapters/hf/spaces.yaml +7 -0
  505. package/src/adapters/hf/top.yaml +7 -0
  506. package/src/adapters/homebrew/info.yaml +7 -0
  507. package/src/adapters/homebrew/search.yaml +7 -0
  508. package/src/adapters/huggingface-papers/daily.yaml +7 -0
  509. package/src/adapters/huggingface-papers/search.yaml +7 -0
  510. package/src/adapters/hupu/detail.yaml +7 -0
  511. package/src/adapters/hupu/hot.yaml +7 -0
  512. package/src/adapters/hupu/like.yaml +7 -0
  513. package/src/adapters/hupu/mentions.yaml +7 -0
  514. package/src/adapters/hupu/reply.yaml +7 -0
  515. package/src/adapters/hupu/search.yaml +7 -0
  516. package/src/adapters/hupu/unlike.yaml +7 -0
  517. package/src/adapters/imagemagick/compare.yaml +7 -0
  518. package/src/adapters/imagemagick/composite.yaml +7 -0
  519. package/src/adapters/imagemagick/convert.yaml +7 -0
  520. package/src/adapters/imagemagick/identify.yaml +7 -0
  521. package/src/adapters/imagemagick/montage.yaml +7 -0
  522. package/src/adapters/imagemagick/resize.yaml +7 -0
  523. package/src/adapters/imdb/box-office.yaml +7 -0
  524. package/src/adapters/imdb/person.yaml +7 -0
  525. package/src/adapters/imdb/reviews.yaml +7 -0
  526. package/src/adapters/imdb/search.yaml +7 -0
  527. package/src/adapters/imdb/title.yaml +7 -0
  528. package/src/adapters/imdb/top.yaml +7 -0
  529. package/src/adapters/imdb/trending.yaml +7 -0
  530. package/src/adapters/imessage/contact.yaml +73 -0
  531. package/src/adapters/imessage/recent.yaml +66 -0
  532. package/src/adapters/imessage/search.yaml +75 -0
  533. package/src/adapters/infoq/articles.yaml +7 -0
  534. package/src/adapters/infoq/latest.yaml +7 -0
  535. package/src/adapters/inkscape/convert.yaml +7 -0
  536. package/src/adapters/inkscape/export.yaml +7 -0
  537. package/src/adapters/inkscape/optimize.yaml +7 -0
  538. package/src/adapters/instagram/activity.yaml +7 -0
  539. package/src/adapters/instagram/comment.yaml +7 -0
  540. package/src/adapters/instagram/explore.yaml +7 -0
  541. package/src/adapters/instagram/follow.yaml +7 -0
  542. package/src/adapters/instagram/followers.yaml +7 -0
  543. package/src/adapters/instagram/following.yaml +7 -0
  544. package/src/adapters/instagram/highlights.yaml +7 -0
  545. package/src/adapters/instagram/like.yaml +7 -0
  546. package/src/adapters/instagram/profile.yaml +7 -0
  547. package/src/adapters/instagram/reels-trending.yaml +7 -0
  548. package/src/adapters/instagram/reels.yaml +7 -0
  549. package/src/adapters/instagram/save.yaml +7 -0
  550. package/src/adapters/instagram/saved.yaml +7 -0
  551. package/src/adapters/instagram/search.yaml +7 -0
  552. package/src/adapters/instagram/stories.yaml +7 -0
  553. package/src/adapters/instagram/suggested.yaml +7 -0
  554. package/src/adapters/instagram/tags.yaml +7 -0
  555. package/src/adapters/instagram/unfollow.yaml +7 -0
  556. package/src/adapters/instagram/unlike.yaml +7 -0
  557. package/src/adapters/instagram/unsave.yaml +7 -0
  558. package/src/adapters/instagram/user.yaml +7 -0
  559. package/src/adapters/ip-info/lookup.yaml +7 -0
  560. package/src/adapters/itch-io/popular.yaml +7 -0
  561. package/src/adapters/itch-io/search.yaml +7 -0
  562. package/src/adapters/itch-io/top.yaml +7 -0
  563. package/src/adapters/ithome/hot.yaml +7 -0
  564. package/src/adapters/ithome/latest.yaml +7 -0
  565. package/src/adapters/ithome/news.yaml +7 -0
  566. package/src/adapters/jd/hot.yaml +7 -0
  567. package/src/adapters/jd/item.yaml +7 -0
  568. package/src/adapters/jd/search.yaml +7 -0
  569. package/src/adapters/jianyu/search.yaml +7 -0
  570. package/src/adapters/jike/feed.yaml +7 -0
  571. package/src/adapters/jike/notifications.yaml +7 -0
  572. package/src/adapters/jike/post.yaml +7 -0
  573. package/src/adapters/jike/search.yaml +7 -0
  574. package/src/adapters/jike/topic.yaml +7 -0
  575. package/src/adapters/jike/user.yaml +7 -0
  576. package/src/adapters/jimeng/generate.yaml +7 -0
  577. package/src/adapters/jimeng/history.yaml +7 -0
  578. package/src/adapters/jq/format.yaml +7 -0
  579. package/src/adapters/jq/query.yaml +7 -0
  580. package/src/adapters/kdenlive/effects.yaml +7 -0
  581. package/src/adapters/kdenlive/info.yaml +7 -0
  582. package/src/adapters/kdenlive/render.yaml +7 -0
  583. package/src/adapters/ke/ershoufang.yaml +7 -0
  584. package/src/adapters/ke/xiaoqu.yaml +7 -0
  585. package/src/adapters/krita/batch.yaml +7 -0
  586. package/src/adapters/krita/convert.yaml +7 -0
  587. package/src/adapters/krita/export.yaml +7 -0
  588. package/src/adapters/krita/info.yaml +7 -0
  589. package/src/adapters/kuaishou/hot.yaml +8 -0
  590. package/src/adapters/kuaishou/search.yaml +8 -0
  591. package/src/adapters/lark/version.yaml +7 -0
  592. package/src/adapters/lesswrong/comments.yaml +7 -0
  593. package/src/adapters/lesswrong/curated.yaml +7 -0
  594. package/src/adapters/lesswrong/frontpage.yaml +7 -0
  595. package/src/adapters/lesswrong/new.yaml +7 -0
  596. package/src/adapters/lesswrong/read.yaml +7 -0
  597. package/src/adapters/lesswrong/sequences.yaml +7 -0
  598. package/src/adapters/lesswrong/shortform.yaml +7 -0
  599. package/src/adapters/lesswrong/tag.yaml +7 -0
  600. package/src/adapters/lesswrong/tags.yaml +7 -0
  601. package/src/adapters/lesswrong/top-month.yaml +7 -0
  602. package/src/adapters/lesswrong/top-week.yaml +7 -0
  603. package/src/adapters/lesswrong/top-year.yaml +7 -0
  604. package/src/adapters/lesswrong/top.yaml +7 -0
  605. package/src/adapters/lesswrong/user-posts.yaml +7 -0
  606. package/src/adapters/lesswrong/user.yaml +7 -0
  607. package/src/adapters/libreoffice/convert.yaml +7 -0
  608. package/src/adapters/libreoffice/print.yaml +7 -0
  609. package/src/adapters/linear/issue-create.yaml +98 -0
  610. package/src/adapters/linear/issue-list.yaml +87 -0
  611. package/src/adapters/linear/issue-update.yaml +100 -0
  612. package/src/adapters/linkedin/jobs.yaml +7 -0
  613. package/src/adapters/linkedin/profile.yaml +7 -0
  614. package/src/adapters/linkedin/search.yaml +7 -0
  615. package/src/adapters/linkedin/timeline.yaml +7 -0
  616. package/src/adapters/linux-do/categories.yaml +7 -0
  617. package/src/adapters/linux-do/category.yaml +7 -0
  618. package/src/adapters/linux-do/feed.yaml +7 -0
  619. package/src/adapters/linux-do/hot.yaml +7 -0
  620. package/src/adapters/linux-do/latest.yaml +7 -0
  621. package/src/adapters/linux-do/search.yaml +7 -0
  622. package/src/adapters/linux-do/tags.yaml +7 -0
  623. package/src/adapters/linux-do/topic.yaml +7 -0
  624. package/src/adapters/linux-do/user-posts.yaml +7 -0
  625. package/src/adapters/linux-do/user-topics.yaml +7 -0
  626. package/src/adapters/lobsters/active.yaml +7 -0
  627. package/src/adapters/lobsters/hot.yaml +7 -0
  628. package/src/adapters/lobsters/newest.yaml +7 -0
  629. package/src/adapters/lobsters/search.yaml +7 -0
  630. package/src/adapters/lobsters/tag.yaml +7 -0
  631. package/src/adapters/macos/active-app.yaml +7 -0
  632. package/src/adapters/macos/apps-list.yaml +7 -0
  633. package/src/adapters/macos/apps.yaml +7 -0
  634. package/src/adapters/macos/battery.yaml +7 -0
  635. package/src/adapters/macos/bluetooth.yaml +7 -0
  636. package/src/adapters/macos/brightness.yaml +7 -0
  637. package/src/adapters/macos/caffeinate.yaml +7 -0
  638. package/src/adapters/macos/calendar-create.yaml +7 -0
  639. package/src/adapters/macos/calendar-list.yaml +7 -0
  640. package/src/adapters/macos/calendar-today.yaml +7 -0
  641. package/src/adapters/macos/clipboard.yaml +7 -0
  642. package/src/adapters/macos/contacts-search.yaml +7 -0
  643. package/src/adapters/macos/dark-mode.yaml +7 -0
  644. package/src/adapters/macos/disk-info.yaml +7 -0
  645. package/src/adapters/macos/disk-usage.yaml +7 -0
  646. package/src/adapters/macos/do-not-disturb.yaml +7 -0
  647. package/src/adapters/macos/empty-trash.yaml +7 -0
  648. package/src/adapters/macos/finder-copy.yaml +7 -0
  649. package/src/adapters/macos/finder-move.yaml +7 -0
  650. package/src/adapters/macos/finder-new-folder.yaml +7 -0
  651. package/src/adapters/macos/finder-recent.yaml +7 -0
  652. package/src/adapters/macos/finder-selection.yaml +7 -0
  653. package/src/adapters/macos/finder-tags.yaml +7 -0
  654. package/src/adapters/macos/lock-screen.yaml +7 -0
  655. package/src/adapters/macos/mail-send.yaml +7 -0
  656. package/src/adapters/macos/mail-status.yaml +7 -0
  657. package/src/adapters/macos/messages-send.yaml +7 -0
  658. package/src/adapters/macos/music-control.yaml +7 -0
  659. package/src/adapters/macos/music-now.yaml +7 -0
  660. package/src/adapters/macos/notes-list.yaml +7 -0
  661. package/src/adapters/macos/notes-search.yaml +7 -0
  662. package/src/adapters/macos/notification.yaml +7 -0
  663. package/src/adapters/macos/notify.yaml +7 -0
  664. package/src/adapters/macos/open-app.yaml +7 -0
  665. package/src/adapters/macos/open.yaml +7 -0
  666. package/src/adapters/macos/photos-search.yaml +7 -0
  667. package/src/adapters/macos/processes.yaml +7 -0
  668. package/src/adapters/macos/reminder-create.yaml +7 -0
  669. package/src/adapters/macos/reminders-complete.yaml +7 -0
  670. package/src/adapters/macos/reminders-list.yaml +7 -0
  671. package/src/adapters/macos/safari-history.yaml +7 -0
  672. package/src/adapters/macos/safari-tabs.yaml +7 -0
  673. package/src/adapters/macos/safari-url.yaml +7 -0
  674. package/src/adapters/macos/say.yaml +7 -0
  675. package/src/adapters/macos/screen-lock.yaml +7 -0
  676. package/src/adapters/macos/screen-recording.yaml +7 -0
  677. package/src/adapters/macos/screenshot.yaml +7 -0
  678. package/src/adapters/macos/shortcuts-list.yaml +7 -0
  679. package/src/adapters/macos/shortcuts-run.yaml +7 -0
  680. package/src/adapters/macos/sleep.yaml +7 -0
  681. package/src/adapters/macos/spotlight.yaml +7 -0
  682. package/src/adapters/macos/system-info.yaml +7 -0
  683. package/src/adapters/macos/trash.yaml +7 -0
  684. package/src/adapters/macos/uptime.yaml +7 -0
  685. package/src/adapters/macos/volume.yaml +7 -0
  686. package/src/adapters/macos/wallpaper.yaml +7 -0
  687. package/src/adapters/macos/wifi-info.yaml +7 -0
  688. package/src/adapters/macos/wifi.yaml +7 -0
  689. package/src/adapters/maimai/search.yaml +7 -0
  690. package/src/adapters/maoyan/hot.yaml +7 -0
  691. package/src/adapters/maoyan/search.yaml +7 -0
  692. package/src/adapters/mastodon/search.yaml +7 -0
  693. package/src/adapters/mastodon/timeline.yaml +7 -0
  694. package/src/adapters/mastodon/trending.yaml +7 -0
  695. package/src/adapters/mastodon/user.yaml +7 -0
  696. package/src/adapters/medium/article.yaml +7 -0
  697. package/src/adapters/medium/feed.yaml +7 -0
  698. package/src/adapters/medium/search.yaml +7 -0
  699. package/src/adapters/medium/trending.yaml +7 -0
  700. package/src/adapters/medium/user.yaml +7 -0
  701. package/src/adapters/meituan/hot.yaml +7 -0
  702. package/src/adapters/meituan/search.yaml +7 -0
  703. package/src/adapters/mermaid/render.yaml +7 -0
  704. package/src/adapters/minimax/chat.yaml +7 -0
  705. package/src/adapters/minimax/models.yaml +7 -0
  706. package/src/adapters/minimax/tts.yaml +7 -0
  707. package/src/adapters/motion-studio/component-get.yaml +7 -0
  708. package/src/adapters/mubu/list.yaml +7 -0
  709. package/src/adapters/mubu/search.yaml +14 -0
  710. package/src/adapters/musescore/convert.yaml +7 -0
  711. package/src/adapters/musescore/export.yaml +7 -0
  712. package/src/adapters/musescore/info.yaml +7 -0
  713. package/src/adapters/musescore/instruments.yaml +7 -0
  714. package/src/adapters/musescore/transpose.yaml +7 -0
  715. package/src/adapters/neonctl/projects.yaml +7 -0
  716. package/src/adapters/netease-music/hot.yaml +7 -0
  717. package/src/adapters/netease-music/playlist.yaml +7 -0
  718. package/src/adapters/netease-music/search.yaml +7 -0
  719. package/src/adapters/netease-music/top.yaml +7 -0
  720. package/src/adapters/netlify/sites.yaml +7 -0
  721. package/src/adapters/notebooklm/current.yaml +7 -0
  722. package/src/adapters/notebooklm/get.yaml +7 -0
  723. package/src/adapters/notebooklm/history.yaml +7 -0
  724. package/src/adapters/notebooklm/list.yaml +7 -0
  725. package/src/adapters/notebooklm/note-list.yaml +7 -0
  726. package/src/adapters/notebooklm/notes-get.yaml +7 -0
  727. package/src/adapters/notebooklm/open.yaml +7 -0
  728. package/src/adapters/notebooklm/rpc.yaml +7 -0
  729. package/src/adapters/notebooklm/shared.yaml +7 -0
  730. package/src/adapters/notebooklm/source-fulltext.yaml +7 -0
  731. package/src/adapters/notebooklm/source-get.yaml +7 -0
  732. package/src/adapters/notebooklm/source-guide.yaml +7 -0
  733. package/src/adapters/notebooklm/source-list.yaml +7 -0
  734. package/src/adapters/notebooklm/status.yaml +7 -0
  735. package/src/adapters/notebooklm/summary.yaml +7 -0
  736. package/src/adapters/notion/databases.yaml +7 -0
  737. package/src/adapters/notion/pages.yaml +7 -0
  738. package/src/adapters/notion/search.yaml +7 -0
  739. package/src/adapters/novita/generate.yaml +7 -0
  740. package/src/adapters/novita/models.yaml +7 -0
  741. package/src/adapters/novita/status.yaml +7 -0
  742. package/src/adapters/npm/downloads.yaml +7 -0
  743. package/src/adapters/npm/info.yaml +7 -0
  744. package/src/adapters/npm/search.yaml +7 -0
  745. package/src/adapters/npm/versions.yaml +7 -0
  746. package/src/adapters/npm-trends/compare.yaml +7 -0
  747. package/src/adapters/npm-trends/trending.yaml +7 -0
  748. package/src/adapters/nytimes/search.yaml +7 -0
  749. package/src/adapters/nytimes/top.yaml +7 -0
  750. package/src/adapters/obs/record-start.yaml +7 -0
  751. package/src/adapters/obs/record-stop.yaml +7 -0
  752. package/src/adapters/obs/scenes.yaml +7 -0
  753. package/src/adapters/obs/screenshot.yaml +7 -0
  754. package/src/adapters/obs/sources.yaml +7 -0
  755. package/src/adapters/obs/status.yaml +7 -0
  756. package/src/adapters/obs/stream-start.yaml +7 -0
  757. package/src/adapters/obs/stream-stop.yaml +7 -0
  758. package/src/adapters/obsidian/daily.yaml +7 -0
  759. package/src/adapters/obsidian/open.yaml +7 -0
  760. package/src/adapters/obsidian/search.yaml +7 -0
  761. package/src/adapters/ollama/generate.yaml +7 -0
  762. package/src/adapters/ollama/list.yaml +7 -0
  763. package/src/adapters/ollama/models.yaml +7 -0
  764. package/src/adapters/ollama/ps.yaml +7 -0
  765. package/src/adapters/ones/enrich-tasks.yaml +7 -0
  766. package/src/adapters/ones/login.yaml +7 -0
  767. package/src/adapters/ones/logout.yaml +7 -0
  768. package/src/adapters/ones/me.yaml +7 -0
  769. package/src/adapters/ones/my-tasks.yaml +7 -0
  770. package/src/adapters/ones/resolve-labels.yaml +7 -0
  771. package/src/adapters/ones/task-helpers.yaml +7 -0
  772. package/src/adapters/ones/task.yaml +7 -0
  773. package/src/adapters/ones/tasks.yaml +7 -0
  774. package/src/adapters/ones/token-info.yaml +7 -0
  775. package/src/adapters/ones/worklog.yaml +7 -0
  776. package/src/adapters/opencode/version.yaml +7 -0
  777. package/src/adapters/openharness/memory-read.yaml +7 -0
  778. package/src/adapters/openharness/skills-list.yaml +7 -0
  779. package/src/adapters/openrouter/models.yaml +7 -0
  780. package/src/adapters/openrouter/search.yaml +7 -0
  781. package/src/adapters/pandoc/convert.yaml +7 -0
  782. package/src/adapters/paperreview/feedback.yaml +7 -0
  783. package/src/adapters/paperreview/review.yaml +7 -0
  784. package/src/adapters/paperreview/submit.yaml +7 -0
  785. package/src/adapters/perplexity/ask.yaml +7 -0
  786. package/src/adapters/pexels/curated.yaml +7 -0
  787. package/src/adapters/pexels/search.yaml +7 -0
  788. package/src/adapters/pinduoduo/hot.yaml +7 -0
  789. package/src/adapters/pinduoduo/search.yaml +7 -0
  790. package/src/adapters/pixiv/detail.yaml +7 -0
  791. package/src/adapters/pixiv/download.yaml +7 -0
  792. package/src/adapters/pixiv/illusts.yaml +7 -0
  793. package/src/adapters/pixiv/ranking.yaml +7 -0
  794. package/src/adapters/pixiv/search.yaml +7 -0
  795. package/src/adapters/pixiv/user.yaml +7 -0
  796. package/src/adapters/producthunt/browse.yaml +7 -0
  797. package/src/adapters/producthunt/hot.yaml +7 -0
  798. package/src/adapters/producthunt/posts.yaml +7 -0
  799. package/src/adapters/producthunt/search.yaml +7 -0
  800. package/src/adapters/producthunt/today.yaml +7 -0
  801. package/src/adapters/pscale/databases.yaml +7 -0
  802. package/src/adapters/pypi/info.yaml +7 -0
  803. package/src/adapters/pypi/search.yaml +7 -0
  804. package/src/adapters/pypi/versions.yaml +7 -0
  805. package/src/adapters/quark/ls.yaml +7 -0
  806. package/src/adapters/quark/search.yaml +7 -0
  807. package/src/adapters/qweather/forecast.yaml +7 -0
  808. package/src/adapters/qweather/now.yaml +7 -0
  809. package/src/adapters/railway/deploy.yaml +7 -0
  810. package/src/adapters/reddit/comment.yaml +7 -0
  811. package/src/adapters/reddit/comments.yaml +7 -0
  812. package/src/adapters/reddit/frontpage.yaml +7 -0
  813. package/src/adapters/reddit/hot.yaml +7 -0
  814. package/src/adapters/reddit/new.yaml +7 -0
  815. package/src/adapters/reddit/popular.yaml +7 -0
  816. package/src/adapters/reddit/read.yaml +7 -0
  817. package/src/adapters/reddit/rising.yaml +7 -0
  818. package/src/adapters/reddit/save.yaml +7 -0
  819. package/src/adapters/reddit/saved.yaml +7 -0
  820. package/src/adapters/reddit/search.yaml +7 -0
  821. package/src/adapters/reddit/subreddit.yaml +7 -0
  822. package/src/adapters/reddit/subscribe.yaml +7 -0
  823. package/src/adapters/reddit/top.yaml +7 -0
  824. package/src/adapters/reddit/trending.yaml +7 -0
  825. package/src/adapters/reddit/upvote.yaml +7 -0
  826. package/src/adapters/reddit/upvoted.yaml +7 -0
  827. package/src/adapters/reddit/user-comments.yaml +7 -0
  828. package/src/adapters/reddit/user-posts.yaml +7 -0
  829. package/src/adapters/reddit/user.yaml +7 -0
  830. package/src/adapters/renderdoc/capture-list.yaml +7 -0
  831. package/src/adapters/renderdoc/frame-export.yaml +7 -0
  832. package/src/adapters/replicate/run.yaml +7 -0
  833. package/src/adapters/replicate/search.yaml +7 -0
  834. package/src/adapters/replicate/trending.yaml +7 -0
  835. package/src/adapters/reuters/article.yaml +7 -0
  836. package/src/adapters/reuters/latest.yaml +7 -0
  837. package/src/adapters/reuters/search.yaml +7 -0
  838. package/src/adapters/reuters/top.yaml +7 -0
  839. package/src/adapters/shotcut/effects.yaml +7 -0
  840. package/src/adapters/shotcut/info.yaml +7 -0
  841. package/src/adapters/shotcut/render.yaml +7 -0
  842. package/src/adapters/sinablog/article.yaml +7 -0
  843. package/src/adapters/sinablog/hot.yaml +7 -0
  844. package/src/adapters/sinablog/search.yaml +7 -0
  845. package/src/adapters/sinablog/user.yaml +7 -0
  846. package/src/adapters/sinafinance/market.yaml +7 -0
  847. package/src/adapters/sinafinance/news.yaml +7 -0
  848. package/src/adapters/sinafinance/rolling-news.yaml +7 -0
  849. package/src/adapters/sinafinance/stock-rank.yaml +7 -0
  850. package/src/adapters/sinafinance/stock.yaml +7 -0
  851. package/src/adapters/sketch/artboards.yaml +7 -0
  852. package/src/adapters/sketch/export.yaml +7 -0
  853. package/src/adapters/sketch/symbols.yaml +7 -0
  854. package/src/adapters/slack/channels.yaml +7 -0
  855. package/src/adapters/slack/messages.yaml +7 -0
  856. package/src/adapters/slack/post.yaml +7 -0
  857. package/src/adapters/slack/search.yaml +7 -0
  858. package/src/adapters/slack/send.yaml +7 -0
  859. package/src/adapters/slack/status.yaml +7 -0
  860. package/src/adapters/slack/users.yaml +7 -0
  861. package/src/adapters/slay-the-spire-ii/deck.yaml +7 -0
  862. package/src/adapters/slay-the-spire-ii/end-turn.yaml +7 -0
  863. package/src/adapters/slay-the-spire-ii/map.yaml +7 -0
  864. package/src/adapters/slay-the-spire-ii/play-card.yaml +7 -0
  865. package/src/adapters/slay-the-spire-ii/status.yaml +7 -0
  866. package/src/adapters/slay-the-spire-ii/use-potion.yaml +7 -0
  867. package/src/adapters/slock/servers.yaml +7 -0
  868. package/src/adapters/smzdm/article.yaml +7 -0
  869. package/src/adapters/smzdm/hot.yaml +7 -0
  870. package/src/adapters/smzdm/search.yaml +7 -0
  871. package/src/adapters/spotify/now-playing.yaml +7 -0
  872. package/src/adapters/spotify/playlists.yaml +7 -0
  873. package/src/adapters/spotify/search.yaml +7 -0
  874. package/src/adapters/spotify/top-tracks.yaml +7 -0
  875. package/src/adapters/sspai/hot.yaml +7 -0
  876. package/src/adapters/sspai/latest.yaml +7 -0
  877. package/src/adapters/stackoverflow/bounties.yaml +7 -0
  878. package/src/adapters/stackoverflow/hot.yaml +7 -0
  879. package/src/adapters/stackoverflow/question.yaml +7 -0
  880. package/src/adapters/stackoverflow/search.yaml +7 -0
  881. package/src/adapters/stackoverflow/tags.yaml +7 -0
  882. package/src/adapters/stackoverflow/unanswered.yaml +7 -0
  883. package/src/adapters/stagehand/wrap-observe.yaml +7 -0
  884. package/src/adapters/steam/app-details.yaml +7 -0
  885. package/src/adapters/steam/new-releases.yaml +7 -0
  886. package/src/adapters/steam/search.yaml +7 -0
  887. package/src/adapters/steam/specials.yaml +7 -0
  888. package/src/adapters/steam/top-sellers.yaml +7 -0
  889. package/src/adapters/steam/wishlist.yaml +7 -0
  890. package/src/adapters/substack/feed.yaml +7 -0
  891. package/src/adapters/substack/publication.yaml +7 -0
  892. package/src/adapters/substack/search.yaml +7 -0
  893. package/src/adapters/substack/trending.yaml +7 -0
  894. package/src/adapters/supabase/projects.yaml +7 -0
  895. package/src/adapters/taobao/hot.yaml +7 -0
  896. package/src/adapters/taobao/search.yaml +7 -0
  897. package/src/adapters/techcrunch/latest.yaml +7 -0
  898. package/src/adapters/techcrunch/search.yaml +7 -0
  899. package/src/adapters/theverge/latest.yaml +7 -0
  900. package/src/adapters/theverge/search.yaml +7 -0
  901. package/src/adapters/threads/hot.yaml +8 -0
  902. package/src/adapters/threads/search.yaml +8 -0
  903. package/src/adapters/tieba/hot.yaml +7 -0
  904. package/src/adapters/tieba/posts.yaml +7 -0
  905. package/src/adapters/tieba/read.yaml +7 -0
  906. package/src/adapters/tieba/search.yaml +7 -0
  907. package/src/adapters/tiktok/comment.yaml +7 -0
  908. package/src/adapters/tiktok/explore.yaml +7 -0
  909. package/src/adapters/tiktok/follow.yaml +7 -0
  910. package/src/adapters/tiktok/following.yaml +7 -0
  911. package/src/adapters/tiktok/friends.yaml +7 -0
  912. package/src/adapters/tiktok/like.yaml +7 -0
  913. package/src/adapters/tiktok/live.yaml +7 -0
  914. package/src/adapters/tiktok/notifications.yaml +7 -0
  915. package/src/adapters/tiktok/profile.yaml +7 -0
  916. package/src/adapters/tiktok/save.yaml +7 -0
  917. package/src/adapters/tiktok/search.yaml +7 -0
  918. package/src/adapters/tiktok/trending.yaml +7 -0
  919. package/src/adapters/tiktok/unfollow.yaml +7 -0
  920. package/src/adapters/tiktok/unlike.yaml +7 -0
  921. package/src/adapters/tiktok/unsave.yaml +7 -0
  922. package/src/adapters/tiktok/user.yaml +7 -0
  923. package/src/adapters/toutiao/hot.yaml +7 -0
  924. package/src/adapters/toutiao/search.yaml +8 -0
  925. package/src/adapters/twitch/games.yaml +7 -0
  926. package/src/adapters/twitch/search.yaml +7 -0
  927. package/src/adapters/twitch/streams.yaml +7 -0
  928. package/src/adapters/twitch/top.yaml +7 -0
  929. package/src/adapters/twitter/lists.yaml +7 -0
  930. package/src/adapters/twitter/media.yaml +7 -0
  931. package/src/adapters/twitter/mentions.yaml +7 -0
  932. package/src/adapters/twitter/mute.yaml +7 -0
  933. package/src/adapters/twitter/pin.yaml +7 -0
  934. package/src/adapters/twitter/quotes.yaml +7 -0
  935. package/src/adapters/twitter/retweets.yaml +7 -0
  936. package/src/adapters/twitter/spaces.yaml +7 -0
  937. package/src/adapters/twitter/unmute.yaml +7 -0
  938. package/src/adapters/unsplash/random.yaml +7 -0
  939. package/src/adapters/unsplash/search.yaml +7 -0
  940. package/src/adapters/v2ex/daily.yaml +7 -0
  941. package/src/adapters/v2ex/hot.yaml +7 -0
  942. package/src/adapters/v2ex/latest.yaml +7 -0
  943. package/src/adapters/v2ex/me.yaml +7 -0
  944. package/src/adapters/v2ex/member.yaml +7 -0
  945. package/src/adapters/v2ex/node.yaml +7 -0
  946. package/src/adapters/v2ex/nodes.yaml +7 -0
  947. package/src/adapters/v2ex/notifications.yaml +7 -0
  948. package/src/adapters/v2ex/replies.yaml +7 -0
  949. package/src/adapters/v2ex/search.yaml +7 -0
  950. package/src/adapters/v2ex/topic.yaml +7 -0
  951. package/src/adapters/v2ex/user.yaml +7 -0
  952. package/src/adapters/vercel/list.yaml +7 -0
  953. package/src/adapters/vscode/extensions.yaml +7 -0
  954. package/src/adapters/vscode/install-ext.yaml +7 -0
  955. package/src/adapters/vscode/open.yaml +7 -0
  956. package/src/adapters/web/read.yaml +7 -0
  957. package/src/adapters/wechat-channels/hot.yaml +8 -0
  958. package/src/adapters/wechat-channels/search.yaml +15 -0
  959. package/src/adapters/weibo/comments.yaml +7 -0
  960. package/src/adapters/weibo/feed.yaml +7 -0
  961. package/src/adapters/weibo/hot.yaml +7 -0
  962. package/src/adapters/weibo/me.yaml +7 -0
  963. package/src/adapters/weibo/post.yaml +7 -0
  964. package/src/adapters/weibo/profile.yaml +7 -0
  965. package/src/adapters/weibo/search.yaml +7 -0
  966. package/src/adapters/weibo/timeline.yaml +7 -0
  967. package/src/adapters/weibo/trending.yaml +7 -0
  968. package/src/adapters/weibo/user.yaml +7 -0
  969. package/src/adapters/weixin/article.yaml +7 -0
  970. package/src/adapters/weixin/download.yaml +7 -0
  971. package/src/adapters/weixin/hot.yaml +7 -0
  972. package/src/adapters/weixin/search.yaml +7 -0
  973. package/src/adapters/weread/book.yaml +7 -0
  974. package/src/adapters/weread/highlights.yaml +7 -0
  975. package/src/adapters/weread/notebooks.yaml +7 -0
  976. package/src/adapters/weread/notes.yaml +7 -0
  977. package/src/adapters/weread/ranking.yaml +7 -0
  978. package/src/adapters/weread/search.yaml +7 -0
  979. package/src/adapters/weread/shelf.yaml +7 -0
  980. package/src/adapters/wikipedia/random.yaml +7 -0
  981. package/src/adapters/wikipedia/search.yaml +7 -0
  982. package/src/adapters/wikipedia/summary.yaml +7 -0
  983. package/src/adapters/wikipedia/today.yaml +7 -0
  984. package/src/adapters/wikipedia/trending.yaml +7 -0
  985. package/src/adapters/wiremock/create-stub.yaml +7 -0
  986. package/src/adapters/wiremock/delete-stub.yaml +7 -0
  987. package/src/adapters/wiremock/reset.yaml +7 -0
  988. package/src/adapters/wiremock/stubs.yaml +7 -0
  989. package/src/adapters/wiremock/verify.yaml +7 -0
  990. package/src/adapters/wrangler/list.yaml +7 -0
  991. package/src/adapters/xianyu/chat.yaml +7 -0
  992. package/src/adapters/xianyu/item.yaml +7 -0
  993. package/src/adapters/xianyu/search.yaml +8 -0
  994. package/src/adapters/xiaoe/catalog.yaml +7 -0
  995. package/src/adapters/xiaoe/content.yaml +7 -0
  996. package/src/adapters/xiaoe/courses.yaml +7 -0
  997. package/src/adapters/xiaoe/detail.yaml +7 -0
  998. package/src/adapters/xiaoe/play-url.yaml +7 -0
  999. package/src/adapters/xiaohongshu/feed.yaml +7 -0
  1000. package/src/adapters/xiaohongshu/follow.yaml +7 -0
  1001. package/src/adapters/xiaohongshu/hashtag.yaml +7 -0
  1002. package/src/adapters/xiaohongshu/hot.yaml +7 -0
  1003. package/src/adapters/xiaohongshu/like.yaml +7 -0
  1004. package/src/adapters/xiaohongshu/notifications.yaml +7 -0
  1005. package/src/adapters/xiaohongshu/profile.yaml +7 -0
  1006. package/src/adapters/xiaohongshu/save.yaml +7 -0
  1007. package/src/adapters/xiaohongshu/suggest.yaml +7 -0
  1008. package/src/adapters/xiaohongshu/trending.yaml +7 -0
  1009. package/src/adapters/xiaohongshu/unfollow.yaml +7 -0
  1010. package/src/adapters/xiaoyuzhou/episode.yaml +7 -0
  1011. package/src/adapters/xiaoyuzhou/podcast-episodes.yaml +7 -0
  1012. package/src/adapters/xiaoyuzhou/podcast.yaml +7 -0
  1013. package/src/adapters/xueqiu/comments.yaml +7 -0
  1014. package/src/adapters/xueqiu/earnings-date.yaml +7 -0
  1015. package/src/adapters/xueqiu/feed.yaml +7 -0
  1016. package/src/adapters/xueqiu/fund-holdings.yaml +7 -0
  1017. package/src/adapters/xueqiu/fund-snapshot.yaml +7 -0
  1018. package/src/adapters/xueqiu/hot-stock.yaml +7 -0
  1019. package/src/adapters/xueqiu/hot.yaml +7 -0
  1020. package/src/adapters/xueqiu/market.yaml +7 -0
  1021. package/src/adapters/xueqiu/quote.yaml +7 -0
  1022. package/src/adapters/xueqiu/search.yaml +7 -0
  1023. package/src/adapters/xueqiu/stock.yaml +7 -0
  1024. package/src/adapters/xueqiu/watchlist.yaml +7 -0
  1025. package/src/adapters/yahoo-finance/quote.yaml +7 -0
  1026. package/src/adapters/yahoo-finance/search.yaml +7 -0
  1027. package/src/adapters/yahoo-finance/trending.yaml +7 -0
  1028. package/src/adapters/ycombinator/launches.yaml +7 -0
  1029. package/src/adapters/yollomi/background.yaml +7 -0
  1030. package/src/adapters/yollomi/edit.yaml +7 -0
  1031. package/src/adapters/yollomi/face-swap.yaml +7 -0
  1032. package/src/adapters/yollomi/generate.yaml +7 -0
  1033. package/src/adapters/yollomi/models.yaml +7 -0
  1034. package/src/adapters/yollomi/object-remover.yaml +7 -0
  1035. package/src/adapters/yollomi/remove-bg.yaml +7 -0
  1036. package/src/adapters/yollomi/restore.yaml +7 -0
  1037. package/src/adapters/yollomi/try-on.yaml +7 -0
  1038. package/src/adapters/yollomi/upload.yaml +7 -0
  1039. package/src/adapters/yollomi/upscale.yaml +7 -0
  1040. package/src/adapters/yollomi/video.yaml +7 -0
  1041. package/src/adapters/youtube/playlist.yaml +7 -0
  1042. package/src/adapters/youtube/shorts.yaml +7 -0
  1043. package/src/adapters/youtube/trending.yaml +7 -0
  1044. package/src/adapters/yt-dlp/download.yaml +7 -0
  1045. package/src/adapters/yt-dlp/extract-audio.yaml +7 -0
  1046. package/src/adapters/yt-dlp/info.yaml +7 -0
  1047. package/src/adapters/yt-dlp/search.yaml +7 -0
  1048. package/src/adapters/yuanbao/ask.yaml +7 -0
  1049. package/src/adapters/yuanbao/new.yaml +7 -0
  1050. package/src/adapters/yuanbao/shared.yaml +7 -0
  1051. package/src/adapters/zhihu/answer.yaml +7 -0
  1052. package/src/adapters/zhihu/answers.yaml +7 -0
  1053. package/src/adapters/zhihu/article.yaml +7 -0
  1054. package/src/adapters/zhihu/articles.yaml +7 -0
  1055. package/src/adapters/zhihu/collections.yaml +7 -0
  1056. package/src/adapters/zhihu/columns.yaml +7 -0
  1057. package/src/adapters/zhihu/comment.yaml +7 -0
  1058. package/src/adapters/zhihu/download.yaml +7 -0
  1059. package/src/adapters/zhihu/feed.yaml +7 -0
  1060. package/src/adapters/zhihu/followers.yaml +7 -0
  1061. package/src/adapters/zhihu/following.yaml +7 -0
  1062. package/src/adapters/zhihu/hot.yaml +7 -0
  1063. package/src/adapters/zhihu/me.yaml +7 -0
  1064. package/src/adapters/zhihu/notifications.yaml +7 -0
  1065. package/src/adapters/zhihu/pins.yaml +7 -0
  1066. package/src/adapters/zhihu/question.yaml +7 -0
  1067. package/src/adapters/zhihu/search.yaml +7 -0
  1068. package/src/adapters/zhihu/topic.yaml +7 -0
  1069. package/src/adapters/zhihu/topics.yaml +7 -0
  1070. package/src/adapters/zhihu/trending.yaml +7 -0
  1071. package/src/adapters/zhihu/user.yaml +7 -0
  1072. package/src/adapters/zoom/join.yaml +7 -0
  1073. package/src/adapters/zoom/start.yaml +7 -0
  1074. package/src/adapters/zoom/toggle-mute.yaml +37 -0
  1075. package/src/adapters/zotero/add-note.yaml +7 -0
  1076. package/src/adapters/zotero/add-tag.yaml +7 -0
  1077. package/src/adapters/zotero/collections.yaml +7 -0
  1078. package/src/adapters/zotero/export.yaml +7 -0
  1079. package/src/adapters/zotero/items.yaml +7 -0
  1080. package/src/adapters/zotero/notes.yaml +7 -0
  1081. package/src/adapters/zotero/search.yaml +7 -0
  1082. package/src/adapters/zotero/tags.yaml +7 -0
  1083. package/src/adapters/zsxq/dynamics.yaml +7 -0
  1084. package/src/adapters/zsxq/groups.yaml +7 -0
  1085. package/src/adapters/zsxq/search.yaml +7 -0
  1086. package/src/adapters/zsxq/topic.yaml +7 -0
  1087. package/src/adapters/zsxq/topics.yaml +7 -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 -->1146<!-- /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
727
181
 
728
- ## Write an Adapter
182
+ Five auth strategies, auto-probed in a cascade (`public → cookie → header`):
729
183
 
730
- Most adapters are ~20 lines of YAML:
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) |
191
+
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
+ ```
197
+
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,91 @@ 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]
221
+ columns: [title, score, url]
752
222
  ```
753
223
 
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`):
224
+ Five adapter types: `web-api`, `desktop`, `browser`, `bridge`, `service`. 29 template filters (`join`, `urlencode`, `truncate`, `slugify`, `default`, `json`, …) run in a sandboxed VM.
761
225
 
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) |
226
+ Scaffold, dev, test:
769
227
 
770
228
  ```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
229
+ unicli init <site> <command> # Scaffold new adapter
230
+ unicli dev <path> # Hot-reload during dev
231
+ unicli test <site> # Validate
232
+ unicli record <url> # Auto-generate adapter from traffic
774
233
  ```
775
234
 
776
- ## Browser Daemon
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`.
236
+
237
+ ## Search
777
238
 
778
- Persistent background process that reuses your Chrome login sessions — no cookie export, no extension install:
239
+ Agents find commands by intent, bilingual:
779
240
 
780
241
  ```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
788
- unicli record <url> # Auto-generate adapter from traffic
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
789
246
  ```
790
247
 
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.
248
+ BM25 + TF-IDF scoring with a 200-entry ZH↔EN alias table. The index is 50KB, queries complete in under 10ms.
792
249
 
793
- ## Agent Integration
250
+ ## Theory + benchmarks
794
251
 
795
- Works with every major agent platform:
252
+ The design rests on five principles, each tied to a citation in [`docs/refs.bib`](docs/refs.bib):
796
253
 
797
- ```bash
798
- # Claude Code / Codex CLI direct shell
799
- unicli twitter search "AI agents"
800
-
801
- # MCPone command to expose all 969 commands
802
- unicli mcp serve
803
-
804
- # AGENTS.md — discovery file already included in repo
805
- cat AGENTS.md
806
- ```
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.
807
259
 
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 |
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).
815
261
 
816
262
  ## Development
817
263
 
818
264
  ```bash
819
265
  git clone https://github.com/olo-dot-io/Uni-CLI.git && cd Uni-CLI
820
- npm install && npm run verify
266
+ npm install
267
+ npm run verify # typecheck + lint + test + build + stats check
821
268
  ```
822
269
 
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 |
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 -->1146<!-- /STATS -->) |
277
+ | `npm run test:adapter` | Validate all adapters |
278
+ | `npm run verify` | Full pipeline (7 gates) |
832
279
 
833
- 7 production dependencies: `chalk`, `cli-table3`, `commander`, `js-yaml`, `turndown`, `undici`, `ws`.
280
+ Seven production dependencies: `chalk`, `cli-table3`, `commander`, `js-yaml`, `turndown`, `undici`, `ws`.
834
281
 
835
282
  ## Contributing
836
283
 
837
- The fastest way to contribute: write a [20-line YAML adapter](./CONTRIBUTING.md) for a site you use.
284
+ 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/):
838
285
 
839
- ```bash
840
- unicli init <site> <command> # Scaffold new adapter
841
- unicli dev <path> # Hot-reload during dev
842
- unicli test <site> # Validate
843
- ```
844
-
845
- ## Search & Discovery
846
-
847
- Agents find commands through bilingual semantic search — no need to memorize site names.
848
-
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
- ```
855
-
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.
857
-
858
- ## Agent Integration
859
-
860
- ```bash
861
- # CLI direct (any agent with shell access)
862
- npm install -g @zenalexa/unicli
863
-
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
- ```
873
-
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) |
879
-
880
- The MCP server exposes 4 meta-tools by default (~200 tokens). `unicli_search` provides bilingual semantic search across all 1020 commands.
286
+ | Area | Guide |
287
+ | ---------------- | -------------------------------------------------------- |
288
+ | New adapter | [`contributing/adapter.md`](contributing/adapter.md) |
289
+ | New transport | [`contributing/transport.md`](contributing/transport.md) |
290
+ | CUA backend | [`contributing/cua.md`](contributing/cua.md) |
291
+ | MCP server | [`contributing/mcp.md`](contributing/mcp.md) |
292
+ | ACP integration | [`contributing/acp.md`](contributing/acp.md) |
293
+ | Release process | [`contributing/release.md`](contributing/release.md) |
294
+ | Schema migration | [`contributing/schema.md`](contributing/schema.md) |
881
295
 
882
296
  ## License
883
297
 
884
298
  [Apache-2.0](./LICENSE)
885
299
 
300
+ Repo: <https://github.com/olo-dot-io/Uni-CLI> · npm: [`@zenalexa/unicli`](https://www.npmjs.com/package/@zenalexa/unicli) · Issues welcome.
301
+
886
302
  ---
887
303
 
888
304
  <p align="center">
@@ -893,5 +309,5 @@ The MCP server exposes 4 meta-tools by default (~200 tokens). `unicli_search` pr
893
309
 
894
310
  <p align="center">
895
311
  <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>
312
+ <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 -->1146<!-- /STATS --> tests</sub>
897
313
  </p>