@zenalexa/unicli 0.218.0 → 0.219.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/AGENTS.md +59 -1
  2. package/README.md +278 -10
  3. package/README.zh-CN.md +278 -10
  4. package/bin/unicli-mcp +14 -0
  5. package/dist/bin/unicli-mcp.d.ts +10 -0
  6. package/dist/bin/unicli-mcp.d.ts.map +1 -0
  7. package/dist/bin/unicli-mcp.js +10 -0
  8. package/dist/bin/unicli-mcp.js.map +1 -0
  9. package/dist/cli.js +1 -1
  10. package/dist/cli.js.map +1 -1
  11. package/dist/commands/adapter-authoring.d.ts +28 -0
  12. package/dist/commands/adapter-authoring.d.ts.map +1 -0
  13. package/dist/commands/adapter-authoring.js +231 -0
  14. package/dist/commands/adapter-authoring.js.map +1 -0
  15. package/dist/commands/browser/actions.d.ts +13 -0
  16. package/dist/commands/browser/actions.d.ts.map +1 -0
  17. package/dist/commands/{browser-operator.js → browser/actions.js} +19 -12
  18. package/dist/commands/browser/actions.js.map +1 -0
  19. package/dist/commands/browser/adapter.d.ts +10 -0
  20. package/dist/commands/browser/adapter.d.ts.map +1 -0
  21. package/dist/commands/{browser-adapter-authoring.js → browser/adapter.js} +14 -7
  22. package/dist/commands/browser/adapter.js.map +1 -0
  23. package/dist/commands/browser/authoring.d.ts +10 -0
  24. package/dist/commands/browser/authoring.d.ts.map +1 -0
  25. package/dist/commands/{browser-authoring-operator.js → browser/authoring.js} +12 -5
  26. package/dist/commands/browser/authoring.js.map +1 -0
  27. package/dist/commands/browser/index.d.ts +10 -0
  28. package/dist/commands/browser/index.d.ts.map +1 -0
  29. package/dist/commands/{browser.js → browser/index.js} +13 -14
  30. package/dist/commands/browser/index.js.map +1 -0
  31. package/dist/commands/{browser-operator-runtime.d.ts → browser/runtime.d.ts} +9 -2
  32. package/dist/commands/browser/runtime.d.ts.map +1 -0
  33. package/dist/commands/{browser-operator-runtime.js → browser/runtime.js} +16 -9
  34. package/dist/commands/browser/runtime.js.map +1 -0
  35. package/dist/commands/explore.d.ts +5 -5
  36. package/dist/commands/explore.d.ts.map +1 -1
  37. package/dist/commands/explore.js +7 -97
  38. package/dist/commands/explore.js.map +1 -1
  39. package/dist/commands/generate.d.ts +5 -5
  40. package/dist/commands/generate.d.ts.map +1 -1
  41. package/dist/commands/generate.js +8 -179
  42. package/dist/commands/generate.js.map +1 -1
  43. package/dist/commands/operate.js +1 -1
  44. package/dist/commands/operate.js.map +1 -1
  45. package/dist/commands/synthesize.d.ts +5 -5
  46. package/dist/commands/synthesize.d.ts.map +1 -1
  47. package/dist/commands/synthesize.js +8 -161
  48. package/dist/commands/synthesize.js.map +1 -1
  49. package/dist/discovery/aliases.d.ts +5 -10
  50. package/dist/discovery/aliases.d.ts.map +1 -1
  51. package/dist/discovery/aliases.js +10 -10
  52. package/dist/discovery/aliases.js.map +1 -1
  53. package/dist/engine/browser/action-evidence.js +1 -1
  54. package/dist/engine/browser/action-evidence.js.map +1 -1
  55. package/dist/engine/steps/map.d.ts +7 -0
  56. package/dist/engine/steps/map.d.ts.map +1 -1
  57. package/dist/engine/steps/map.js +16 -2
  58. package/dist/engine/steps/map.js.map +1 -1
  59. package/dist/manifest-compact.txt +2 -2
  60. package/dist/manifest-search.json +1 -1
  61. package/dist/manifest.json +341 -169
  62. package/package.json +24 -9
  63. package/server.json +44 -0
  64. package/skills/README.md +39 -0
  65. package/skills/talk-normal/SKILL.md +25 -0
  66. package/skills/talk-normal/prompt.md +35 -0
  67. package/skills/unicli/SKILL.md +389 -0
  68. package/skills/unicli/references/auth.md +188 -0
  69. package/skills/unicli/references/output.md +238 -0
  70. package/skills/unicli/references/sites.md +259 -0
  71. package/skills/unicli-browser/SKILL.md +99 -0
  72. package/skills/unicli-claude-code/SKILL.md +172 -0
  73. package/skills/unicli-explorer/SKILL.md +90 -0
  74. package/skills/unicli-hermes/SKILL.md +83 -0
  75. package/skills/unicli-oneshot/SKILL.md +59 -0
  76. package/skills/unicli-operate/SKILL.md +113 -0
  77. package/skills/unicli-repair/SKILL.md +209 -0
  78. package/skills/unicli-repair/references/error-codes.md +149 -0
  79. package/skills/unicli-repair/references/yaml-patches.md +321 -0
  80. package/skills/unicli-smart-search/SKILL.md +80 -0
  81. package/skills/unicli-usage/SKILL.md +65 -0
  82. package/src/adapters/36kr/hot.yaml +1 -0
  83. package/src/adapters/36kr/search.yaml +1 -0
  84. package/src/adapters/_archived/README.md +12 -0
  85. package/src/adapters/{apple-music → _archived/apple-music}/rate-album.yaml +5 -12
  86. package/src/adapters/_archived/archive.json +44 -0
  87. package/src/adapters/{az → _archived/az}/account.yaml +5 -1
  88. package/src/adapters/{ctrip → _archived/ctrip}/hot.yaml +5 -1
  89. package/src/adapters/{ctrip → _archived/ctrip}/search.yaml +6 -2
  90. package/src/adapters/{gcloud → _archived/gcloud}/projects.yaml +5 -1
  91. package/src/adapters/amazon/new-releases.yaml +1 -0
  92. package/src/adapters/amazon/search.yaml +1 -0
  93. package/src/adapters/apple-podcasts/search.yaml +1 -0
  94. package/src/adapters/apple-podcasts/top.yaml +1 -0
  95. package/src/adapters/arxiv/search.yaml +1 -0
  96. package/src/adapters/arxiv/trending.yaml +1 -0
  97. package/src/adapters/baidu/hot.yaml +1 -0
  98. package/src/adapters/baidu/search.yaml +1 -0
  99. package/src/adapters/bbc/top.yaml +1 -0
  100. package/src/adapters/bilibili/feed.yaml +1 -0
  101. package/src/adapters/bilibili/hot.yaml +1 -0
  102. package/src/adapters/bilibili/trending.yaml +1 -0
  103. package/src/adapters/binance/hot.yaml +1 -0
  104. package/src/adapters/binance/top.yaml +1 -0
  105. package/src/adapters/bluesky/search.yaml +1 -0
  106. package/src/adapters/bluesky/trending.yaml +1 -0
  107. package/src/adapters/cnki/search.yaml +1 -0
  108. package/src/adapters/cnn/top.yaml +1 -0
  109. package/src/adapters/coupang/hot.yaml +1 -0
  110. package/src/adapters/coupang/search.yaml +1 -0
  111. package/src/adapters/dangdang/hot.yaml +1 -0
  112. package/src/adapters/dangdang/search.yaml +1 -0
  113. package/src/adapters/devto/search.yaml +1 -0
  114. package/src/adapters/devto/top.yaml +1 -0
  115. package/src/adapters/dianping/hot.yaml +1 -0
  116. package/src/adapters/dianping/search.yaml +1 -0
  117. package/src/adapters/dictionary/search.yaml +1 -0
  118. package/src/adapters/douban/new-movies.yaml +1 -0
  119. package/src/adapters/douban/search.yaml +1 -0
  120. package/src/adapters/doubao/new.yaml +1 -0
  121. package/src/adapters/douyu/hot.yaml +1 -0
  122. package/src/adapters/douyu/search.yaml +1 -0
  123. package/src/adapters/eastmoney/hot.yaml +1 -0
  124. package/src/adapters/eastmoney/search.yaml +1 -0
  125. package/src/adapters/ele/hot.yaml +1 -0
  126. package/src/adapters/ele/search.yaml +1 -0
  127. package/src/adapters/exchangerate/list.yaml +1 -0
  128. package/src/adapters/facebook/feed.yaml +1 -0
  129. package/src/adapters/facebook/search.yaml +1 -0
  130. package/src/adapters/futu/hot.yaml +1 -0
  131. package/src/adapters/gemini/deep-research-result.yaml +1 -0
  132. package/src/adapters/gemini/new.yaml +1 -0
  133. package/src/adapters/gh/search-repos.yaml +1 -0
  134. package/src/adapters/gitee/search.yaml +1 -0
  135. package/src/adapters/gitee/trending.yaml +1 -0
  136. package/src/adapters/gitlab/search.yaml +1 -0
  137. package/src/adapters/gitlab/trending.yaml +1 -0
  138. package/src/adapters/google/search.yaml +1 -0
  139. package/src/adapters/hf/top.yaml +1 -0
  140. package/src/adapters/huggingface-papers/search.yaml +1 -0
  141. package/src/adapters/imdb/search.yaml +1 -0
  142. package/src/adapters/imdb/top.yaml +1 -0
  143. package/src/adapters/imdb/trending.yaml +1 -0
  144. package/src/adapters/imessage/recent.yaml +1 -0
  145. package/src/adapters/imessage/search.yaml +1 -0
  146. package/src/adapters/instagram/search.yaml +1 -0
  147. package/src/adapters/itch-io/popular.yaml +1 -0
  148. package/src/adapters/itch-io/search.yaml +1 -0
  149. package/src/adapters/itch-io/top.yaml +1 -0
  150. package/src/adapters/ithome/hot.yaml +1 -0
  151. package/src/adapters/jianyu/search.yaml +1 -0
  152. package/src/adapters/jike/feed.yaml +1 -0
  153. package/src/adapters/jike/search.yaml +1 -0
  154. package/src/adapters/juejin/hot.yaml +1 -0
  155. package/src/adapters/juejin/search.yaml +1 -0
  156. package/src/adapters/kuaishou/hot.yaml +1 -0
  157. package/src/adapters/kuaishou/search.yaml +1 -0
  158. package/src/adapters/leetcode/discuss-search.yaml +1 -0
  159. package/src/adapters/linear/issue-list.yaml +1 -0
  160. package/src/adapters/linkedin/search.yaml +1 -0
  161. package/src/adapters/linkedin/timeline.yaml +1 -0
  162. package/src/adapters/linux-do/feed.yaml +1 -0
  163. package/src/adapters/linux-do/hot.yaml +1 -0
  164. package/src/adapters/lobsters/hot.yaml +1 -0
  165. package/src/adapters/lobsters/search.yaml +1 -0
  166. package/src/adapters/macos/apps-list.yaml +1 -0
  167. package/src/adapters/macos/calendar-list.yaml +1 -0
  168. package/src/adapters/macos/contacts-search.yaml +1 -0
  169. package/src/adapters/macos/notes-list.yaml +1 -0
  170. package/src/adapters/macos/notes-search.yaml +1 -0
  171. package/src/adapters/macos/photos-search.yaml +1 -0
  172. package/src/adapters/macos/reminders-list.yaml +1 -0
  173. package/src/adapters/macos/shortcuts-list.yaml +1 -0
  174. package/src/adapters/maimai/search.yaml +1 -0
  175. package/src/adapters/maoyan/hot.yaml +1 -0
  176. package/src/adapters/maoyan/search.yaml +1 -0
  177. package/src/adapters/mastodon/search.yaml +1 -0
  178. package/src/adapters/mastodon/timeline.yaml +1 -0
  179. package/src/adapters/mastodon/trending.yaml +1 -0
  180. package/src/adapters/maven/info.yaml +46 -0
  181. package/src/adapters/maven/search.yaml +44 -0
  182. package/src/adapters/medium/feed.yaml +1 -0
  183. package/src/adapters/medium/search.yaml +1 -0
  184. package/src/adapters/medium/trending.yaml +1 -0
  185. package/src/adapters/meituan/search.yaml +1 -0
  186. package/src/adapters/mubu/list.yaml +1 -0
  187. package/src/adapters/mubu/search.yaml +1 -0
  188. package/src/adapters/netease-music/hot.yaml +1 -0
  189. package/src/adapters/netease-music/search.yaml +1 -0
  190. package/src/adapters/netease-music/top.yaml +1 -0
  191. package/src/adapters/notion/search.yaml +1 -0
  192. package/src/adapters/npm-trends/trending.yaml +1 -0
  193. package/src/adapters/nuget/info.yaml +41 -0
  194. package/src/adapters/nuget/search.yaml +43 -0
  195. package/src/adapters/nytimes/search.yaml +1 -0
  196. package/src/adapters/nytimes/top.yaml +1 -0
  197. package/src/adapters/obs/stream-start.yaml +1 -0
  198. package/src/adapters/obs/stream-stop.yaml +1 -0
  199. package/src/adapters/obsidian/search.yaml +1 -0
  200. package/src/adapters/ollama/list.yaml +1 -0
  201. package/src/adapters/openrouter/search.yaml +1 -0
  202. package/src/adapters/packagist/info.yaml +34 -0
  203. package/src/adapters/packagist/search.yaml +41 -0
  204. package/src/adapters/pexels/search.yaml +1 -0
  205. package/src/adapters/pinduoduo/hot.yaml +1 -0
  206. package/src/adapters/pinduoduo/search.yaml +1 -0
  207. package/src/adapters/powerpoint/list.yaml +1 -0
  208. package/src/adapters/producthunt/browse.yaml +1 -0
  209. package/src/adapters/producthunt/hot.yaml +1 -0
  210. package/src/adapters/producthunt/search.yaml +1 -0
  211. package/src/adapters/pub-dev/info.yaml +34 -0
  212. package/src/adapters/pub-dev/search.yaml +43 -0
  213. package/src/adapters/quark/search.yaml +1 -0
  214. package/src/adapters/replicate/search.yaml +1 -0
  215. package/src/adapters/replicate/trending.yaml +1 -0
  216. package/src/adapters/reuters/search.yaml +1 -0
  217. package/src/adapters/reuters/top.yaml +1 -0
  218. package/src/adapters/rubygems/info.yaml +27 -0
  219. package/src/adapters/rubygems/search.yaml +39 -0
  220. package/src/adapters/sinablog/hot.yaml +1 -0
  221. package/src/adapters/sinablog/search.yaml +1 -0
  222. package/src/adapters/slack/search.yaml +1 -0
  223. package/src/adapters/smzdm/hot.yaml +1 -0
  224. package/src/adapters/smzdm/search.yaml +1 -0
  225. package/src/adapters/spotify/search.yaml +1 -0
  226. package/src/adapters/spotify/top-tracks.yaml +1 -0
  227. package/src/adapters/sspai/hot.yaml +1 -0
  228. package/src/adapters/stackoverflow/hot.yaml +1 -0
  229. package/src/adapters/stackoverflow/search.yaml +1 -0
  230. package/src/adapters/steam/new-releases.yaml +1 -0
  231. package/src/adapters/steam/search.yaml +1 -0
  232. package/src/adapters/steam/top-sellers.yaml +1 -0
  233. package/src/adapters/substack/feed.yaml +1 -0
  234. package/src/adapters/substack/search.yaml +1 -0
  235. package/src/adapters/substack/trending.yaml +1 -0
  236. package/src/adapters/taobao/hot.yaml +1 -0
  237. package/src/adapters/taobao/search.yaml +1 -0
  238. package/src/adapters/techcrunch/search.yaml +1 -0
  239. package/src/adapters/theverge/search.yaml +1 -0
  240. package/src/adapters/threads/hot.yaml +1 -0
  241. package/src/adapters/threads/search.yaml +1 -0
  242. package/src/adapters/tiktok/search.yaml +1 -0
  243. package/src/adapters/tiktok/trending.yaml +1 -0
  244. package/src/adapters/toutiao/hot.yaml +1 -0
  245. package/src/adapters/toutiao/search.yaml +1 -0
  246. package/src/adapters/twitch/search.yaml +1 -0
  247. package/src/adapters/twitch/top.yaml +1 -0
  248. package/src/adapters/unsplash/search.yaml +1 -0
  249. package/src/adapters/v2ex/hot.yaml +1 -0
  250. package/src/adapters/v2ex/search.yaml +1 -0
  251. package/src/adapters/vercel/list.yaml +1 -0
  252. package/src/adapters/wechat-channels/hot.yaml +1 -0
  253. package/src/adapters/wechat-channels/search.yaml +1 -0
  254. package/src/adapters/weibo/feed.yaml +1 -0
  255. package/src/adapters/weibo/hot.yaml +1 -0
  256. package/src/adapters/weibo/search.yaml +1 -0
  257. package/src/adapters/weibo/timeline.yaml +1 -0
  258. package/src/adapters/weibo/trending.yaml +1 -0
  259. package/src/adapters/weixin/hot.yaml +1 -0
  260. package/src/adapters/weixin/search.yaml +1 -0
  261. package/src/adapters/weread/search.yaml +1 -0
  262. package/src/adapters/wikipedia/search.yaml +1 -0
  263. package/src/adapters/wikipedia/trending.yaml +1 -0
  264. package/src/adapters/wrangler/list.yaml +1 -0
  265. package/src/adapters/xiaohongshu/feed.yaml +1 -0
  266. package/src/adapters/xiaohongshu/hot.yaml +1 -0
  267. package/src/adapters/xiaohongshu/trending.yaml +1 -0
  268. package/src/adapters/xueqiu/feed.yaml +1 -0
  269. package/src/adapters/xueqiu/hot-stock.yaml +1 -0
  270. package/src/adapters/xueqiu/hot.yaml +1 -0
  271. package/src/adapters/xueqiu/search.yaml +1 -0
  272. package/src/adapters/yahoo-finance/search.yaml +1 -0
  273. package/src/adapters/yahoo-finance/trending.yaml +1 -0
  274. package/src/adapters/youtube/trending.yaml +1 -0
  275. package/src/adapters/yuanbao/new.yaml +1 -0
  276. package/src/adapters/zhihu/feed.yaml +1 -0
  277. package/src/adapters/zhihu/hot.yaml +1 -0
  278. package/src/adapters/zhihu/search.yaml +1 -0
  279. package/src/adapters/zhihu/trending.yaml +1 -0
  280. package/src/adapters/zotero/search.yaml +1 -0
  281. package/src/adapters/zsxq/search.yaml +1 -0
  282. package/dist/commands/browser-adapter-authoring.d.ts +0 -3
  283. package/dist/commands/browser-adapter-authoring.d.ts.map +0 -1
  284. package/dist/commands/browser-adapter-authoring.js.map +0 -1
  285. package/dist/commands/browser-authoring-operator.d.ts +0 -3
  286. package/dist/commands/browser-authoring-operator.d.ts.map +0 -1
  287. package/dist/commands/browser-authoring-operator.js.map +0 -1
  288. package/dist/commands/browser-operator-runtime.d.ts.map +0 -1
  289. package/dist/commands/browser-operator-runtime.js.map +0 -1
  290. package/dist/commands/browser-operator.d.ts +0 -6
  291. package/dist/commands/browser-operator.d.ts.map +0 -1
  292. package/dist/commands/browser-operator.js.map +0 -1
  293. package/dist/commands/browser.d.ts +0 -11
  294. package/dist/commands/browser.d.ts.map +0 -1
  295. package/dist/commands/browser.js.map +0 -1
  296. package/dist/mcp/sse-transport.d.ts +0 -34
  297. package/dist/mcp/sse-transport.d.ts.map +0 -1
  298. package/dist/mcp/sse-transport.js +0 -182
  299. package/dist/mcp/sse-transport.js.map +0 -1
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: unicli-smart-search
3
+ description: >
4
+ Route search queries to the best platform via unicli. Use when searching across
5
+ websites, social media, tech forums, news, finance, shopping, or academic sources.
6
+ version: 1.0.0
7
+ triggers:
8
+ - "search"
9
+ - "find information"
10
+ - "trending"
11
+ - "hot topics"
12
+ - "unicli search"
13
+ allowed-tools: [Bash]
14
+ protocol: 2.0
15
+ ---
16
+
17
+ ## When to Use
18
+
19
+ Searching for information, checking trending topics, or gathering data across platforms.
20
+ Commands return a v2 AgentEnvelope; pass `-f json` when you need JSON for parsing.
21
+
22
+ ## Pre-Check
23
+
24
+ ```bash
25
+ unicli <site> --help # Verify subcommands exist
26
+ unicli <site> <command> --help # Check args and output columns
27
+ ```
28
+
29
+ ## Search Routing
30
+
31
+ | Category | Command |
32
+ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
+ | **Web** | `unicli google search <q>`, `unicli baidu search <q>` |
34
+ | **Tech** | `unicli hackernews top`, `unicli hackernews search <q>`, `unicli stackoverflow hot`, `unicli lobsters hot`, `unicli v2ex hot`, `unicli linux-do hot` |
35
+ | **Social** | `unicli twitter search <q>`, `unicli twitter trending`, `unicli reddit search <q>`, `unicli reddit hot`, `unicli weibo hot`, `unicli zhihu hot`, `unicli tieba hot`, `unicli threads hot` |
36
+ | **Finance** | `unicli xueqiu hot`, `unicli xueqiu hot-stock`, `unicli binance hot`, `unicli eastmoney hot`, `unicli bloomberg markets`, `unicli yahoo-finance search <q>` |
37
+ | **Academic** | `unicli arxiv search <q>`, `unicli arxiv paper <id>` |
38
+ | **Shopping** | `unicli amazon search <q>`, `unicli jd search <q>`, `unicli taobao search <q>`, `unicli smzdm hot`, `unicli xianyu search <q>` |
39
+ | **Video** | `unicli bilibili hot`, `unicli bilibili search <q>`, `unicli youtube search <q>`, `unicli tiktok search <q>` |
40
+ | **News** | `unicli toutiao hot`, `unicli 36kr hot`, `unicli bbc hot`, `unicli cnn top`, `unicli nytimes top`, `unicli reuters top` |
41
+ | **Dev** | `unicli github-trending`, `unicli producthunt hot`, `unicli docker-hub search <q>` |
42
+ | **Reading** | `unicli douban search <q>`, `unicli douban top250`, `unicli weread ranking`, `unicli wikipedia search <q>` |
43
+ | **Jobs** | `unicli boss search <q>`, `unicli linkedin search <q>`, `unicli maimai search <q>` |
44
+
45
+ ## Multi-Source Pattern
46
+
47
+ For comprehensive research, query 2-3 complementary sources:
48
+
49
+ ```bash
50
+ # Tech topic
51
+ unicli hackernews search "LLM agents" --limit 10
52
+ unicli reddit search "LLM agents" --limit 10
53
+ unicli arxiv search "LLM agents" --limit 5
54
+
55
+ # Chinese trending
56
+ unicli weibo hot --limit 20
57
+ unicli zhihu hot --limit 20
58
+
59
+ # Market research
60
+ unicli producthunt hot --limit 10
61
+ unicli hackernews search "startup" --limit 10
62
+ ```
63
+
64
+ ## Output Handling
65
+
66
+ ```bash
67
+ unicli hackernews top --limit 5 | jq '.[].title'
68
+ unicli xueqiu hot | jq '.[] | {name, change}'
69
+ ```
70
+
71
+ ## Fallback
72
+
73
+ - Exit 77 -> `unicli auth setup <site>` then retry
74
+ - Exit 69 -> `unicli browser start` then retry
75
+ - Exit 66 -> try different query terms
76
+ - Site down -> switch to alternative from routing table
77
+
78
+ ## Budget
79
+
80
+ Per question: 1-2 primary sources + 1 supplementary. Do not query same site twice.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: unicli-usage
3
+ description: >
4
+ Command reference and usage guide for unicli — the universal CLI for AI agents.
5
+ Use when you need to discover, run, or pipe unicli commands.
6
+ ---
7
+
8
+ # unicli Usage Guide
9
+
10
+ ## Quick Reference
11
+
12
+ ```bash
13
+ unicli list # List all available commands
14
+ unicli list --type web-api # Filter by adapter type
15
+ unicli list --site bilibili # Filter by site name
16
+
17
+ unicli <site> <command> [options] # Run any command
18
+ unicli hackernews top --limit 5 # Example: HN top stories
19
+ unicli hackernews search "AI agents" # Example: search HN
20
+
21
+ unicli doctor # System health check
22
+ ```
23
+
24
+ ## Output Formats
25
+
26
+ All commands support `--format` / `-f`:
27
+
28
+ | Format | Use Case |
29
+ | --------- | ----------------------------------- |
30
+ | `md` | Default v2 AgentEnvelope for agents |
31
+ | `json` | Machine parsing / jq |
32
+ | `yaml` | Config-friendly envelope |
33
+ | `csv` | Spreadsheet import |
34
+ | `compact` | Pipe-friendly row stream |
35
+
36
+ ```bash
37
+ unicli hackernews top -f json | jq '.data[0].title'
38
+ unicli hackernews top -f csv > stories.csv
39
+ ```
40
+
41
+ ## Adapter Types
42
+
43
+ | Type | Description | Example |
44
+ | --------- | ------------------------ | -------------------- |
45
+ | `web-api` | REST API calls | hackernews, bilibili |
46
+ | `desktop` | Local desktop software | blender, gimp |
47
+ | `browser` | Full browser automation | xiaohongshu |
48
+ | `bridge` | Existing CLI passthrough | gh, docker |
49
+ | `service` | HTTP services | ollama, comfyui |
50
+
51
+ ## Exit Codes
52
+
53
+ Use exit codes for scripting:
54
+
55
+ ```bash
56
+ unicli hackernews top || echo "exit $?"
57
+ [ $? -eq 77 ] && echo "Login required"
58
+ ```
59
+
60
+ | Code | Meaning |
61
+ | ---- | ------------------- |
62
+ | 0 | Success |
63
+ | 66 | Empty result |
64
+ | 69 | Service unavailable |
65
+ | 77 | Auth required |
@@ -4,6 +4,7 @@ description: 36Kr hot/trending articles
4
4
  domain: 36kr.com
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  limit:
@@ -4,6 +4,7 @@ description: Search 36Kr articles
4
4
  domain: 36kr.com
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  query:
@@ -0,0 +1,12 @@
1
+ # Archived Adapters
2
+
3
+ These adapters are preserved for provenance but are outside active discovery.
4
+ The loader, manifest builder, conformance report, and quarantine repair list
5
+ skip underscore-prefixed adapter directories.
6
+
7
+ | Site | Commands | Archived on | Replacement |
8
+ | ----------- | ----------- | ----------- | ----------------------------------------------------------------------- |
9
+ | apple-music | rate-album | 2026-05-06 | `unicli macos music-now`; `unicli macos music-control <action>` |
10
+ | az | account | 2026-05-06 | `az account list --output json` through external CLI passthrough |
11
+ | ctrip | hot, search | 2026-05-06 | `unicli web read` or browser/CUA against an authenticated Ctrip session |
12
+ | gcloud | projects | 2026-05-06 | `gcloud projects list --format=json` through external CLI passthrough |
@@ -1,14 +1,8 @@
1
- # AX-first demo with CUA fallback — rate the current Apple Music album.
2
- #
3
- # Strategy:
4
- # 1. desktop-ax → launch and focus Music
5
- # 2. desktop-ax → open the "Album" AppleScript menu (cheap & exact)
6
- # 3. cua → take a screenshot so the VLM can verify the stars
7
- # UI is visible before we click it
8
- # 4. cua → click the star coordinate (caller-provided)
9
- #
10
- # Real UI coordinates vary by screen size — callers either pass x/y or
11
- # let the pipeline use the VLM snapshot to locate the stars themselves.
1
+ # @owner src/adapters/_archived/apple-music/rate-album.yaml
2
+ # @does Preserve the archived Apple Music CUA rating demo outside active discovery.
3
+ # @needs macOS Music app, desktop AX transport, CUA backend, caller-provided star coordinates
4
+ # @feeds src/adapters/_archived/archive.json provenance, historical adapter review
5
+ # @breaks Moving back under an active site would reintroduce an archive-only discovered site.
12
6
  site: apple-music
