@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.
- package/AGENTS.md +21 -7
- package/README.md +680 -83
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts +14 -3
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +369 -140
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/mcp.d.ts +3 -4
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +47 -62
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/schema.d.ts +12 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +72 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/search.d.ts +12 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +47 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/discovery/aliases.d.ts +31 -0
- package/dist/discovery/aliases.d.ts.map +1 -0
- package/dist/discovery/aliases.js +477 -0
- package/dist/discovery/aliases.js.map +1 -0
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +25 -0
- package/dist/discovery/loader.js.map +1 -1
- package/dist/discovery/search.d.ts +73 -0
- package/dist/discovery/search.d.ts.map +1 -0
- package/dist/discovery/search.js +355 -0
- package/dist/discovery/search.js.map +1 -0
- package/dist/manifest-compact.txt +15 -0
- package/dist/manifest-search.json +1 -0
- package/dist/manifest.json +433 -244
- package/dist/mcp/oauth.d.ts +33 -0
- package/dist/mcp/oauth.d.ts.map +1 -0
- package/dist/mcp/oauth.js +220 -0
- package/dist/mcp/oauth.js.map +1 -0
- package/dist/mcp/schema.d.ts +65 -0
- package/dist/mcp/schema.d.ts.map +1 -0
- package/dist/mcp/schema.js +136 -0
- package/dist/mcp/schema.js.map +1 -0
- package/dist/mcp/server.d.ts +23 -10
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +350 -182
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/sse-transport.d.ts +34 -0
- package/dist/mcp/sse-transport.d.ts.map +1 -0
- package/dist/mcp/sse-transport.js +182 -0
- package/dist/mcp/sse-transport.js.map +1 -0
- package/dist/mcp/streamable-http.d.ts +64 -0
- package/dist/mcp/streamable-http.d.ts.map +1 -0
- package/dist/mcp/streamable-http.js +312 -0
- package/dist/mcp/streamable-http.js.map +1 -0
- package/dist/permissions/sensitive-paths.js +2 -2
- package/dist/permissions/sensitive-paths.js.map +1 -1
- package/package.json +7 -7
- package/src/adapters/1688/_site.json +9 -0
- package/src/adapters/barchart/_site.json +10 -0
- package/src/adapters/jd/_site.json +9 -0
- package/src/adapters/linkedin/_site.json +10 -0
- package/src/adapters/macos/finder-copy.yaml +40 -0
- package/src/adapters/macos/finder-move.yaml +40 -0
- package/src/adapters/macos/finder-new-folder.yaml +36 -0
- package/src/adapters/macos/safari-history.yaml +23 -0
- package/src/adapters/macos/safari-url.yaml +22 -0
- package/src/adapters/macos/screen-recording.yaml +32 -0
- package/src/adapters/macos/wallpaper.yaml +33 -0
- package/src/adapters/reuters/_site.json +9 -0
- package/src/adapters/sinablog/_site.json +9 -0
- package/src/adapters/smzdm/_site.json +9 -0
- package/src/adapters/weixin/_site.json +9 -0
- package/src/adapters/1688/manifest.yaml +0 -7
- package/src/adapters/barchart/manifest.yaml +0 -8
- package/src/adapters/jd/manifest.yaml +0 -7
- package/src/adapters/linkedin/manifest.yaml +0 -8
- package/src/adapters/reuters/manifest.yaml +0 -7
- package/src/adapters/sinablog/manifest.yaml +0 -7
- package/src/adapters/smzdm/manifest.yaml +0 -7
- package/src/adapters/weixin/manifest.yaml +0 -7
package/README.md
CHANGED
|
@@ -1,49 +1,70 @@
|
|
|
1
|
-
<!-- AGENT: npm install -g @zenalexa/unicli && unicli
|
|
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
|
-
<
|
|
3
|
+
<div align="center">
|
|
4
4
|
|
|
5
|
-
<
|
|
6
|
-
<
|
|
7
|
-
<
|
|
8
|
-
|
|
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
|
-
<
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
|
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** —
|
|
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
|
|
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
|
-
##
|
|
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>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
+
<!-- =========================== -->
|
|
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>
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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>
|
|
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
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
|
|
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 —
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
##
|
|
793
|
+
## Agent Integration
|
|
249
794
|
|
|
250
|
-
|
|
795
|
+
Works with every major agent platform:
|
|
251
796
|
|
|
252
797
|
```bash
|
|
253
|
-
|
|
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
|
|
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.
|
|
299
|
-
<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>
|