@zenalexa/unicli 0.210.0 → 0.211.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/AGENTS.md +21 -7
  2. package/README.md +680 -83
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +5 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/agents.d.ts +14 -3
  7. package/dist/commands/agents.d.ts.map +1 -1
  8. package/dist/commands/agents.js +369 -140
  9. package/dist/commands/agents.js.map +1 -1
  10. package/dist/commands/mcp.d.ts +3 -4
  11. package/dist/commands/mcp.d.ts.map +1 -1
  12. package/dist/commands/mcp.js +47 -62
  13. package/dist/commands/mcp.js.map +1 -1
  14. package/dist/commands/schema.d.ts +12 -0
  15. package/dist/commands/schema.d.ts.map +1 -0
  16. package/dist/commands/schema.js +72 -0
  17. package/dist/commands/schema.js.map +1 -0
  18. package/dist/commands/search.d.ts +12 -0
  19. package/dist/commands/search.d.ts.map +1 -0
  20. package/dist/commands/search.js +47 -0
  21. package/dist/commands/search.js.map +1 -0
  22. package/dist/discovery/aliases.d.ts +31 -0
  23. package/dist/discovery/aliases.d.ts.map +1 -0
  24. package/dist/discovery/aliases.js +477 -0
  25. package/dist/discovery/aliases.js.map +1 -0
  26. package/dist/discovery/loader.d.ts.map +1 -1
  27. package/dist/discovery/loader.js +25 -0
  28. package/dist/discovery/loader.js.map +1 -1
  29. package/dist/discovery/search.d.ts +73 -0
  30. package/dist/discovery/search.d.ts.map +1 -0
  31. package/dist/discovery/search.js +355 -0
  32. package/dist/discovery/search.js.map +1 -0
  33. package/dist/manifest-compact.txt +15 -0
  34. package/dist/manifest-search.json +1 -0
  35. package/dist/manifest.json +433 -244
  36. package/dist/mcp/oauth.d.ts +33 -0
  37. package/dist/mcp/oauth.d.ts.map +1 -0
  38. package/dist/mcp/oauth.js +220 -0
  39. package/dist/mcp/oauth.js.map +1 -0
  40. package/dist/mcp/schema.d.ts +65 -0
  41. package/dist/mcp/schema.d.ts.map +1 -0
  42. package/dist/mcp/schema.js +136 -0
  43. package/dist/mcp/schema.js.map +1 -0
  44. package/dist/mcp/server.d.ts +23 -10
  45. package/dist/mcp/server.d.ts.map +1 -1
  46. package/dist/mcp/server.js +350 -182
  47. package/dist/mcp/server.js.map +1 -1
  48. package/dist/mcp/sse-transport.d.ts +34 -0
  49. package/dist/mcp/sse-transport.d.ts.map +1 -0
  50. package/dist/mcp/sse-transport.js +182 -0
  51. package/dist/mcp/sse-transport.js.map +1 -0
  52. package/dist/mcp/streamable-http.d.ts +64 -0
  53. package/dist/mcp/streamable-http.d.ts.map +1 -0
  54. package/dist/mcp/streamable-http.js +312 -0
  55. package/dist/mcp/streamable-http.js.map +1 -0
  56. package/dist/permissions/sensitive-paths.js +2 -2
  57. package/dist/permissions/sensitive-paths.js.map +1 -1
  58. package/package.json +7 -7
  59. package/src/adapters/1688/_site.json +9 -0
  60. package/src/adapters/barchart/_site.json +10 -0
  61. package/src/adapters/jd/_site.json +9 -0
  62. package/src/adapters/linkedin/_site.json +10 -0
  63. package/src/adapters/macos/finder-copy.yaml +40 -0
  64. package/src/adapters/macos/finder-move.yaml +40 -0
  65. package/src/adapters/macos/finder-new-folder.yaml +36 -0
  66. package/src/adapters/macos/safari-history.yaml +23 -0
  67. package/src/adapters/macos/safari-url.yaml +22 -0
  68. package/src/adapters/macos/screen-recording.yaml +32 -0
  69. package/src/adapters/macos/wallpaper.yaml +33 -0
  70. package/src/adapters/reuters/_site.json +9 -0
  71. package/src/adapters/sinablog/_site.json +9 -0
  72. package/src/adapters/smzdm/_site.json +9 -0
  73. package/src/adapters/weixin/_site.json +9 -0
  74. package/src/adapters/1688/manifest.yaml +0 -7
  75. package/src/adapters/barchart/manifest.yaml +0 -8
  76. package/src/adapters/jd/manifest.yaml +0 -7
  77. package/src/adapters/linkedin/manifest.yaml +0 -8
  78. package/src/adapters/reuters/manifest.yaml +0 -7
  79. package/src/adapters/sinablog/manifest.yaml +0 -7
  80. package/src/adapters/smzdm/manifest.yaml +0 -7
  81. package/src/adapters/weixin/manifest.yaml +0 -7