13
7
  name: rate-album
14
8
  description: Rate the currently-playing Apple Music album via AX menu + CUA click
@@ -56,7 +50,6 @@ pipeline:
56
50
 
57
51
  columns: [backend, stars]
58
52
 
59
- # schema-v2 metadata — injected by `unicli migrate schema-v2`
60
53
  capabilities:
61
54
  [
62
55
  "cua.ask",
@@ -0,0 +1,44 @@
1
+ {
2
+ "archived_on": "2026-05-06",
3
+ "reason": "Feature 3.2 dead-site archive: each listed site had zero active commands and only quarantined adapters.",
4
+ "sites": [
5
+ {
6
+ "site": "apple-music",
7
+ "commands": ["rate-album"],
8
+ "original_paths": ["src/adapters/apple-music/rate-album.yaml"],
9
+ "archived_paths": ["src/adapters/_archived/apple-music/rate-album.yaml"],
10
+ "reason": "Host-app CUA demo requires the macOS Music app and a CUA backend; active Apple Music controls remain under the macos adapter.",
11
+ "replacement": "unicli macos music-now; unicli macos music-control <action>"
12
+ },
13
+ {
14
+ "site": "az",
15
+ "commands": ["account"],
16
+ "original_paths": ["src/adapters/az/account.yaml"],
17
+ "archived_paths": ["src/adapters/_archived/az/account.yaml"],
18
+ "reason": "Dedicated Azure account adapter cannot run in CI without interactive az login; az remains available through external CLI passthrough when installed.",
19
+ "replacement": "az account list --output json"
20
+ },
21
+ {
22
+ "site": "ctrip",
23
+ "commands": ["hot", "search"],
24
+ "original_paths": [
25
+ "src/adapters/ctrip/hot.yaml",
26
+ "src/adapters/ctrip/search.yaml"
27
+ ],
28
+ "archived_paths": [
29
+ "src/adapters/_archived/ctrip/hot.yaml",
30
+ "src/adapters/_archived/ctrip/search.yaml"
31
+ ],
32
+ "reason": "Public Ctrip endpoints were verified broken or CAPTCHA-gated on 2026-05-05, with no stable public replacement captured.",
33
+ "replacement": "Use the web adapter or browser/CUA flow against an authenticated Ctrip session."
34
+ },
35
+ {
36
+ "site": "gcloud",
37
+ "commands": ["projects"],
38
+ "original_paths": ["src/adapters/gcloud/projects.yaml"],
39
+ "archived_paths": ["src/adapters/_archived/gcloud/projects.yaml"],
40
+ "reason": "Dedicated Google Cloud projects adapter cannot run in CI without interactive gcloud auth; gcloud remains available through external CLI passthrough when installed.",
41
+ "replacement": "gcloud projects list --format=json"
42
+ }
43
+ ]
44
+ }
@@ -1,3 +1,8 @@
1
+ # @owner src/adapters/_archived/az/account.yaml
2
+ # @does Preserve the archived Azure account-list adapter outside active discovery.
3
+ # @needs Azure CLI installed and authenticated with az login
4
+ # @feeds src/adapters/_archived/archive.json provenance, historical adapter review
5
+ # @breaks Moving back under an active site would reintroduce an archive-only discovered site.
1
6
  site: az
2
7
  name: account
3
8
  description: List Azure subscriptions
@@ -20,7 +25,6 @@ pipeline:
20
25
 
21
26
  columns: [name, id, state, isDefault]
22
27
 
23
- # schema-v2 metadata — injected by `unicli migrate schema-v2`
24
28
  capabilities: ["subprocess.exec"]
25
29
  minimum_capability: subprocess.exec
26
30
  trust: user
@@ -1,3 +1,8 @@
1
+ # @owner src/adapters/_archived/ctrip/hot.yaml
2
+ # @does Preserve the archived Ctrip hot-destination adapter outside active discovery.
3
+ # @needs Historical m.ctrip.com hotcity endpoint
4
+ # @feeds src/adapters/_archived/archive.json provenance, historical adapter review
5
+ # @breaks Moving back under an active site would reintroduce an archive-only discovered site.
1
6
  site: ctrip
2
7
  name: hot
3
8
  description: Ctrip popular travel destinations
@@ -27,7 +32,6 @@ pipeline:
27
32
 
28
33
  columns: [rank, name, type]
29
34
 
30
- # schema-v2 metadata — injected by `unicli migrate schema-v2`
31
35
  capabilities: ["http.fetch"]
32
36
  minimum_capability: http.fetch
33
37
  trust: public
@@ -1,3 +1,8 @@
1
+ # @owner src/adapters/_archived/ctrip/search.yaml
2
+ # @does Preserve the archived Ctrip flight-search adapter outside active discovery.
3
+ # @needs Historical flights.ctrip.com batchSearch endpoint without CAPTCHA
4
+ # @feeds src/adapters/_archived/archive.json provenance, historical adapter review
5
+ # @breaks Moving back under an active site would reintroduce an archive-only discovered site.
1
6
  site: ctrip
2
7
  name: search
3
8
  description: Search flights on Ctrip
@@ -52,11 +57,10 @@ args:
52
57
 
53
58
  columns: [airline, flight, depart, arrive, price]
54
59
 
55
- # schema-v2 metadata — injected by `unicli migrate schema-v2`
56
60
  capabilities: ["http.fetch"]
57
61
  minimum_capability: http.fetch
58
62
  trust: public
59
63
  confidentiality: public
60
64
  quarantine: true
61
- quarantineReason: "flights.ctrip.com search endpoint now requires CAPTCHA (showAuthCode=true on every public hit, verified 2026-05-05) needs cookie/UI strategy with anti-bot solve"
65
+ quarantineReason: "flights.ctrip.com search endpoint now requires CAPTCHA (showAuthCode=true on every public hit, verified 2026-05-05) - needs cookie/UI strategy with anti-bot solve"
62
66
  schema_version: v2
@@ -1,3 +1,8 @@
1
+ # @owner src/adapters/_archived/gcloud/projects.yaml
2
+ # @does Preserve the archived Google Cloud projects adapter outside active discovery.
3
+ # @needs Google Cloud CLI installed and authenticated with gcloud auth login
4
+ # @feeds src/adapters/_archived/archive.json provenance, historical adapter review
5
+ # @breaks Moving back under an active site would reintroduce an archive-only discovered site.
1
6
  site: gcloud
2
7
  name: projects
3
8
  description: List Google Cloud projects
@@ -18,7 +23,6 @@ pipeline:
18
23
 
19
24
  columns: [projectId, name, projectNumber, lifecycleState]
20
25
 
21
- # schema-v2 metadata — injected by `unicli migrate schema-v2`
22
26
  capabilities: ["subprocess.exec"]
23
27
  minimum_capability: subprocess.exec
24
28
  trust: user
@@ -3,6 +3,7 @@ name: new-releases
3
3
  description: Amazon New Releases ranking
4
4
  domain: www.amazon.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -3,6 +3,7 @@ name: search
3
3
  description: Search Amazon products
4
4
  domain: www.amazon.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -4,6 +4,7 @@ description: Search Apple Podcasts
4
4
  domain: itunes.apple.com
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  query:
@@ -4,6 +4,7 @@ description: Top podcasts chart on Apple Podcasts
4
4
  domain: rss.marketingtools.apple.com
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  limit:
@@ -4,6 +4,7 @@ description: Search arXiv papers
4
4
  domain: export.arxiv.org
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  query:
@@ -4,6 +4,7 @@ description: Recent arXiv papers by category (newest submissions)
4
4
  domain: export.arxiv.org
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  category:
@@ -3,6 +3,7 @@ name: hot
3
3
  description: Get Baidu hot search trending topics
4
4
  domain: top.baidu.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -3,6 +3,7 @@ name: search
3
3
  description: Search Baidu for web results
4
4
  domain: www.baidu.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -4,6 +4,7 @@ description: BBC top news headlines
4
4
  domain: www.bbc.co.uk
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  limit:
@@ -4,6 +4,7 @@ description: Bilibili dynamic feed (following updates)
4
4
  domain: api.bilibili.com
5
5
  type: web-api
6
6
  strategy: cookie
7
+ lint_listing_detail: skip
7
8
  auth_cookies: [SESSDATA, bili_jct]
8
9
 
9
10
  args:
@@ -4,6 +4,7 @@ description: Bilibili popular videos
4
4
  domain: api.bilibili.com
5
5
  type: web-api
6
6
  strategy: cookie
7
+ lint_listing_detail: skip
7
8
  auth_cookies: [SESSDATA, bili_jct]
8
9
 
9
10
  args:
@@ -4,6 +4,7 @@ description: Bilibili trending searches
4
4
  domain: api.bilibili.com
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  limit:
@@ -4,6 +4,7 @@ description: Binance top trending coins by 24h trading volume / 币安热门成
4
4
  domain: data-api.binance.vision
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
  browser: false
8
9
 
9
10
  args:
@@ -4,6 +4,7 @@ description: Binance top trading pairs by 24h quote volume / 币安成交额排
4
4
  domain: data-api.binance.vision
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
  browser: false
8
9
 
9
10
  args:
@@ -4,6 +4,7 @@ description: Search Bluesky users
4
4
  domain: public.api.bsky.app
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  query:
@@ -4,6 +4,7 @@ description: Trending topics on Bluesky
4
4
  domain: public.api.bsky.app
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  limit:
@@ -4,6 +4,7 @@ description: Search CNKI academic papers
4
4
  domain: scholar.cnki.net
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  query:
@@ -4,6 +4,7 @@ description: CNN top stories via RSS
4
4
  type: web-api
5
5
  domain: rss.cnn.com
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
  args:
8
9
  limit:
9
10
  required: false
@@ -4,6 +4,7 @@ description: Coupang trending/popular products
4
4
  domain: www.coupang.com
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  limit:
@@ -3,6 +3,7 @@ name: search
3
3
  description: Search Coupang products
4
4
  domain: www.coupang.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -3,6 +3,7 @@ name: hot
3
3
  description: Dangdang bestseller book list
4
4
  domain: bang.dangdang.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -3,6 +3,7 @@ name: search
3
3
  description: Search books on Dangdang
4
4
  domain: www.dangdang.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -4,6 +4,7 @@ description: Search Dev.to articles
4
4
  type: web-api
5
5
  domain: dev.to
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  query:
@@ -4,6 +4,7 @@ description: Top DEV.to articles of the day
4
4
  domain: dev.to
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  limit:
@@ -3,6 +3,7 @@ name: hot
3
3
  description: Dianping trending restaurants
4
4
  domain: www.dianping.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -3,6 +3,7 @@ name: search
3
3
  description: Search restaurants on Dianping
4
4
  domain: www.dianping.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -4,6 +4,7 @@ description: Look up word definitions, phonetics, and parts of speech
4
4
  domain: api.dictionaryapi.dev
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  word:
@@ -4,6 +4,7 @@ description: Douban new movies in theaters
4
4
  domain: movie.douban.com
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
 
8
9
  args:
9
10
  limit:
@@ -4,6 +4,7 @@ description: Search Douban movies and books
4
4
  domain: www.douban.com
5
5
  type: web-api
6
6
  strategy: cookie
7
+ lint_listing_detail: skip
7
8
  auth_cookies: [dbcl2]
8
9
 
9
10
  args:
@@ -3,6 +3,7 @@ name: new
3
3
  description: Start a new Doubao chat conversation
4
4
  domain: www.doubao.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  columns: [status, url]
@@ -4,6 +4,7 @@ description: Douyu trending live streams
4
4
  domain: www.douyu.com
5
5
  type: web-api
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
  browser: false
8
9
 
9
10
  args:
@@ -3,6 +3,7 @@ name: search
3
3
  description: Search Douyu live streams
4
4
  domain: www.douyu.com
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -4,6 +4,7 @@ description: Eastmoney hot stocks (A-share volume leaders)
4
4
  type: web-api
5
5
  domain: push2.eastmoney.com
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
  args:
8
9
  limit:
9
10
  required: false
@@ -4,6 +4,7 @@ description: Search stocks on Eastmoney
4
4
  type: web-api
5
5
  domain: searchapi.eastmoney.com
6
6
  strategy: public
7
+ lint_listing_detail: skip
7
8
  args:
8
9
  query:
9
10
  required: true
@@ -3,6 +3,7 @@ name: hot
3
3
  description: Ele.me trending restaurants
4
4
  domain: www.ele.me
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args:
@@ -3,6 +3,7 @@ name: search
3
3
  description: Search restaurants and food on Ele.me
4
4
  domain: www.ele.me
5
5
  strategy: intercept
6
+ lint_listing_detail: skip
6
7
  browser: true
7
8
 
8
9
  args: