@zenalexa/unicli 0.215.1 → 0.216.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 +15 -15
- package/README.md +233 -389
- package/README.zh-CN.md +235 -362
- package/dist/adapters/1688/assets.d.ts +2 -0
- package/dist/adapters/1688/assets.d.ts.map +1 -0
- package/dist/adapters/1688/assets.js +102 -0
- package/dist/adapters/1688/assets.js.map +1 -0
- package/dist/adapters/51job/jobs.d.ts +2 -0
- package/dist/adapters/51job/jobs.d.ts.map +1 -0
- package/dist/adapters/51job/jobs.js +292 -0
- package/dist/adapters/51job/jobs.js.map +1 -0
- package/dist/adapters/_shared/browser-tools.d.ts +10 -0
- package/dist/adapters/_shared/browser-tools.d.ts.map +1 -0
- package/dist/adapters/_shared/browser-tools.js +42 -0
- package/dist/adapters/_shared/browser-tools.js.map +1 -0
- package/dist/adapters/antigravity/extra.d.ts +2 -0
- package/dist/adapters/antigravity/extra.d.ts.map +1 -0
- package/dist/adapters/antigravity/extra.js +52 -0
- package/dist/adapters/antigravity/extra.js.map +1 -0
- package/dist/adapters/baidu-scholar/search.d.ts +2 -0
- package/dist/adapters/baidu-scholar/search.d.ts.map +1 -0
- package/dist/adapters/baidu-scholar/search.js +34 -0
- package/dist/adapters/baidu-scholar/search.js.map +1 -0
- package/dist/adapters/bilibili/compat.d.ts +2 -0
- package/dist/adapters/bilibili/compat.d.ts.map +1 -0
- package/dist/adapters/bilibili/compat.js +114 -0
- package/dist/adapters/bilibili/compat.js.map +1 -0
- package/dist/adapters/chatgpt/image.d.ts +2 -0
- package/dist/adapters/chatgpt/image.d.ts.map +1 -0
- package/dist/adapters/chatgpt/image.js +81 -0
- package/dist/adapters/chatgpt/image.js.map +1 -0
- package/dist/adapters/chatgpt-app/chatgpt-app.d.ts +2 -0
- package/dist/adapters/chatgpt-app/chatgpt-app.d.ts.map +1 -0
- package/dist/adapters/chatgpt-app/chatgpt-app.js +9 -0
- package/dist/adapters/chatgpt-app/chatgpt-app.js.map +1 -0
- package/dist/adapters/chatwise/extra.d.ts +2 -0
- package/dist/adapters/chatwise/extra.d.ts.map +1 -0
- package/dist/adapters/chatwise/extra.js +35 -0
- package/dist/adapters/chatwise/extra.js.map +1 -0
- package/dist/adapters/codex/extra.d.ts +2 -0
- package/dist/adapters/codex/extra.d.ts.map +1 -0
- package/dist/adapters/codex/extra.js +35 -0
- package/dist/adapters/codex/extra.js.map +1 -0
- package/dist/adapters/deepseek/web.d.ts +2 -0
- package/dist/adapters/deepseek/web.d.ts.map +1 -0
- package/dist/adapters/deepseek/web.js +187 -0
- package/dist/adapters/deepseek/web.js.map +1 -0
- package/dist/adapters/doubao/web.d.ts +2 -0
- package/dist/adapters/doubao/web.d.ts.map +1 -0
- package/dist/adapters/doubao/web.js +138 -0
- package/dist/adapters/doubao/web.js.map +1 -0
- package/dist/adapters/eastmoney/market-data.d.ts +2 -0
- package/dist/adapters/eastmoney/market-data.d.ts.map +1 -0
- package/dist/adapters/eastmoney/market-data.js +753 -0
- package/dist/adapters/eastmoney/market-data.js.map +1 -0
- package/dist/adapters/gitee/user.d.ts +2 -0
- package/dist/adapters/gitee/user.d.ts.map +1 -0
- package/dist/adapters/gitee/user.js +54 -0
- package/dist/adapters/gitee/user.js.map +1 -0
- package/dist/adapters/google-scholar/cite.d.ts +2 -0
- package/dist/adapters/google-scholar/cite.d.ts.map +1 -0
- package/dist/adapters/google-scholar/cite.js +82 -0
- package/dist/adapters/google-scholar/cite.js.map +1 -0
- package/dist/adapters/google-scholar/profile.d.ts +2 -0
- package/dist/adapters/google-scholar/profile.d.ts.map +1 -0
- package/dist/adapters/google-scholar/profile.js +80 -0
- package/dist/adapters/google-scholar/profile.js.map +1 -0
- package/dist/adapters/google-scholar/search.d.ts +2 -0
- package/dist/adapters/google-scholar/search.d.ts.map +1 -0
- package/dist/adapters/google-scholar/search.js +54 -0
- package/dist/adapters/google-scholar/search.js.map +1 -0
- package/dist/adapters/gov-law/laws.d.ts +2 -0
- package/dist/adapters/gov-law/laws.d.ts.map +1 -0
- package/dist/adapters/gov-law/laws.js +58 -0
- package/dist/adapters/gov-law/laws.js.map +1 -0
- package/dist/adapters/gov-policy/policy.d.ts +2 -0
- package/dist/adapters/gov-policy/policy.d.ts.map +1 -0
- package/dist/adapters/gov-policy/policy.js +58 -0
- package/dist/adapters/gov-policy/policy.js.map +1 -0
- package/dist/adapters/jd/commerce.d.ts +2 -0
- package/dist/adapters/jd/commerce.d.ts.map +1 -0
- package/dist/adapters/jd/commerce.js +133 -0
- package/dist/adapters/jd/commerce.js.map +1 -0
- package/dist/adapters/jianyu/detail.d.ts +2 -0
- package/dist/adapters/jianyu/detail.d.ts.map +1 -0
- package/dist/adapters/jianyu/detail.js +27 -0
- package/dist/adapters/jianyu/detail.js.map +1 -0
- package/dist/adapters/jimeng/workspace.d.ts +2 -0
- package/dist/adapters/jimeng/workspace.d.ts.map +1 -0
- package/dist/adapters/jimeng/workspace.js +49 -0
- package/dist/adapters/jimeng/workspace.js.map +1 -0
- package/dist/adapters/ke/rent-transaction.d.ts +2 -0
- package/dist/adapters/ke/rent-transaction.d.ts.map +1 -0
- package/dist/adapters/ke/rent-transaction.js +63 -0
- package/dist/adapters/ke/rent-transaction.js.map +1 -0
- package/dist/adapters/linux-do/search.d.ts +2 -0
- package/dist/adapters/linux-do/search.d.ts.map +1 -0
- package/dist/adapters/linux-do/search.js +75 -0
- package/dist/adapters/linux-do/search.js.map +1 -0
- package/dist/adapters/linux-do/topic-content.d.ts +2 -0
- package/dist/adapters/linux-do/topic-content.d.ts.map +1 -0
- package/dist/adapters/linux-do/topic-content.js +32 -0
- package/dist/adapters/linux-do/topic-content.js.map +1 -0
- package/dist/adapters/maimai/talents.d.ts +2 -0
- package/dist/adapters/maimai/talents.d.ts.map +1 -0
- package/dist/adapters/maimai/talents.js +64 -0
- package/dist/adapters/maimai/talents.js.map +1 -0
- package/dist/adapters/mubu/docs.d.ts +2 -0
- package/dist/adapters/mubu/docs.d.ts.map +1 -0
- package/dist/adapters/mubu/docs.js +96 -0
- package/dist/adapters/mubu/docs.js.map +1 -0
- package/dist/adapters/nowcoder/nowcoder.d.ts +2 -0
- package/dist/adapters/nowcoder/nowcoder.d.ts.map +1 -0
- package/dist/adapters/nowcoder/nowcoder.js +480 -0
- package/dist/adapters/nowcoder/nowcoder.js.map +1 -0
- package/dist/adapters/powerchina/search.d.ts +2 -0
- package/dist/adapters/powerchina/search.d.ts.map +1 -0
- package/dist/adapters/powerchina/search.js +41 -0
- package/dist/adapters/powerchina/search.js.map +1 -0
- package/dist/adapters/quark/actions.d.ts +2 -0
- package/dist/adapters/quark/actions.d.ts.map +1 -0
- package/dist/adapters/quark/actions.js +151 -0
- package/dist/adapters/quark/actions.js.map +1 -0
- package/dist/adapters/reddit/browser-utils.d.ts +7 -0
- package/dist/adapters/reddit/browser-utils.d.ts.map +1 -0
- package/dist/adapters/reddit/browser-utils.js +68 -0
- package/dist/adapters/reddit/browser-utils.js.map +1 -0
- package/dist/adapters/reddit/listings.d.ts +2 -0
- package/dist/adapters/reddit/listings.d.ts.map +1 -0
- package/dist/adapters/reddit/listings.js +193 -0
- package/dist/adapters/reddit/listings.js.map +1 -0
- package/dist/adapters/reddit/search.d.ts +2 -0
- package/dist/adapters/reddit/search.d.ts.map +1 -0
- package/dist/adapters/reddit/search.js +66 -0
- package/dist/adapters/reddit/search.js.map +1 -0
- package/dist/adapters/spotify/api.d.ts +2 -0
- package/dist/adapters/spotify/api.d.ts.map +1 -0
- package/dist/adapters/spotify/api.js +252 -0
- package/dist/adapters/spotify/api.js.map +1 -0
- package/dist/adapters/taobao/commerce.d.ts +2 -0
- package/dist/adapters/taobao/commerce.d.ts.map +1 -0
- package/dist/adapters/taobao/commerce.js +130 -0
- package/dist/adapters/taobao/commerce.js.map +1 -0
- package/dist/adapters/tdx/hot-rank.d.ts +2 -0
- package/dist/adapters/tdx/hot-rank.d.ts.map +1 -0
- package/dist/adapters/tdx/hot-rank.js +34 -0
- package/dist/adapters/tdx/hot-rank.js.map +1 -0
- package/dist/adapters/ths/hot-rank.d.ts +2 -0
- package/dist/adapters/ths/hot-rank.d.ts.map +1 -0
- package/dist/adapters/ths/hot-rank.js +34 -0
- package/dist/adapters/ths/hot-rank.js.map +1 -0
- package/dist/adapters/toutiao/articles.d.ts +2 -0
- package/dist/adapters/toutiao/articles.d.ts.map +1 -0
- package/dist/adapters/toutiao/articles.js +41 -0
- package/dist/adapters/toutiao/articles.js.map +1 -0
- package/dist/adapters/twitter/lists-extra.d.ts +2 -0
- package/dist/adapters/twitter/lists-extra.d.ts.map +1 -0
- package/dist/adapters/twitter/lists-extra.js +125 -0
- package/dist/adapters/twitter/lists-extra.js.map +1 -0
- package/dist/adapters/uiverse/components.d.ts +2 -0
- package/dist/adapters/uiverse/components.d.ts.map +1 -0
- package/dist/adapters/uiverse/components.js +138 -0
- package/dist/adapters/uiverse/components.js.map +1 -0
- package/dist/adapters/wanfang/search.d.ts +2 -0
- package/dist/adapters/wanfang/search.d.ts.map +1 -0
- package/dist/adapters/wanfang/search.js +34 -0
- package/dist/adapters/wanfang/search.js.map +1 -0
- package/dist/adapters/weixin/drafts.d.ts +2 -0
- package/dist/adapters/weixin/drafts.d.ts.map +1 -0
- package/dist/adapters/weixin/drafts.js +69 -0
- package/dist/adapters/weixin/drafts.js.map +1 -0
- package/dist/adapters/weread/ai-outline.d.ts +2 -0
- package/dist/adapters/weread/ai-outline.d.ts.map +1 -0
- package/dist/adapters/weread/ai-outline.js +28 -0
- package/dist/adapters/weread/ai-outline.js.map +1 -0
- package/dist/adapters/xiaoyuzhou/media.d.ts +2 -0
- package/dist/adapters/xiaoyuzhou/media.d.ts.map +1 -0
- package/dist/adapters/xiaoyuzhou/media.js +105 -0
- package/dist/adapters/xiaoyuzhou/media.js.map +1 -0
- package/dist/adapters/xueqiu/extra.d.ts +2 -0
- package/dist/adapters/xueqiu/extra.d.ts.map +1 -0
- package/dist/adapters/xueqiu/extra.js +74 -0
- package/dist/adapters/xueqiu/extra.js.map +1 -0
- package/dist/adapters/youtube/personal.d.ts +2 -0
- package/dist/adapters/youtube/personal.d.ts.map +1 -0
- package/dist/adapters/youtube/personal.js +183 -0
- package/dist/adapters/youtube/personal.js.map +1 -0
- package/dist/adapters/zhihu/actions.d.ts +2 -0
- package/dist/adapters/zhihu/actions.d.ts.map +1 -0
- package/dist/adapters/zhihu/actions.js +110 -0
- package/dist/adapters/zhihu/actions.js.map +1 -0
- package/dist/browser/adapter-authoring.d.ts.map +1 -1
- package/dist/browser/adapter-authoring.js +3 -3
- package/dist/browser/adapter-authoring.js.map +1 -1
- package/dist/browser/bridge.d.ts.map +1 -1
- package/dist/browser/bridge.js +2 -3
- package/dist/browser/bridge.js.map +1 -1
- package/dist/browser/daemon-client.d.ts.map +1 -1
- package/dist/browser/daemon-client.js +17 -5
- package/dist/browser/daemon-client.js.map +1 -1
- package/dist/browser/network-cache.js +2 -2
- package/dist/browser/network-cache.js.map +1 -1
- package/dist/browser/site-memory.d.ts.map +1 -1
- package/dist/browser/site-memory.js +11 -8
- package/dist/browser/site-memory.js.map +1 -1
- package/dist/browser/target-errors.d.ts +2 -2
- package/dist/browser/target-errors.js +2 -2
- package/dist/browser/verify-fixture.d.ts.map +1 -1
- package/dist/browser/verify-fixture.js +2 -2
- package/dist/browser/verify-fixture.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +5 -2
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +8 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/browser-operator-runtime.d.ts.map +1 -1
- package/dist/commands/browser-operator-runtime.js +2 -2
- package/dist/commands/browser-operator-runtime.js.map +1 -1
- package/dist/commands/browser-operator.d.ts.map +1 -1
- package/dist/commands/browser-operator.js +2 -2
- package/dist/commands/browser-operator.js.map +1 -1
- package/dist/commands/describe.d.ts +2 -2
- package/dist/commands/describe.d.ts.map +1 -1
- package/dist/commands/describe.js +14 -3
- package/dist/commands/describe.js.map +1 -1
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/dispatch.js +7 -6
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/explore.js +2 -2
- package/dist/commands/explore.js.map +1 -1
- package/dist/commands/generate.js +3 -3
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +4 -10
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/migrate.d.ts +9 -9
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +22 -22
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/repair.d.ts.map +1 -1
- package/dist/commands/repair.js +9 -4
- package/dist/commands/repair.js.map +1 -1
- package/dist/commands/search.d.ts +3 -3
- package/dist/commands/search.js +4 -4
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +8 -4
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/synthesize.js +2 -2
- package/dist/commands/synthesize.js.map +1 -1
- package/dist/discovery/aliases.d.ts.map +1 -1
- package/dist/discovery/aliases.js +69 -0
- package/dist/discovery/aliases.js.map +1 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +130 -0
- package/dist/discovery/loader.js.map +1 -1
- package/dist/engine/kernel/execute.d.ts.map +1 -1
- package/dist/engine/kernel/execute.js +27 -4
- package/dist/engine/kernel/execute.js.map +1 -1
- package/dist/engine/user-home.d.ts +9 -0
- package/dist/engine/user-home.d.ts.map +1 -0
- package/dist/engine/user-home.js +12 -0
- package/dist/engine/user-home.js.map +1 -0
- package/dist/fast-path.d.ts +14 -0
- package/dist/fast-path.d.ts.map +1 -0
- package/dist/fast-path.js +565 -0
- package/dist/fast-path.js.map +1 -0
- package/dist/hub/index.d.ts +1 -1
- package/dist/hub/index.d.ts.map +1 -1
- package/dist/hub/index.js +28 -17
- package/dist/hub/index.js.map +1 -1
- package/dist/main.js +6 -3
- package/dist/main.js.map +1 -1
- package/dist/manifest-compact.txt +11 -11
- package/dist/manifest-search.json +1 -1
- package/dist/manifest.json +27600 -1016
- package/dist/mcp/tools.js +1 -1
- package/dist/mcp/tools.js.map +1 -1
- package/dist/output/error-map.d.ts.map +1 -1
- package/dist/output/error-map.js +16 -5
- package/dist/output/error-map.js.map +1 -1
- package/dist/protocol/acp.js +1 -1
- package/dist/protocol/acp.js.map +1 -1
- package/dist/registry.d.ts +3 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +34 -1
- package/dist/registry.js.map +1 -1
- package/dist/runtime/usage-ledger.d.ts +6 -7
- package/dist/runtime/usage-ledger.d.ts.map +1 -1
- package/dist/runtime/usage-ledger.js +6 -7
- package/dist/runtime/usage-ledger.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +12 -6
- package/src/adapters/1688/assets.ts +114 -0
- package/src/adapters/51job/jobs.ts +327 -0
- package/src/adapters/_shared/browser-tools.ts +59 -0
- package/src/adapters/antigravity/extra.ts +53 -0
- package/src/adapters/baidu-scholar/search.ts +38 -0
- package/src/adapters/bilibili/compat.ts +132 -0
- package/src/adapters/binance/asks.yaml +41 -0
- package/src/adapters/binance/depth.yaml +41 -0
- package/src/adapters/binance/gainers.yaml +42 -0
- package/src/adapters/binance/hot.yaml +1 -1
- package/src/adapters/binance/kline.yaml +1 -1
- package/src/adapters/binance/klines.yaml +46 -0
- package/src/adapters/binance/losers.yaml +42 -0
- package/src/adapters/binance/pairs.yaml +38 -0
- package/src/adapters/binance/price.yaml +32 -0
- package/src/adapters/binance/prices.yaml +30 -0
- package/src/adapters/binance/ticker.yaml +2 -2
- package/src/adapters/binance/top.yaml +46 -0
- package/src/adapters/binance/trades.yaml +42 -0
- package/src/adapters/chatgpt/image.ts +84 -0
- package/src/adapters/chatgpt-app/chatgpt-app.ts +11 -0
- package/src/adapters/chatwise/extra.ts +36 -0
- package/src/adapters/codex/extra.ts +36 -0
- package/src/adapters/deepseek/web.ts +203 -0
- package/src/adapters/doubao/web.ts +154 -0
- package/src/adapters/eastmoney/market-data.ts +829 -0
- package/src/adapters/excel/insert-image.yaml +80 -0
- package/src/adapters/excel/insert-link.yaml +90 -0
- package/src/adapters/excel/list.yaml +63 -0
- package/src/adapters/excel/read.yaml +74 -0
- package/src/adapters/excel/set-cell.yaml +77 -0
- package/src/adapters/excel/set-font.yaml +87 -0
- package/src/adapters/excel/status.yaml +29 -0
- package/src/adapters/gh/search-repos.yaml +62 -0
- package/src/adapters/gitee/user.ts +59 -0
- package/src/adapters/google-scholar/cite.ts +95 -0
- package/src/adapters/google-scholar/profile.ts +91 -0
- package/src/adapters/google-scholar/search.ts +58 -0
- package/src/adapters/gov-law/laws.ts +61 -0
- package/src/adapters/gov-policy/policy.ts +61 -0
- package/src/adapters/imessage/contact.yaml +7 -2
- package/src/adapters/imessage/recent.yaml +7 -2
- package/src/adapters/imessage/search.yaml +7 -2
- package/src/adapters/jd/commerce.ts +142 -0
- package/src/adapters/jianyu/detail.ts +28 -0
- package/src/adapters/jimeng/workspace.ts +53 -0
- package/src/adapters/ke/rent-transaction.ts +70 -0
- package/src/adapters/linux-do/search.ts +92 -0
- package/src/adapters/linux-do/topic-content.ts +45 -0
- package/src/adapters/maimai/talents.ts +65 -0
- package/src/adapters/mubu/docs.ts +107 -0
- package/src/adapters/nowcoder/nowcoder.ts +570 -0
- package/src/adapters/powerchina/search.ts +45 -0
- package/src/adapters/powerpoint/add-slide.yaml +93 -0
- package/src/adapters/powerpoint/insert-image.yaml +71 -0
- package/src/adapters/powerpoint/insert-link.yaml +94 -0
- package/src/adapters/powerpoint/list.yaml +58 -0
- package/src/adapters/powerpoint/set-font.yaml +101 -0
- package/src/adapters/powerpoint/slides.yaml +73 -0
- package/src/adapters/powerpoint/status.yaml +29 -0
- package/src/adapters/quark/actions.ts +169 -0
- package/src/adapters/reddit/browser-utils.ts +93 -0
- package/src/adapters/reddit/listings.ts +223 -0
- package/src/adapters/reddit/search.ts +74 -0
- package/src/adapters/spotify/api.ts +292 -0
- package/src/adapters/taobao/commerce.ts +134 -0
- package/src/adapters/tdx/hot-rank.ts +35 -0
- package/src/adapters/ths/hot-rank.ts +35 -0
- package/src/adapters/toutiao/articles.ts +45 -0
- package/src/adapters/twitter/lists-extra.ts +139 -0
- package/src/adapters/uiverse/components.ts +154 -0
- package/src/adapters/vercel/list.yaml +2 -1
- package/src/adapters/wanfang/search.ts +38 -0
- package/src/adapters/weixin/drafts.ts +74 -0
- package/src/adapters/weread/ai-outline.ts +32 -0
- package/src/adapters/word/insert-image.yaml +73 -0
- package/src/adapters/word/insert-link.yaml +82 -0
- package/src/adapters/word/insert-text.yaml +72 -0
- package/src/adapters/word/list.yaml +63 -0
- package/src/adapters/word/read.yaml +63 -0
- package/src/adapters/word/set-font.yaml +97 -0
- package/src/adapters/word/status.yaml +29 -0
- package/src/adapters/xiaoyuzhou/media.ts +139 -0
- package/src/adapters/xueqiu/extra.ts +78 -0
- package/src/adapters/youtube/personal.ts +215 -0
- package/src/adapters/zhihu/actions.ts +111 -0
- package/src/hub/external-clis-harness.yaml +211 -0
- package/src/hub/index.ts +29 -25
- package/src/adapters/linux-do/search.yaml +0 -44
- package/src/adapters/meituan/hot.yaml +0 -34
- package/src/adapters/reddit/frontpage.test.ts +0 -15
- package/src/adapters/reddit/frontpage.yaml +0 -41
- package/src/adapters/reddit/hot.test.ts +0 -15
- package/src/adapters/reddit/hot.yaml +0 -41
- package/src/adapters/reddit/new.test.ts +0 -15
- package/src/adapters/reddit/new.yaml +0 -42
- package/src/adapters/reddit/popular.test.ts +0 -15
- package/src/adapters/reddit/popular.yaml +0 -41
- package/src/adapters/reddit/rising.test.ts +0 -15
- package/src/adapters/reddit/rising.yaml +0 -41
- package/src/adapters/reddit/search.test.ts +0 -15
- package/src/adapters/reddit/search.yaml +0 -52
- package/src/adapters/reddit/subreddit.test.ts +0 -15
- package/src/adapters/reddit/subreddit.yaml +0 -50
- package/src/adapters/reddit/top.test.ts +0 -15
- package/src/adapters/reddit/top.yaml +0 -48
- package/src/adapters/reddit/trending.test.ts +0 -15
- package/src/adapters/reddit/trending.yaml +0 -33
package/README.zh-CN.md
CHANGED
|
@@ -1,437 +1,310 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<img src="assets/icon.svg" width="180" alt="Uni-CLI">
|
|
6
|
-
|
|
7
|
-
# Uni-CLI
|
|
8
|
-
|
|
9
|
-
> 一个 CLI,让 Agent 真正会用网站、应用和电脑。
|
|
10
|
-
|
|
11
|
-
Uni-CLI 把一句话变成一条能跑的命令。Agent 先搜命令,再执行,拿 Markdown/JSON 结果;网站坏了,还能按错误信息自己修 YAML。
|
|
12
|
-
|
|
13
|
-
<br>
|
|
14
|
-
|
|
15
|
-
<img src="https://readme-typing-svg.demolab.com?font=JetBrains+Mono&duration=2200&pause=700&color=6A5ACD¢er=true&vCenter=true&width=720&lines=Find+the+right+command;Run+real+sites+and+apps;Get+JSON+or+Markdown+back;Fix+adapters+without+waiting" alt="Find the right command. Run real sites and apps. Get JSON or Markdown back. Fix adapters without waiting.">
|
|
16
|
-
|
|
17
|
-
<br>
|
|
18
|
-
|
|
19
|
-
<a href="https://www.npmjs.com/package/@zenalexa/unicli"><img src="https://img.shields.io/npm/v/@zenalexa/unicli?style=for-the-badge&color=cb3837&label=npm" alt="npm"></a>
|
|
20
|
-
<a href="https://github.com/olo-dot-io/Uni-CLI/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/olo-dot-io/Uni-CLI/ci.yml?style=for-the-badge&label=CI" alt="CI"></a>
|
|
21
|
-
<a href="https://github.com/olo-dot-io/Uni-CLI/stargazers"><img src="https://img.shields.io/github/stars/olo-dot-io/Uni-CLI?style=for-the-badge" alt="stars"></a>
|
|
22
|
-
<a href="./LICENSE"><img src="https://img.shields.io/github/license/olo-dot-io/Uni-CLI?style=for-the-badge" alt="license"></a>
|
|
23
|
-
<img src="https://img.shields.io/badge/tests-<!-- STATS:test_count -->7160<!-- /STATS -->-44cc11?style=for-the-badge" alt="tests">
|
|
24
|
-
<img src="https://img.shields.io/badge/agent--reach-ally-6a5acd?style=for-the-badge" alt="agent-reach ally">
|
|
25
|
-
|
|
26
|
-
<br>
|
|
27
|
-
|
|
28
|
-
<img src="https://img.shields.io/badge/<!-- STATS:site_count -->220<!-- /STATS -->_sites-111827?style=for-the-badge" alt="220 sites">
|
|
29
|
-
<img src="https://img.shields.io/badge/<!-- STATS:command_count -->1283<!-- /STATS -->_commands-0f766e?style=for-the-badge" alt="1283 commands">
|
|
30
|
-
<img src="https://img.shields.io/badge/58_CLI_bridges-7c3aed?style=for-the-badge" alt="58 CLI bridges">
|
|
31
|
-
<img src="https://img.shields.io/badge/v2_AgentEnvelope-2563eb?style=for-the-badge" alt="v2 AgentEnvelope">
|
|
32
|
-
<img src="https://img.shields.io/badge/self--repairing_YAML-f97316?style=for-the-badge" alt="self-repairing YAML">
|
|
33
|
-
|
|
34
|
-
<br>
|
|
35
|
-
|
|
36
|
-
[English](README.md)
|
|
37
|
-
|
|
38
|
-
<br>
|
|
39
|
-
|
|
40
|
-
<pre><code>npm install -g @zenalexa/unicli
|
|
41
|
-
unicli search "你的意图"
|
|
42
|
-
unicli <站点> <命令> -f json</code></pre>
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/mascot-otter.png" alt="Uni-CLI 水獭 mascot" width="180">
|
|
3
|
+
</p>
|
|
43
4
|
|
|
44
|
-
<
|
|
5
|
+
<h1 align="center">Uni-CLI</h1>
|
|
45
6
|
|
|
46
7
|
<p align="center">
|
|
47
|
-
<strong
|
|
48
|
-
<img src="https://img.shields.io/badge/微博-E6162D?style=flat-square&logo=sinaweibo&logoColor=white" alt="微博">
|
|
49
|
-
<img src="https://img.shields.io/badge/知乎-0084FF?style=flat-square&logo=zhihu&logoColor=white" alt="知乎">
|
|
50
|
-
<img src="https://img.shields.io/badge/Bilibili-00A1D6?style=flat-square&logo=bilibili&logoColor=white" alt="哔哩哔哩">
|
|
51
|
-
<img src="https://img.shields.io/badge/小红书-FF2442?style=flat-square&logoColor=white" alt="小红书">
|
|
52
|
-
<img src="https://img.shields.io/badge/抖音-000000?style=flat-square&logo=tiktok&logoColor=white" alt="抖音">
|
|
53
|
-
<img src="https://img.shields.io/badge/Twitter%2FX-000000?style=flat-square&logo=x&logoColor=white" alt="Twitter/X">
|
|
54
|
-
<img src="https://img.shields.io/badge/Reddit-FF4500?style=flat-square&logo=reddit&logoColor=white" alt="Reddit">
|
|
55
|
-
<img src="https://img.shields.io/badge/Instagram-E4405F?style=flat-square&logo=instagram&logoColor=white" alt="Instagram">
|
|
56
|
-
<img src="https://img.shields.io/badge/TikTok-000000?style=flat-square&logo=tiktok&logoColor=white" alt="TikTok">
|
|
57
|
-
<img src="https://img.shields.io/badge/YouTube-FF0000?style=flat-square&logo=youtube&logoColor=white" alt="YouTube">
|
|
58
|
-
<img src="https://img.shields.io/badge/HackerNews-FF6600?style=flat-square&logo=ycombinator&logoColor=white" alt="HackerNews">
|
|
59
|
-
<img src="https://img.shields.io/badge/StackOverflow-F58025?style=flat-square&logo=stackoverflow&logoColor=white" alt="StackOverflow">
|
|
60
|
-
<img src="https://img.shields.io/badge/ProductHunt-DA552F?style=flat-square&logo=producthunt&logoColor=white" alt="ProductHunt">
|
|
61
|
-
<img src="https://img.shields.io/badge/GitHub-181717?style=flat-square&logo=github&logoColor=white" alt="GitHub">
|
|
62
|
-
<img src="https://img.shields.io/badge/npm-CB3837?style=flat-square&logo=npm&logoColor=white" alt="npm">
|
|
63
|
-
<img src="https://img.shields.io/badge/PyPI-3775A9?style=flat-square&logo=pypi&logoColor=white" alt="PyPI">
|
|
64
|
-
<img src="https://img.shields.io/badge/Wikipedia-000000?style=flat-square&logo=wikipedia&logoColor=white" alt="Wikipedia">
|
|
65
|
-
<img src="https://img.shields.io/badge/Spotify-1DB954?style=flat-square&logo=spotify&logoColor=white" alt="Spotify">
|
|
66
|
-
<img src="https://img.shields.io/badge/IMDb-F5C518?style=flat-square&logo=imdb&logoColor=black" alt="IMDb">
|
|
67
|
-
<img src="https://img.shields.io/badge/Bloomberg-000000?style=flat-square&logoColor=white" alt="Bloomberg">
|
|
68
|
-
<img src="https://img.shields.io/badge/Reuters-FF8000?style=flat-square&logo=reuters&logoColor=white" alt="Reuters">
|
|
69
|
-
<img src="https://img.shields.io/badge/BBC-B80000?style=flat-square&logo=bbc&logoColor=white" alt="BBC">
|
|
70
|
-
<img src="https://img.shields.io/badge/Binance-F0B90B?style=flat-square&logo=binance&logoColor=black" alt="Binance">
|
|
71
|
-
<img src="https://img.shields.io/badge/Coinbase-0052FF?style=flat-square&logo=coinbase&logoColor=white" alt="Coinbase">
|
|
72
|
-
<img src="https://img.shields.io/badge/Yahoo%20Finance-6001D2?style=flat-square&logo=yahoo&logoColor=white" alt="Yahoo Finance">
|
|
73
|
-
<img src="https://img.shields.io/badge/HuggingFace-FFD21F?style=flat-square&logo=huggingface&logoColor=black" alt="HuggingFace">
|
|
8
|
+
<strong>给 Agent 用的一层统一 CLI:网站、桌面 App、本地工具、外部 CLI,都变成可搜索、可执行、可修复的命令。</strong>
|
|
74
9
|
</p>
|
|
75
10
|
|
|
76
11
|
<p align="center">
|
|
77
|
-
<
|
|
78
|
-
|
|
79
|
-
<
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
<img src="https://img.shields.io/badge/Kiro-FF9900?style=flat-square&logo=amazon&logoColor=black" alt="Kiro">
|
|
83
|
-
<img src="https://img.shields.io/badge/Gemini-4285F4?style=flat-square&logo=googlegemini&logoColor=white" alt="Gemini">
|
|
84
|
-
<img src="https://img.shields.io/badge/Qwen-1E88E5?style=flat-square&logoColor=white" alt="Qwen">
|
|
85
|
-
<img src="https://img.shields.io/badge/Kimi-6C5CE7?style=flat-square&logoColor=white" alt="Kimi">
|
|
86
|
-
<img src="https://img.shields.io/badge/MiniMax-00A6FB?style=flat-square&logoColor=white" alt="MiniMax">
|
|
87
|
-
<img src="https://img.shields.io/badge/Cline-6E56CF?style=flat-square&logoColor=white" alt="Cline">
|
|
88
|
-
<img src="https://img.shields.io/badge/Roo%20Code-2E7D32?style=flat-square&logoColor=white" alt="Roo Code">
|
|
89
|
-
<img src="https://img.shields.io/badge/Windsurf-00C2FF?style=flat-square&logoColor=white" alt="Windsurf">
|
|
90
|
-
<img src="https://img.shields.io/badge/Continue-000000?style=flat-square&logoColor=white" alt="Continue">
|
|
91
|
-
<img src="https://img.shields.io/badge/Aider-6F42C1?style=flat-square&logo=python&logoColor=white" alt="Aider">
|
|
92
|
-
<img src="https://img.shields.io/badge/Goose-111827?style=flat-square&logoColor=white" alt="Goose">
|
|
93
|
-
<img src="https://img.shields.io/badge/OpenHands-FF6B00?style=flat-square&logoColor=white" alt="OpenHands">
|
|
94
|
-
<img src="https://img.shields.io/badge/SWE--agent-0F172A?style=flat-square&logoColor=white" alt="SWE-agent">
|
|
95
|
-
<img src="https://img.shields.io/badge/GitHub%20Copilot-181717?style=flat-square&logo=githubcopilot&logoColor=white" alt="GitHub Copilot">
|
|
96
|
-
<img src="https://img.shields.io/badge/Amp-5B5BD6?style=flat-square&logoColor=white" alt="Amp">
|
|
97
|
-
<img src="https://img.shields.io/badge/Auggie-0EA5E9?style=flat-square&logoColor=white" alt="Auggie">
|
|
98
|
-
<img src="https://img.shields.io/badge/Crush-E11D48?style=flat-square&logoColor=white" alt="Crush">
|
|
99
|
-
<img src="https://img.shields.io/badge/AgentAPI-334155?style=flat-square&logoColor=white" alt="AgentAPI">
|
|
100
|
-
<img src="https://img.shields.io/badge/acpx-475569?style=flat-square&logoColor=white" alt="acpx">
|
|
12
|
+
<a href="https://olo-dot-io.github.io/Uni-CLI/">文档站</a>
|
|
13
|
+
·
|
|
14
|
+
<a href="https://olo-dot-io.github.io/Uni-CLI/reference/sites">站点目录</a>
|
|
15
|
+
·
|
|
16
|
+
<a href="https://olo-dot-io.github.io/Uni-CLI/llms.txt">llms.txt</a>
|
|
101
17
|
</p>
|
|
102
18
|
|
|
103
19
|
<p align="center">
|
|
104
|
-
|
|
105
|
-
<img src="https://img.shields.io/badge/macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS">
|
|
106
|
-
<img src="https://img.shields.io/badge/Chrome-4285F4?style=flat-square&logo=googlechrome&logoColor=white" alt="Chrome">
|
|
107
|
-
<img src="https://img.shields.io/badge/Blender-F5792A?style=flat-square&logo=blender&logoColor=white" alt="Blender">
|
|
108
|
-
<img src="https://img.shields.io/badge/ffmpeg-007808?style=flat-square&logo=ffmpeg&logoColor=white" alt="ffmpeg">
|
|
109
|
-
<img src="https://img.shields.io/badge/ImageMagick-0074C1?style=flat-square&logoColor=white" alt="ImageMagick">
|
|
110
|
-
<img src="https://img.shields.io/badge/GIMP-5C5543?style=flat-square&logo=gimp&logoColor=white" alt="GIMP">
|
|
111
|
-
<img src="https://img.shields.io/badge/FreeCAD-729FCF?style=flat-square&logo=freecad&logoColor=white" alt="FreeCAD">
|
|
112
|
-
<img src="https://img.shields.io/badge/Audacity-0000CC?style=flat-square&logo=audacity&logoColor=white" alt="Audacity">
|
|
113
|
-
<img src="https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white" alt="Docker">
|
|
114
|
-
<img src="https://img.shields.io/badge/GitHub%20CLI-181717?style=flat-square&logo=github&logoColor=white" alt="GitHub CLI">
|
|
115
|
-
<img src="https://img.shields.io/badge/jq-C7254E?style=flat-square&logo=json&logoColor=white" alt="jq">
|
|
116
|
-
<img src="https://img.shields.io/badge/yt--dlp-4A5568?style=flat-square&logo=youtube&logoColor=white" alt="yt-dlp">
|
|
117
|
-
<img src="https://img.shields.io/badge/AWS-232F3E?style=flat-square&logo=amazonaws&logoColor=white" alt="AWS">
|
|
118
|
-
<img src="https://img.shields.io/badge/Vercel-000000?style=flat-square&logo=vercel&logoColor=white" alt="Vercel">
|
|
119
|
-
<img src="https://img.shields.io/badge/Supabase-3ECF8E?style=flat-square&logo=supabase&logoColor=black" alt="Supabase">
|
|
120
|
-
<img src="https://img.shields.io/badge/Cloudflare-F38020?style=flat-square&logo=cloudflare&logoColor=white" alt="Cloudflare">
|
|
121
|
-
<img src="https://img.shields.io/badge/Stripe-635BFF?style=flat-square&logo=stripe&logoColor=white" alt="Stripe">
|
|
122
|
-
<img src="https://img.shields.io/badge/Firebase-FFCA28?style=flat-square&logo=firebase&logoColor=black" alt="Firebase">
|
|
123
|
-
<img src="https://img.shields.io/badge/Netlify-00C7B7?style=flat-square&logo=netlify&logoColor=white" alt="Netlify">
|
|
124
|
-
<img src="https://img.shields.io/badge/Railway-0B0D0E?style=flat-square&logo=railway&logoColor=white" alt="Railway">
|
|
125
|
-
<img src="https://img.shields.io/badge/Azure-0078D4?style=flat-square&logo=microsoftazure&logoColor=white" alt="Azure">
|
|
126
|
-
<img src="https://img.shields.io/badge/Google%20Cloud-4285F4?style=flat-square&logo=googlecloud&logoColor=white" alt="Google Cloud">
|
|
127
|
-
<img src="https://img.shields.io/badge/Twilio-F22F46?style=flat-square&logo=twilio&logoColor=white" alt="Twilio">
|
|
128
|
-
<img src="https://img.shields.io/badge/Resend-000000?style=flat-square&logo=resend&logoColor=white" alt="Resend">
|
|
129
|
-
<img src="https://img.shields.io/badge/Algolia-003DFF?style=flat-square&logo=algolia&logoColor=white" alt="Algolia">
|
|
130
|
-
<img src="https://img.shields.io/badge/Slack-4A154B?style=flat-square&logo=slack&logoColor=white" alt="Slack">
|
|
131
|
-
<img src="https://img.shields.io/badge/Notion-000000?style=flat-square&logo=notion&logoColor=white" alt="Notion">
|
|
132
|
-
<img src="https://img.shields.io/badge/Linear-5E6AD2?style=flat-square&logo=linear&logoColor=white" alt="Linear">
|
|
133
|
-
<img src="https://img.shields.io/badge/Figma-F24E1E?style=flat-square&logo=figma&logoColor=white" alt="Figma">
|
|
20
|
+
先按意图搜索,再执行真实命令,最后拿结构化结果。网站变了也不会假装成功,错误会告诉你哪个 adapter、哪一步、怎么修。
|
|
134
21
|
</p>
|
|
135
22
|
|
|
136
|
-
<
|
|
137
|
-
<
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
</table>
|
|
143
|
-
|
|
144
|
-
<br>
|
|
145
|
-
|
|
146
|
-
<img src="docs/demo/demo.svg" alt="Uni-CLI 30 秒演示" width="720">
|
|
23
|
+
<p align="center">
|
|
24
|
+
<a href="https://www.npmjs.com/package/@zenalexa/unicli"><img alt="npm" src="https://img.shields.io/npm/v/@zenalexa/unicli?style=flat-square"></a>
|
|
25
|
+
<a href="./LICENSE"><img alt="license" src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square"></a>
|
|
26
|
+
<img alt="Node 20+" src="https://img.shields.io/badge/node-20%2B-339933?style=flat-square&logo=node.js&logoColor=white">
|
|
27
|
+
<img alt="MCP" src="https://img.shields.io/badge/MCP-2025--11--25-6f42c1?style=flat-square">
|
|
28
|
+
</p>
|
|
147
29
|
|
|
148
|
-
|
|
30
|
+
<p align="center">
|
|
31
|
+
<sub><!-- STATS:site_count -->235<!-- /STATS --> 个站点 · <!-- STATS:command_count -->1448<!-- /STATS --> 条命令 · <!-- STATS:pipeline_step_count -->59<!-- /STATS --> 个 pipeline step · <!-- STATS:test_count -->7391<!-- /STATS --> 个测试</sub>
|
|
32
|
+
</p>
|
|
149
33
|
|
|
150
|
-
|
|
34
|
+
<p align="center">
|
|
35
|
+
<strong>Web / Social / Knowledge</strong><br>
|
|
36
|
+
<img src="https://img.shields.io/badge/X-000000?style=flat-square&logo=x&logoColor=white" alt="X">
|
|
37
|
+
<img src="https://img.shields.io/badge/Reddit-FF4500?style=flat-square&logo=reddit&logoColor=white" alt="Reddit">
|
|
38
|
+
<img src="https://img.shields.io/badge/Instagram-E4405F?style=flat-square&logo=instagram&logoColor=white" alt="Instagram">
|
|
39
|
+
<img src="https://img.shields.io/badge/TikTok-000000?style=flat-square&logo=tiktok&logoColor=white" alt="TikTok">
|
|
40
|
+
<img src="https://img.shields.io/badge/YouTube-FF0000?style=flat-square&logo=youtube&logoColor=white" alt="YouTube">
|
|
41
|
+
<img src="https://img.shields.io/badge/Bilibili-00A1D6?style=flat-square&logo=bilibili&logoColor=white" alt="Bilibili">
|
|
42
|
+
<img src="https://img.shields.io/badge/Zhihu-0084FF?style=flat-square&logo=zhihu&logoColor=white" alt="Zhihu">
|
|
43
|
+
<img src="https://img.shields.io/badge/Weibo-E6162D?style=flat-square&logo=sinaweibo&logoColor=white" alt="Weibo">
|
|
44
|
+
<img src="https://img.shields.io/badge/Xiaohongshu-FF2442?style=flat-square&logoColor=white" alt="Xiaohongshu">
|
|
45
|
+
<img src="https://img.shields.io/badge/Douyin-000000?style=flat-square&logo=tiktok&logoColor=white" alt="Douyin">
|
|
46
|
+
<img src="https://img.shields.io/badge/Hacker%20News-FF6600?style=flat-square&logo=ycombinator&logoColor=white" alt="Hacker News">
|
|
47
|
+
<img src="https://img.shields.io/badge/GitHub-181717?style=flat-square&logo=github&logoColor=white" alt="GitHub">
|
|
48
|
+
<img src="https://img.shields.io/badge/Stack%20Overflow-F58025?style=flat-square&logo=stackoverflow&logoColor=white" alt="Stack Overflow">
|
|
49
|
+
<img src="https://img.shields.io/badge/Product%20Hunt-DA552F?style=flat-square&logo=producthunt&logoColor=white" alt="Product Hunt">
|
|
50
|
+
<img src="https://img.shields.io/badge/npm-CB3837?style=flat-square&logo=npm&logoColor=white" alt="npm">
|
|
51
|
+
<img src="https://img.shields.io/badge/PyPI-3775A9?style=flat-square&logo=pypi&logoColor=white" alt="PyPI">
|
|
52
|
+
<img src="https://img.shields.io/badge/Wikipedia-000000?style=flat-square&logo=wikipedia&logoColor=white" alt="Wikipedia">
|
|
53
|
+
<img src="https://img.shields.io/badge/Spotify-1DB954?style=flat-square&logo=spotify&logoColor=white" alt="Spotify">
|
|
54
|
+
<img src="https://img.shields.io/badge/IMDb-F5C518?style=flat-square&logo=imdb&logoColor=black" alt="IMDb">
|
|
55
|
+
<img src="https://img.shields.io/badge/Bloomberg-000000?style=flat-square&logoColor=white" alt="Bloomberg">
|
|
56
|
+
<img src="https://img.shields.io/badge/Reuters-FF8000?style=flat-square&logo=reuters&logoColor=white" alt="Reuters">
|
|
57
|
+
<img src="https://img.shields.io/badge/BBC-B80000?style=flat-square&logo=bbc&logoColor=white" alt="BBC">
|
|
58
|
+
<img src="https://img.shields.io/badge/Binance-F0B90B?style=flat-square&logo=binance&logoColor=black" alt="Binance">
|
|
59
|
+
<img src="https://img.shields.io/badge/Coinbase-0052FF?style=flat-square&logo=coinbase&logoColor=white" alt="Coinbase">
|
|
60
|
+
<img src="https://img.shields.io/badge/Yahoo%20Finance-6001D2?style=flat-square&logo=yahoo&logoColor=white" alt="Yahoo Finance">
|
|
61
|
+
</p>
|
|
151
62
|
|
|
152
|
-
|
|
63
|
+
<p align="center">
|
|
64
|
+
<strong>Agent / IDE / Coding Surfaces</strong><br>
|
|
65
|
+
<img src="https://img.shields.io/badge/Claude%20Code-D97757?style=flat-square&logo=anthropic&logoColor=white" alt="Claude Code">
|
|
66
|
+
<img src="https://img.shields.io/badge/Codex-111111?style=flat-square&logo=openai&logoColor=white" alt="Codex">
|
|
67
|
+
<img src="https://img.shields.io/badge/OpenCode-101010?style=flat-square&logoColor=white" alt="OpenCode">
|
|
68
|
+
<img src="https://img.shields.io/badge/Cursor-000000?style=flat-square&logoColor=white" alt="Cursor">
|
|
69
|
+
<img src="https://img.shields.io/badge/Kiro-FF9900?style=flat-square&logo=amazon&logoColor=black" alt="Kiro">
|
|
70
|
+
<img src="https://img.shields.io/badge/Gemini-4285F4?style=flat-square&logo=googlegemini&logoColor=white" alt="Gemini">
|
|
71
|
+
<img src="https://img.shields.io/badge/Qwen-1E88E5?style=flat-square&logoColor=white" alt="Qwen">
|
|
72
|
+
<img src="https://img.shields.io/badge/Kimi-6C5CE7?style=flat-square&logoColor=white" alt="Kimi">
|
|
73
|
+
<img src="https://img.shields.io/badge/MiniMax-00A6FB?style=flat-square&logoColor=white" alt="MiniMax">
|
|
74
|
+
<img src="https://img.shields.io/badge/Cline-6E56CF?style=flat-square&logoColor=white" alt="Cline">
|
|
75
|
+
<img src="https://img.shields.io/badge/Roo%20Code-2E7D32?style=flat-square&logoColor=white" alt="Roo Code">
|
|
76
|
+
<img src="https://img.shields.io/badge/Windsurf-00C2FF?style=flat-square&logoColor=white" alt="Windsurf">
|
|
77
|
+
<img src="https://img.shields.io/badge/Aider-6F42C1?style=flat-square&logo=python&logoColor=white" alt="Aider">
|
|
78
|
+
<img src="https://img.shields.io/badge/Goose-111827?style=flat-square&logoColor=white" alt="Goose">
|
|
79
|
+
<img src="https://img.shields.io/badge/OpenHands-FF6B00?style=flat-square&logoColor=white" alt="OpenHands">
|
|
80
|
+
<img src="https://img.shields.io/badge/SWE--agent-0F172A?style=flat-square&logoColor=white" alt="SWE-agent">
|
|
81
|
+
<img src="https://img.shields.io/badge/GitHub%20Copilot-181717?style=flat-square&logo=githubcopilot&logoColor=white" alt="GitHub Copilot">
|
|
82
|
+
<img src="https://img.shields.io/badge/AgentAPI-334155?style=flat-square&logoColor=white" alt="AgentAPI">
|
|
83
|
+
<img src="https://img.shields.io/badge/acpx-475569?style=flat-square&logoColor=white" alt="acpx">
|
|
84
|
+
</p>
|
|
153
85
|
|
|
154
|
-
|
|
86
|
+
<p align="center">
|
|
87
|
+
<strong>Desktop / Media / DevOps / Cloud</strong><br>
|
|
88
|
+
<img src="https://img.shields.io/badge/macOS-000000?style=flat-square&logo=apple&logoColor=white" alt="macOS">
|
|
89
|
+
<img src="https://img.shields.io/badge/Chrome-4285F4?style=flat-square&logo=googlechrome&logoColor=white" alt="Chrome">
|
|
90
|
+
<img src="https://img.shields.io/badge/Blender-F5792A?style=flat-square&logo=blender&logoColor=white" alt="Blender">
|
|
91
|
+
<img src="https://img.shields.io/badge/FFmpeg-007808?style=flat-square&logo=ffmpeg&logoColor=white" alt="FFmpeg">
|
|
92
|
+
<img src="https://img.shields.io/badge/ImageMagick-0074C1?style=flat-square&logoColor=white" alt="ImageMagick">
|
|
93
|
+
<img src="https://img.shields.io/badge/GIMP-5C5543?style=flat-square&logo=gimp&logoColor=white" alt="GIMP">
|
|
94
|
+
<img src="https://img.shields.io/badge/FreeCAD-729FCF?style=flat-square&logo=freecad&logoColor=white" alt="FreeCAD">
|
|
95
|
+
<img src="https://img.shields.io/badge/Audacity-0000CC?style=flat-square&logo=audacity&logoColor=white" alt="Audacity">
|
|
96
|
+
<img src="https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker&logoColor=white" alt="Docker">
|
|
97
|
+
<img src="https://img.shields.io/badge/GitHub%20CLI-181717?style=flat-square&logo=github&logoColor=white" alt="GitHub CLI">
|
|
98
|
+
<img src="https://img.shields.io/badge/jq-C7254E?style=flat-square&logo=json&logoColor=white" alt="jq">
|
|
99
|
+
<img src="https://img.shields.io/badge/yt--dlp-4A5568?style=flat-square&logo=youtube&logoColor=white" alt="yt-dlp">
|
|
100
|
+
<img src="https://img.shields.io/badge/AWS-232F3E?style=flat-square&logo=amazonaws&logoColor=white" alt="AWS">
|
|
101
|
+
<img src="https://img.shields.io/badge/Vercel-000000?style=flat-square&logo=vercel&logoColor=white" alt="Vercel">
|
|
102
|
+
<img src="https://img.shields.io/badge/Supabase-3ECF8E?style=flat-square&logo=supabase&logoColor=black" alt="Supabase">
|
|
103
|
+
<img src="https://img.shields.io/badge/Cloudflare-F38020?style=flat-square&logo=cloudflare&logoColor=white" alt="Cloudflare">
|
|
104
|
+
<img src="https://img.shields.io/badge/Stripe-635BFF?style=flat-square&logo=stripe&logoColor=white" alt="Stripe">
|
|
105
|
+
<img src="https://img.shields.io/badge/Firebase-FFCA28?style=flat-square&logo=firebase&logoColor=black" alt="Firebase">
|
|
106
|
+
<img src="https://img.shields.io/badge/Netlify-00C7B7?style=flat-square&logo=netlify&logoColor=white" alt="Netlify">
|
|
107
|
+
<img src="https://img.shields.io/badge/Railway-0B0D0E?style=flat-square&logo=railway&logoColor=white" alt="Railway">
|
|
108
|
+
<img src="https://img.shields.io/badge/Azure-0078D4?style=flat-square&logo=microsoftazure&logoColor=white" alt="Azure">
|
|
109
|
+
<img src="https://img.shields.io/badge/Google%20Cloud-4285F4?style=flat-square&logo=googlecloud&logoColor=white" alt="Google Cloud">
|
|
110
|
+
<img src="https://img.shields.io/badge/Slack-4A154B?style=flat-square&logo=slack&logoColor=white" alt="Slack">
|
|
111
|
+
<img src="https://img.shields.io/badge/Notion-000000?style=flat-square&logo=notion&logoColor=white" alt="Notion">
|
|
112
|
+
<img src="https://img.shields.io/badge/Linear-5E6AD2?style=flat-square&logo=linear&logoColor=white" alt="Linear">
|
|
113
|
+
<img src="https://img.shields.io/badge/Figma-F24E1E?style=flat-square&logo=figma&logoColor=white" alt="Figma">
|
|
114
|
+
</p>
|
|
155
115
|
|
|
116
|
+
```bash
|
|
117
|
+
npm install -g @zenalexa/unicli
|
|
118
|
+
unicli search "微博热搜"
|
|
119
|
+
unicli hackernews top -f json
|
|
156
120
|
```
|
|
157
|
-
帮我配置 unicli——它能给 AI Agent 提供 220 个站点的 CLI 访问权限,支持自修复适配器:
|
|
158
|
-
1. npm install -g @zenalexa/unicli
|
|
159
|
-
2. 添加 MCP:claude mcp add unicli -- npx @zenalexa/unicli mcp serve
|
|
160
|
-
3. 验证:unicli hackernews top -f json
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
Agent 自己会搞定。回来的时候,220 个站点都在 CLI 里等着你了。
|
|
164
|
-
|
|
165
|
-
**各平台一行配置:**
|
|
166
|
-
|
|
167
|
-
| 平台 | 配置方式 |
|
|
168
|
-
| ---------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
169
|
-
| **Claude Code** | `claude mcp add unicli -- npx @zenalexa/unicli mcp serve` |
|
|
170
|
-
| **Codex CLI** | 在 `~/.codex/config.toml` 添加 `[mcp_servers.unicli]` · `command = "npx @zenalexa/unicli mcp serve"` |
|
|
171
|
-
| **Cursor / Windsurf** | MCP 设置 → 添加服务器 → `npx @zenalexa/unicli mcp serve` |
|
|
172
|
-
| **avante.nvim / Zed** | `unicli acp` — ACP 兼容入口;核心执行优先走 CLI/JSON/MCP |
|
|
173
|
-
| **OpenCode** | 在 `opencode.jsonc` 中添加 `"command": "unicli mcp serve"` |
|
|
174
|
-
| **Kiro / Cline / Roo** | 作为 MCP server 接入 Uni-CLI;编辑器继续拥有 session |
|
|
175
|
-
| **任何有 Bash 权限的 Agent** | 直接运行 `unicli <站点> <命令>` — 零配置 |
|
|
176
|
-
|
|
177
|
-
---
|
|
178
121
|
|
|
179
|
-
|
|
122
|
+
<!-- IF YOU ARE AN AI AGENT: Start here.
|
|
123
|
+
Install: npm install -g @zenalexa/unicli
|
|
124
|
+
Discover: unicli search "your intent"
|
|
125
|
+
Run: unicli <site> <command> [args] [-f json|md|yaml|csv|compact]
|
|
126
|
+
Repair: read the error envelope, edit the adapter_path, run unicli repair <site> <command>
|
|
127
|
+
Prefer native CLI / JSON stream / MCP for agent runtimes. Use ACP as an editor compatibility gateway.
|
|
128
|
+
-->
|
|
180
129
|
|
|
181
|
-
|
|
130
|
+
## 它解决什么
|
|
182
131
|
|
|
183
|
-
|
|
132
|
+
Uni-CLI 把软件表面封装成 Agent 能发现、能执行、能修的命令。
|
|
184
133
|
|
|
185
|
-
|
|
134
|
+
| 表面 | 能力 |
|
|
135
|
+
| ------------ | ------------------------------------------------------------------------------- |
|
|
136
|
+
| 网站和 API | public、cookie、header、browser-intercept 等 adapter |
|
|
137
|
+
| 浏览器自动化 | CDP 的 navigate、click、type、intercept、snapshot、extract、wait 等步骤 |
|
|
138
|
+
| 桌面和 macOS | 系统命令、App adapter、截图、剪贴板、日历、亮度、本地工具 |
|
|
139
|
+
| 外部 CLI | 58 个已登记的 passthrough bridge,支持安装和状态发现 |
|
|
140
|
+
| Agent 后端 | native CLI、JSON stream、MCP、ACP、HTTP API、OpenAI-compatible、bridge 路由矩阵 |
|
|
141
|
+
| 输出 | v2 `AgentEnvelope`,支持 Markdown、JSON、YAML、CSV、compact |
|
|
142
|
+
| 修复 | 错误里带 `adapter_path`、失败 `step`、是否可重试、修复建议和替代命令 |
|
|
186
143
|
|
|
187
|
-
|
|
144
|
+
## 给 Agent 的入口
|
|
188
145
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
| 接口 | 冷启动开销 | 单次命令成本 | 自修复 |
|
|
192
|
-
| ----------------------------- | -------------- | ------------------------------------------- | ------ |
|
|
193
|
-
| 典型 MCP 服务器(93 工具) | ~55,000 token | ~500–2,000 token | 否 |
|
|
194
|
-
| **Uni-CLI MCP**(4 个元工具) | **~200 token** | 见 [`docs/BENCHMARK.md`](docs/BENCHMARK.md) | **是** |
|
|
195
|
-
| **Uni-CLI via Bash** | **0 token** | 见 [`docs/BENCHMARK.md`](docs/BENCHMARK.md) | **是** |
|
|
196
|
-
|
|
197
|
-
Uni-CLI 的 MCP 服务器只暴露四个元工具(`unicli_run`、`unicli_list`、`unicli_search`、`unicli_explore`),Agent 通过 BM25 中英双语搜索在 50KB 索引中按需拉取精确命令。直接 Bash 调用没有工具目录 token,只是一次确定性的子进程执行。可复现的本地数据(p50/p95,token + latency):[`docs/BENCHMARK.md`](docs/BENCHMARK.md)。
|
|
198
|
-
|
|
199
|
-
## 快速开始
|
|
146
|
+
先搜索,再执行最小可用命令。
|
|
200
147
|
|
|
201
148
|
```bash
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
# 发现命令(中英双语)
|
|
206
|
-
unicli list # 所有站点 + 命令
|
|
207
|
-
unicli search "微博热搜" # → weibo trending
|
|
208
|
-
unicli search "B站热门" # → bilibili popular
|
|
209
|
-
unicli search "download video" # → bilibili download, yt-dlp
|
|
210
|
-
|
|
211
|
-
# 运行
|
|
212
|
-
unicli weibo trending --limit 10 # 微博热搜,零配置
|
|
213
|
-
unicli zhihu hot -f json # 知乎热榜,JSON envelope
|
|
214
|
-
unicli bilibili popular --limit 5 # B 站热门视频
|
|
215
|
-
unicli hackernews top -f json | jq '.data[].title' # 管道 + 变换
|
|
216
|
-
|
|
217
|
-
# 接入 Agent
|
|
218
|
-
claude mcp add unicli -- npx @zenalexa/unicli mcp serve # Claude Code
|
|
219
|
-
unicli mcp serve --transport streamable --port 19826 # 任意 MCP 客户端
|
|
220
|
-
unicli acp # avante.nvim / Zed
|
|
149
|
+
unicli search "推特热门" --limit 5
|
|
150
|
+
unicli twitter search "coding agents" -f json
|
|
151
|
+
unicli repair twitter search
|
|
221
152
|
```
|
|
222
153
|
|
|
223
|
-
|
|
154
|
+
非 TTY 和 Agent 环境默认输出结构化 Markdown。需要机器格式时显式指定:
|
|
224
155
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
```
|
|
230
|
-
unicli <站点> <命令> 失败
|
|
231
|
-
→ stderr: { "adapter_path": "~/.unicli/adapters/weibo/trending.yaml",
|
|
232
|
-
"step": "fetch", "action": "GET /api/v4/search/top",
|
|
233
|
-
"suggestion": "endpoint 可能已版本化为 /api/v4/search/trending" }
|
|
234
|
-
→ Agent 打开 adapter_path 处的 ~20 行 YAML
|
|
235
|
-
→ Agent 修改选择器 / 端点 / 认证头
|
|
236
|
-
→ unicli <站点> <命令> 成功
|
|
237
|
-
→ 修复保存到 ~/.unicli/adapters/ — 永久生效,npm update 不覆盖
|
|
156
|
+
```bash
|
|
157
|
+
UNICLI_OUTPUT=json unicli reddit hot --limit 10
|
|
158
|
+
unicli hackernews top --limit 5 -f yaml
|
|
238
159
|
```
|
|
239
160
|
|
|
240
|
-
|
|
161
|
+
协议入口:
|
|
241
162
|
|
|
242
163
|
```bash
|
|
243
|
-
unicli
|
|
244
|
-
unicli
|
|
245
|
-
unicli
|
|
164
|
+
npx @zenalexa/unicli mcp serve
|
|
165
|
+
npx @zenalexa/unicli mcp serve --transport streamable --port 19826
|
|
166
|
+
unicli acp
|
|
167
|
+
unicli agents recommend codex
|
|
168
|
+
unicli agents matrix
|
|
246
169
|
```
|
|
247
170
|
|
|
248
|
-
|
|
171
|
+
ACP 作为编辑器和桥接兼容层保留。真正跑任务时,优先 native CLI、JSON stream 或 MCP。
|
|
249
172
|
|
|
250
|
-
##
|
|
173
|
+
## 覆盖范围
|
|
251
174
|
|
|
252
|
-
|
|
175
|
+
数量不是重点,重点是每条命令都能搜索、可声明、可验证、可修。
|
|
253
176
|
|
|
254
|
-
|
|
|
255
|
-
|
|
|
256
|
-
|
|
|
257
|
-
|
|
|
258
|
-
|
|
|
259
|
-
|
|
|
260
|
-
|
|
|
261
|
-
|
|
|
262
|
-
| **CUA** | screenshot/action 合同、mock 后端、provider 接口桩 |
|
|
177
|
+
| 领域 | 例子 |
|
|
178
|
+
| ------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
179
|
+
| 中文平台 | xiaohongshu、zhihu、bilibili、douyin、douban、v2ex、jike、linux-do |
|
|
180
|
+
| 国际平台 | twitter、reddit、instagram、tiktok、discord、slack、hackernews、lesswrong |
|
|
181
|
+
| AI 和开发工具 | Claude、ChatGPT、Gemini、Codex、Cursor、VS Code、Docker Desktop、Postman |
|
|
182
|
+
| 财经和新闻 | xueqiu、eastmoney、yahoo-finance、bloomberg、reuters、bbc、36kr |
|
|
183
|
+
| 桌面 App | Blender、FreeCAD、GIMP、Audacity、Figma、Docker、ImageMagick、ffmpeg |
|
|
184
|
+
| Agent CLI | Claude Code、Codex、OpenCode、Gemini CLI、Qwen Code、Aider、Goose、Cursor Agent、Kiro、OpenHands、SWE-agent |
|
|
263
185
|
|
|
264
|
-
|
|
186
|
+
看实时目录:
|
|
265
187
|
|
|
266
|
-
|
|
188
|
+
```bash
|
|
189
|
+
unicli list
|
|
190
|
+
unicli list --site macos
|
|
191
|
+
unicli ext list
|
|
192
|
+
unicli ext list --tag agent
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
同一份生成目录也发布在文档站:
|
|
196
|
+
<https://olo-dot-io.github.io/Uni-CLI/reference/sites>
|
|
267
197
|
|
|
268
|
-
|
|
269
|
-
| ------------------ | --------------------------------------------------------------------------------------------- |
|
|
270
|
-
| **CUA 合同** | 稳定 screenshot/action 接口、mock 后端和显式 provider 桩;尚不按真实 computer-use 宣传 |
|
|
271
|
-
| **MCP 传输** | stdio · Streamable HTTP(规范 2025-11-25)· SSE · OAuth 2.1 PKCE |
|
|
272
|
-
| **Agent 后端矩阵** | `unicli agents matrix/recommend`:覆盖 native CLI、JSON stream、MCP、桥接、编辑器和 watchlist |
|
|
273
|
-
| **ACP Gateway** | `unicli acp` — 保留 avante.nvim/Zed 兼容入口,不作为核心 runtime |
|
|
274
|
-
| **跨厂商 Skills** | Claude Code · OpenCode · Codex CLI · Cursor · Windsurf · Cline |
|
|
275
|
-
| **自修复** | 每条 stderr 错误携带 `adapter_path` + `step` + `suggestion`(Banach 收敛) |
|
|
276
|
-
| **中英双语搜索** | BM25 + TF-IDF · 50KB 索引 · <10ms · 200 条 ZH↔EN 别名表 |
|
|
277
|
-
| **浏览器守护进程** | 持久化 Chrome(CDP)· 复用登录状态 · 13 层反检测隐身 |
|
|
278
|
-
| **输出格式** | 终端表格 · JSON(管道自动切换)· YAML · CSV · Markdown |
|
|
279
|
-
| **认证策略** | public · cookie · CSRF header · browser intercept · UI 自动化 — 自动级联探测 |
|
|
198
|
+
## 输出契约
|
|
280
199
|
|
|
281
|
-
|
|
200
|
+
普通命令都返回 v2 envelope。`mcp serve` 和 `acp` 是协议服务器,保留各自原始 stdio 协议。
|
|
282
201
|
|
|
283
|
-
|
|
202
|
+
```yaml
|
|
203
|
+
ok: true
|
|
204
|
+
schema_version: "2"
|
|
205
|
+
command: "twitter.search"
|
|
206
|
+
meta:
|
|
207
|
+
duration_ms: 412
|
|
208
|
+
count: 20
|
|
209
|
+
surface: web
|
|
210
|
+
data:
|
|
211
|
+
- { id: "...", text: "...", author: "..." }
|
|
212
|
+
error: null
|
|
213
|
+
```
|
|
284
214
|
|
|
285
|
-
|
|
286
|
-
| ------------------- | -------------------------------------------------------------------- |
|
|
287
|
-
| **社交媒体 (25)** | 微博 · 知乎 · 哔哩哔哩 · 小红书 · 推特 · Reddit · Instagram · TikTok |
|
|
288
|
-
| **科技社区 (19)** | Hacker News · Stack Overflow · GitHub Trending · npm · PyPI |
|
|
289
|
-
| **资讯新闻 (11)** | BBC · Reuters · Bloomberg · 36kr · 纽约时报 · TechCrunch |
|
|
290
|
-
| **金融财经 (8)** | 雪球 · 东方财富 · Yahoo Finance · 币安 · Coinbase |
|
|
291
|
-
| **AI / ML (14)** | HuggingFace · 魔搭 · Ollama · Replicate · DeepSeek · 豆包 |
|
|
292
|
-
| **桌面软件 (30+)** | Blender · ffmpeg · ImageMagick · GIMP · FreeCAD · LibreOffice |
|
|
293
|
-
| **macOS 系统 (58)** | 截屏 · 剪贴板 · 日历 · 邮件 · 提醒事项 · 快捷指令 · Safari |
|
|
294
|
-
| **CLI 桥接 (58)** | claude · codex · gemini · qwen · kiro · opencode · aider · goose |
|
|
215
|
+
错误也要可执行:
|
|
295
216
|
|
|
296
|
-
|
|
217
|
+
```yaml
|
|
218
|
+
ok: false
|
|
219
|
+
schema_version: "2"
|
|
220
|
+
command: "twitter.search"
|
|
221
|
+
meta:
|
|
222
|
+
duration_ms: 91
|
|
223
|
+
data: null
|
|
224
|
+
error:
|
|
225
|
+
code: auth_required
|
|
226
|
+
message: "401 Unauthorized"
|
|
227
|
+
adapter_path: "src/adapters/twitter/search.yaml"
|
|
228
|
+
step: 1
|
|
229
|
+
suggestion: "Run: unicli auth setup twitter"
|
|
230
|
+
retryable: false
|
|
231
|
+
alternatives: ["twitter.timeline", "twitter.profile"]
|
|
232
|
+
```
|
|
297
233
|
|
|
298
|
-
|
|
234
|
+
退出码:`0` 成功,`66` 空结果,`69` 服务不可用,`75` 临时失败,`77` 需要认证,`78` 配置错误。
|
|
299
235
|
|
|
300
|
-
|
|
236
|
+
## 自修复
|
|
301
237
|
|
|
302
|
-
|
|
303
|
-
| ----------- | ------------------------------------------ |
|
|
304
|
-
| `public` | 直接 HTTP,无需凭证 |
|
|
305
|
-
| `cookie` | `~/.unicli/cookies/<站点>.json` 注入请求头 |
|
|
306
|
-
| `header` | Cookie + 自动提取 CSRF(ct0、bili_jct 等) |
|
|
307
|
-
| `intercept` | Chrome 导航,Uni-CLI 捕获 XHR/fetch 响应 |
|
|
308
|
-
| `ui` | 通过 CDP 直接操作 DOM(点击、输入、提交) |
|
|
238
|
+
adapter 默认是很小的 YAML。命令失败时,Agent 不需要猜,可以直接按错误定位到文件和步骤。
|
|
309
239
|
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
240
|
+
```text
|
|
241
|
+
1. 执行命令。
|
|
242
|
+
2. 读取错误 envelope。
|
|
243
|
+
3. 打开 error.adapter_path。
|
|
244
|
+
4. 修改失败 step。
|
|
245
|
+
5. 保存到 ~/.unicli/adapters/<site>/<command>.yaml。
|
|
246
|
+
6. 用 unicli repair <site> <command> 验证。
|
|
314
247
|
```
|
|
315
248
|
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
## 写一个适配器
|
|
249
|
+
本地修复会在 npm 更新后继续保留。
|
|
319
250
|
|
|
320
|
-
|
|
251
|
+
## 写一个 adapter
|
|
321
252
|
|
|
322
253
|
```yaml
|
|
323
|
-
site:
|
|
324
|
-
name:
|
|
325
|
-
|
|
254
|
+
site: example
|
|
255
|
+
name: search
|
|
256
|
+
description: "Search example.com"
|
|
257
|
+
transport: http
|
|
326
258
|
strategy: public
|
|
259
|
+
capabilities: [fetch, select, map, limit]
|
|
260
|
+
minimum_capability: http.fetch
|
|
261
|
+
trust: public
|
|
262
|
+
confidentiality: public
|
|
263
|
+
quarantine: false
|
|
327
264
|
pipeline:
|
|
328
265
|
- fetch:
|
|
329
|
-
url: "https://
|
|
330
|
-
-
|
|
331
|
-
- each:
|
|
332
|
-
do:
|
|
333
|
-
- fetch:
|
|
334
|
-
url: "https://hacker-news.firebaseio.com/v0/item/${{ item }}.json"
|
|
266
|
+
url: "https://api.example.com/search?q=${{ args.query }}"
|
|
267
|
+
- select: data.results
|
|
335
268
|
- map:
|
|
336
269
|
title: "${{ item.title }}"
|
|
337
|
-
score: "${{ item.score }}"
|
|
338
270
|
url: "${{ item.url }}"
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
```bash
|
|
345
|
-
unicli init <站点> <命令> # 生成脚手架
|
|
346
|
-
unicli dev <路径> # 热重载开发
|
|
347
|
-
unicli test <站点> # 验证适配器
|
|
348
|
-
unicli record <URL> # 从网络流量自动生成适配器
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
完整文档:[`docs/ADAPTER-FORMAT.md`](docs/ADAPTER-FORMAT.md)。
|
|
352
|
-
|
|
353
|
-
## 搜索
|
|
354
|
-
|
|
355
|
-
按意图发现命令,中英双语:
|
|
356
|
-
|
|
357
|
-
```bash
|
|
358
|
-
unicli search "微博热搜" # → weibo trending
|
|
359
|
-
unicli search "B站热门" # → bilibili popular
|
|
360
|
-
unicli search "推特热门" # → twitter trending
|
|
361
|
-
unicli search "股票行情" # → binance ticker, xueqiu quote
|
|
362
|
-
unicli search "download video" # 英文查询 → 多平台下载命令
|
|
363
|
-
unicli search --category finance # 按类别浏览
|
|
271
|
+
- limit: "${{ args.limit }}"
|
|
272
|
+
args:
|
|
273
|
+
- { name: query, type: string, required: true, positional: true }
|
|
274
|
+
- { name: limit, type: int, default: 20 }
|
|
275
|
+
columns: [title, url]
|
|
364
276
|
```
|
|
365
277
|
|
|
366
|
-
|
|
278
|
+
文档入口:
|
|
367
279
|
|
|
368
|
-
|
|
280
|
+
- [独立文档站](https://olo-dot-io.github.io/Uni-CLI/)
|
|
281
|
+
- [快速开始](docs/guide/getting-started.md)
|
|
282
|
+
- [Agent 集成](docs/guide/integrations.md)
|
|
283
|
+
- [Adapter 格式](docs/ADAPTER-FORMAT.md)
|
|
284
|
+
- [Pipeline 参考](docs/reference/pipeline.md)
|
|
285
|
+
- [Exit codes](docs/reference/exit-codes.md)
|
|
369
286
|
|
|
370
|
-
|
|
287
|
+
## 边界和诚实说明
|
|
371
288
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
完整论述:[`docs/THEORY.md`](docs/THEORY.md)。可复现的本地基准测试:[`docs/BENCHMARK.md`](docs/BENCHMARK.md)。
|
|
289
|
+
- 需要登录的网站使用本地 cookie 文件:`~/.unicli/cookies/<site>.json`。
|
|
290
|
+
- Browser adapter 需要可连接的 Chrome/CDP。
|
|
291
|
+
- CUA 路由必须配置真实 backend。声明了但不可用的 provider 会失败关闭,并返回结构化错误。
|
|
292
|
+
- 用户 adapter 和修复放在 `~/.unicli/adapters/`;包内 adapter 是基线。
|
|
293
|
+
- 如果网站阻止自动化或私有 API 变了,正确行为是清楚失败,不是伪装成功。
|
|
379
294
|
|
|
380
295
|
## 开发
|
|
381
296
|
|
|
382
297
|
```bash
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
298
|
+
pnpm install
|
|
299
|
+
pnpm typecheck
|
|
300
|
+
pnpm lint
|
|
301
|
+
npm run verify
|
|
386
302
|
```
|
|
387
303
|
|
|
388
|
-
|
|
389
|
-
| ---------------------- | ----------------------------------------------------------- |
|
|
390
|
-
| `npm run dev` | 从源码运行(tsx) |
|
|
391
|
-
| `npm run build` | 生产构建 |
|
|
392
|
-
| `npm run typecheck` | TypeScript 严格模式 |
|
|
393
|
-
| `npm run lint` | Oxlint |
|
|
394
|
-
| `npm run test` | 单元测试(<!-- STATS:test_count -->7160<!-- /STATS --> 个) |
|
|
395
|
-
| `npm run test:adapter` | 验证所有适配器 |
|
|
396
|
-
| `npm run verify` | 完整流水线 — 发布前必须通过 |
|
|
397
|
-
|
|
398
|
-
十一个生产依赖:`ajv` · `ajv-formats` · `chalk` · `cli-table3` · `commander` · `js-yaml` · `jsonpath-plus` · `turndown` · `undici` · `ws` · `zod`。
|
|
399
|
-
|
|
400
|
-
## 发布节奏
|
|
401
|
-
|
|
402
|
-
补丁版本每周 **周五 09:00 HKT** 发布——前提是自上次打 tag 以来有实质性提交。平静的一周会被记录并跳过——沉默不是失败,而是成功。Dependabot 升级每周一合成一个 PR,在周五的版本里搭车一起上,避免污染提交历史。
|
|
403
|
-
|
|
404
|
-
<a href="https://github.com/olo-dot-io/Uni-CLI/commits/main"><img src="https://img.shields.io/github/last-commit/olo-dot-io/Uni-CLI?style=flat-square&label=last-commit" alt="最近提交"></a>
|
|
405
|
-
|
|
406
|
-
完整策略——手动覆写、取消流程、升级规则:[`docs/RELEASE-CADENCE.md`](docs/RELEASE-CADENCE.md)。
|
|
407
|
-
|
|
408
|
-
## 贡献
|
|
409
|
-
|
|
410
|
-
最快合并的方式:为你每天使用的站点写一个 20 行 YAML 适配器。评审门槛很低——只要能跑、符合 schema,就能合并。
|
|
411
|
-
|
|
412
|
-
| 领域 | 指南 |
|
|
413
|
-
| ---------- | -------------------------------------------------------- |
|
|
414
|
-
| 新适配器 | [`contributing/adapter.md`](contributing/adapter.md) |
|
|
415
|
-
| 新传输层 | [`contributing/transport.md`](contributing/transport.md) |
|
|
416
|
-
| CUA 后端 | [`contributing/cua.md`](contributing/cua.md) |
|
|
417
|
-
| MCP 服务器 | [`contributing/mcp.md`](contributing/mcp.md) |
|
|
418
|
-
| ACP 集成 | [`contributing/acp.md`](contributing/acp.md) |
|
|
419
|
-
| 发布流程 | [`contributing/release.md`](contributing/release.md) |
|
|
420
|
-
|
|
421
|
-
## 许可证
|
|
304
|
+
## License
|
|
422
305
|
|
|
423
306
|
[Apache-2.0](./LICENSE)
|
|
424
307
|
|
|
425
|
-
仓库:<https://github.com/olo-dot-io/Uni-CLI> · npm:[`@zenalexa/unicli`](https://www.npmjs.com/package/@zenalexa/unicli) · 欢迎提 Issue。
|
|
426
|
-
|
|
427
|
-
---
|
|
428
|
-
|
|
429
|
-
<p align="center">
|
|
430
|
-
<a href="https://github.com/olo-dot-io/Uni-CLI/graphs/contributors">
|
|
431
|
-
<img src="https://contrib.rocks/image?repo=olo-dot-io/Uni-CLI" alt="贡献者">
|
|
432
|
-
</a>
|
|
433
|
-
</p>
|
|
434
|
-
|
|
435
308
|
<p align="center">
|
|
436
|
-
<sub>v0.
|
|
309
|
+
<sub>v0.216.2 — Apollo · Aldrin</sub>
|
|
437
310
|
</p>
|