package/README.md CHANGED
@@ -1,49 +1,70 @@
1
- <!-- AGENT: npm install -g @zenalexa/unicli && unicli list | 957 commands across 195 sites. JSON when piped. Self-repairing YAML adapters. unicli repair --loop for autonomous fix. See AGENTS.md -->
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 -->
2
2
 
3
- <h1 align="center">Uni-CLI</h1>
3
+ <div align="center">
4
4
 
5
- <p align="center">
6
- <strong>CLI is all agents need.</strong><br>
7
- <sub>One command to control any website, desktop app, or local tool — with structured JSON output and self-repairing adapters.</sub>
8
- </p>
5
+ <picture>
6
+ <source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg">
7
+ <source media="(prefers-color-scheme: light)" srcset="assets/logo-light.svg">
8
+ <img alt="Uni-CLI" src="assets/logo-light.svg" width="420">
9
+ </picture>
9
10
 
10
- <p align="center">
11
- <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>
12
- <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>
13
- <a href="https://www.npmjs.com/package/@zenalexa/unicli"><img src="https://img.shields.io/npm/dm/@zenalexa/unicli?style=flat-square" alt="downloads"></a>
14
- <a href="https://nodejs.org"><img src="https://img.shields.io/node/v/@zenalexa/unicli?style=flat-square&color=339933" alt="node"></a>
15
- <a href="./LICENSE"><img src="https://img.shields.io/github/license/olo-dot-io/Uni-CLI?style=flat-square" alt="license"></a>
16
- <img src="https://img.shields.io/badge/TypeScript-strict-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
17
- </p>
11
+ <br><br>
18
12
 
19
- <p align="center">
20
- <code>npm install -g @zenalexa/unicli</code>
21
- </p>
13
+ **The compiler that turns the internet into CLI commands for AI agents.**
14
+
15
+ <br>
16
+
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
+ <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
+ <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
+ <a href="./LICENSE"><img src="https://img.shields.io/github/license/olo-dot-io/Uni-CLI?style=flat-square" alt="license"></a>
23
+
24
+ <br><br>
25
+
26
+ ```
27
+ npm install -g @zenalexa/unicli
28
+ ```
29
+
30
+ </div>
22
31
 
23
32
  ---
24
33
 
25
34
  ```bash
35
+ unicli search "推特热门" # Bilingual discovery → twitter trending
26
36
  unicli hackernews top --limit 5 # Hacker News front page
27
37
  unicli twitter search "AI agents" # Twitter (authenticated)
28
38
  unicli bilibili hot # Bilibili trending
29
39
  unicli blender render scene.blend # Render a 3D scene
30
- unicli cursor ask "explain this code" # Talk to Cursor IDE
31
40
  unicli notion search "meeting notes" # Search Notion
32
- unicli obs scene set "Camera 2" # Switch OBS scene
41
+ unicli macos screenshot # macOS screenshot
33
42
  unicli ffmpeg compress video.mp4 # Compress video
34
43
  ```
35
44
 
36
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.**
37
46
 
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
+ ```
56
+
38
57
  ## Key Ideas
39
58
 
40
- **Universal** — 195 sites, 30+ desktop apps, 8 Electron apps, 35 CLI bridges, 30 macOS system commands. One interface: `unicli <site> <command>`.
59
+ **Universal** — 198 sites, 30+ desktop apps, 8 Electron apps, 35 CLI bridges, 51 macOS system commands. One interface: `unicli <site> <command>`.
60
+
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.
41
62
 
42
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.
43
64
 
44
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.
45
66
 
46
- **Cheap** — ~80 tokens per CLI invocation vs 550–1,400 tokens for an MCP tool definition. Two orders of magnitude cheaper in context window cost.
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.
47
68
 
48
69
  ## Self-Repair
49
70
 
@@ -66,86 +87,610 @@ unicli repair --loop # Autonomous fix loop
66
87
 
67
88
  Fixes are saved to `~/.unicli/adapters/` and survive `npm update`.
68
89
 
69
- ## Coverage
90
+ ## Supported Platforms
91
+
92
+ <table><tr><td>
93
+
94
+ **198 sites** · **1020 commands** · **35 pipeline steps** · **BM25 bilingual search**
95
+
96
+ </td></tr></table>
97
+
98
+ <!-- =========================== -->
99
+ <!-- WEB — SOCIAL MEDIA -->
100
+ <!-- =========================== -->
70
101
 
71
102
  <details open>
72
- <summary><strong>Web Platforms95 sites</strong></summary>
73
-
74
- | Category | Sites |
75
- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
76
- | **Tech / Dev** | hackernews, stackoverflow, devto, lobsters, producthunt, hf, github-trending, substack, lesswrong, npm, pypi, crates-io, cocoapods, homebrew, gitlab, gitee, npm-trends, ollama |
77
- | **Social** | twitter (35 cmds), reddit (20), instagram (24), tiktok (15), facebook (10), bluesky (12), medium, threads |
78
- | **Chinese Social** | bilibili (18), weibo, zhihu (20), xiaohongshu (24), douyin (13), jike, douban, weread, tieba, v2ex, linux-do, zsxq, xiaoyuzhou, baidu, toutiao |
79
- | **Video / Media** | youtube (5), bilibili, douyin, tiktok, kuaishou, douyu, wechat-channels, twitch |
80
- | **Finance** | xueqiu, sinafinance, barchart, yahoo-finance, binance, futu, coinbase, eastmoney |
81
- | **News** | bbc, bloomberg (10), reuters, 36kr, google news, cnn, nytimes, techcrunch, theverge, infoq, ithome |
82
- | **Shopping** | amazon (8), xianyu, coupang, smzdm, jd, maoyan, ele, dianping, dangdang, pinduoduo, meituan |
83
- | **Jobs** | boss (14), linkedin |
84
- | **AI Platforms** | gemini (5), grok, doubao-web (9), notebooklm (15), yollomi (12), jimeng, yuanbao, deepseek, perplexity |
85
- | **Education** | chaoxing, arxiv, wikipedia |
86
- | **Other** | ones (11), band, xiaoe, pixiv (6), hupu (7), ctrip, sinablog, steam |
103
+ <summary><strong>Social Media25 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
+ <!-- =========================== -->
87
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>
88
190
  </details>
89
191
 
192
+ <!-- =========================== -->
193
+ <!-- WEB — AI & ML -->
194
+ <!-- =========================== -->
195
+
90
196
  <details>
91
- <summary><strong>Desktop Software32 apps</strong></summary>
92
-
93
- | Category | Apps |
94
- | ----------------- | ------------------------------------------------------------------- |
95
- | **3D / CAD** | blender (13 cmds), freecad (15), cloudcompare (4), openscad |
96
- | **Image** | gimp (12), inkscape, imagemagick (6), krita (4) |
97
- | **Video / Audio** | ffmpeg (11), kdenlive (3), shotcut (3), audacity (8), musescore (5) |
98
- | **Diagram** | drawio, mermaid |
99
- | **Document** | libreoffice, pandoc |
100
- | **Streaming** | obs (8, WebSocket) |
101
- | **Productivity** | zotero (8), vscode (3), obsidian (3) |
102
- | **Dev Services** | wiremock (5), adguardhome (5), novita (3) |
103
- | **Browser** | chrome (2), zoom (2) |
104
- | **Other** | slay-the-spire-ii (6), sketch (3) |
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>
105
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>
106
248
  </details>
107
249
 
250
+ <!-- =========================== -->
251
+ <!-- WEB — NEWS & MEDIA -->
252
+ <!-- =========================== -->
253
+
108
254
  <details>
109
- <summary><strong>Electron Apps8 apps, 70 commands</strong></summary>
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>
110
278
 
111
- All via Chrome DevTools Protocol — no extensions, no hacks.
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>
112
388
 
113
- | App | Commands | Port |
114
- | --------------- | ---------------------------------------------------------------------------------------------- | ---- |
115
- | **Cursor** | ask, send, read, model, composer, extract-code, new, status, screenshot, dump, history, export | 9226 |
116
- | **Codex** | ask, send, read, model, extract-diff, new, status, screenshot, dump, history, export | 9222 |
117
- | **ChatGPT** | ask, send, read, model, new, status, screenshot, dump | 9236 |
118
- | **Notion** | search, read, write, new, status, sidebar, favorites, export, screenshot | 9230 |
119
- | **Discord** | servers, channels, read, send, search, members, status, delete | 9232 |
120
- | **ChatWise** | ask, send, read, model, new, status, screenshot, dump | 9228 |
121
- | **Doubao** | ask, send, read, new, status, screenshot, dump | 9225 |
122
- | **Antigravity** | ask, send, read, model, new, status, screenshot, dump | 9234 |
389
+ <!-- =========================== -->
390
+ <!-- WEB OTHER -->
391
+ <!-- =========================== -->
123
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>
124
422
  </details>
125
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>
523
+
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
+
126
574
  <details>
127
575
  <summary><strong>CLI Bridges — 35 tools</strong></summary>
576
+ <br>
128
577
 
129
578
  Passthrough wrappers that normalize output to JSON:
130
579
 
131
- docker, gh, jq, yt-dlp, vercel, supabase, wrangler, lark, dingtalk, hf, claude-code, codex-cli, opencode, aws, gcloud, az, doctl, netlify, railway, flyctl, pscale, neonctl, slack, kimi-cli, gws, deepagents, stripe, firebase, mmx-cli, wecom, mem0, dws, hermes, openclaw, opencode-cli
132
-
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>
133
630
  </details>
134
631
 
632
+ <!-- =========================== -->
633
+ <!-- macOS SYSTEM -->
634
+ <!-- =========================== -->
635
+
135
636
  <details>
136
- <summary><strong>macOS System — 30 commands</strong></summary>
137
-
138
- | Category | Commands |
139
- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
140
- | **Audio/Display** | volume, dark-mode, brightness, say |
141
- | **Power/System** | battery, lock-screen, caffeinate, sleep, uptime, system-info |
142
- | **Files/Search** | spotlight, disk-info, trash, empty-trash, open, finder-tags, finder-recent, finder-selection |
143
- | **Network** | wifi, wifi-info, bluetooth |
144
- | **Notifications** | notify, notification, do-not-disturb |
145
- | **Apps** | apps, apps-list, active-app, open-app, safari-tabs, shortcuts-list, shortcuts-run |
146
- | **PIM** | calendar-list, calendar-create, calendar-today, contacts-search, mail-status, mail-send, messages-send, reminders-list, reminders-create, reminders-complete |
147
- | **Media** | music-now, music-control, photos-search, notes-list, notes-search, screenshot, clipboard, processes |
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>
148
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>
149
694
  </details>
150
695
 
151
696
  ## Architecture
@@ -245,14 +790,29 @@ unicli record <url> # Auto-generate adapter from traffic
245
790
 
246
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.
247
792
 
248
- ## MCP Server
793
+ ## Agent Integration
249
794
 
250
- For MCP-only environments:
795
+ Works with every major agent platform:
251
796
 
252
797
  ```bash
253
- unicli mcp serve # All 957 commands become MCP tools
798
+ # Claude Code / Codex CLI direct shell
799
+ unicli twitter search "AI agents"
800
+
801
+ # MCP — one command to expose all 969 commands
802
+ unicli mcp serve
803
+
804
+ # AGENTS.md — discovery file already included in repo
805
+ cat AGENTS.md
254
806
  ```
255
807
 
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 |
815
+
256
816
  ## Development
257
817
 
258
818
  ```bash
@@ -267,7 +827,7 @@ npm install && npm run verify
267
827
  | `npm run typecheck` | TypeScript strict |
268
828
  | `npm run lint` | Oxlint |
269
829
  | `npm run test` | Unit tests (788) |
270
- | `npm run test:adapter` | Validate all 601 adapters |
830
+ | `npm run test:adapter` | Validate all adapters |
271
831
  | `npm run verify` | Full pipeline |
272
832
 
273
833
  7 production dependencies: `chalk`, `cli-table3`, `commander`, `js-yaml`, `turndown`, `undici`, `ws`.
@@ -282,6 +842,43 @@ unicli dev <path> # Hot-reload during dev
282
842
  unicli test <site> # Validate
283
843
  ```
284
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.
881
+
285
882
  ## License
286
883
 
287
884
  [Apache-2.0](./LICENSE)
@@ -295,6 +892,6 @@ unicli test <site> # Validate
295
892
  </p>
296
893
 
297
894
  <p align="center">
298
- <sub>v0.210.0 — Vostok · Komarov</sub><br>
299
- <sub>195 sites · 957 commands · 35 pipeline steps · 29 filters · 788 tests</sub>
895
+ <sub>v0.211.2 — Vostok · Volynov</sub><br>
896
+ <sub>198 sites · 1020 commands · 35 pipeline steps · BM25+TF-IDF bilingual search · MCP 2025-03-26 · 855 tests</sub>
300
897
  </p>