@jackwener/opencli 1.0.6 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/cross-project-adapter-migration/SKILL.md +2 -2
- package/.github/pull_request_template.md +7 -0
- package/.github/workflows/doc-check.yml +36 -0
- package/.github/workflows/docs.yml +7 -42
- package/CHANGELOG.md +23 -0
- package/CLI-EXPLORER.md +9 -8
- package/README.md +51 -10
- package/README.zh-CN.md +29 -11
- package/SKILL.md +102 -33
- package/dist/browser/cdp.js +6 -1
- package/dist/browser/page.d.ts +4 -1
- package/dist/browser/page.js +7 -1
- package/dist/build-manifest.js +23 -16
- package/dist/cli-manifest.json +951 -296
- package/dist/cli.d.ts +6 -0
- package/dist/cli.js +225 -148
- package/dist/clis/antigravity/serve.js +296 -47
- package/dist/clis/apple-podcasts/commands.test.d.ts +2 -0
- package/dist/clis/apple-podcasts/commands.test.js +76 -0
- package/dist/clis/apple-podcasts/search.js +2 -2
- package/dist/clis/apple-podcasts/top.js +9 -2
- package/dist/clis/arxiv/paper.js +21 -0
- package/dist/clis/arxiv/search.js +24 -0
- package/dist/clis/arxiv/utils.d.ts +18 -0
- package/dist/clis/arxiv/utils.js +49 -0
- package/dist/clis/bilibili/dynamic.js +1 -1
- package/dist/clis/bilibili/favorite.js +1 -1
- package/dist/clis/bilibili/feed.js +1 -1
- package/dist/clis/bilibili/following.js +1 -1
- package/dist/clis/bilibili/history.js +1 -1
- package/dist/clis/bilibili/me.js +1 -1
- package/dist/clis/bilibili/ranking.js +1 -1
- package/dist/clis/bilibili/search.js +3 -3
- package/dist/clis/bilibili/subtitle.js +1 -1
- package/dist/clis/bilibili/user-videos.js +1 -1
- package/dist/{bilibili.d.ts → clis/bilibili/utils.d.ts} +1 -1
- package/dist/clis/bloomberg/businessweek.d.ts +1 -0
- package/dist/clis/bloomberg/businessweek.js +17 -0
- package/dist/clis/bloomberg/economics.d.ts +1 -0
- package/dist/clis/bloomberg/economics.js +17 -0
- package/dist/clis/bloomberg/feeds.d.ts +1 -0
- package/dist/clis/bloomberg/feeds.js +15 -0
- package/dist/clis/bloomberg/industries.d.ts +1 -0
- package/dist/clis/bloomberg/industries.js +17 -0
- package/dist/clis/bloomberg/main.d.ts +1 -0
- package/dist/clis/bloomberg/main.js +17 -0
- package/dist/clis/bloomberg/markets.d.ts +1 -0
- package/dist/clis/bloomberg/markets.js +17 -0
- package/dist/clis/bloomberg/news.d.ts +1 -0
- package/dist/clis/bloomberg/news.js +105 -0
- package/dist/clis/bloomberg/opinions.d.ts +1 -0
- package/dist/clis/bloomberg/opinions.js +17 -0
- package/dist/clis/bloomberg/politics.d.ts +1 -0
- package/dist/clis/bloomberg/politics.js +17 -0
- package/dist/clis/bloomberg/tech.d.ts +1 -0
- package/dist/clis/bloomberg/tech.js +17 -0
- package/dist/clis/bloomberg/utils.d.ts +34 -0
- package/dist/clis/bloomberg/utils.js +364 -0
- package/dist/clis/bloomberg/utils.test.d.ts +1 -0
- package/dist/clis/bloomberg/utils.test.js +129 -0
- package/dist/clis/boss/batchgreet.d.ts +1 -0
- package/dist/clis/boss/batchgreet.js +147 -0
- package/dist/clis/boss/chatlist.js +2 -2
- package/dist/clis/boss/detail.js +2 -2
- package/dist/clis/boss/exchange.d.ts +1 -0
- package/dist/clis/boss/exchange.js +111 -0
- package/dist/clis/boss/greet.d.ts +1 -0
- package/dist/clis/boss/greet.js +175 -0
- package/dist/clis/boss/invite.d.ts +1 -0
- package/dist/clis/boss/invite.js +158 -0
- package/dist/clis/boss/joblist.d.ts +1 -0
- package/dist/clis/boss/joblist.js +55 -0
- package/dist/clis/boss/mark.d.ts +1 -0
- package/dist/clis/boss/mark.js +141 -0
- package/dist/clis/boss/recommend.d.ts +1 -0
- package/dist/clis/boss/recommend.js +83 -0
- package/dist/clis/boss/search.js +1 -1
- package/dist/clis/boss/send.js +1 -1
- package/dist/clis/boss/stats.d.ts +1 -0
- package/dist/clis/boss/stats.js +116 -0
- package/dist/clis/chaoxing/assignments.js +1 -1
- package/dist/clis/chaoxing/exams.js +1 -1
- package/dist/{chaoxing.d.ts → clis/chaoxing/utils.d.ts} +1 -1
- package/dist/{chaoxing.js → clis/chaoxing/utils.js} +0 -2
- package/dist/clis/chaoxing/utils.test.d.ts +1 -0
- package/dist/{chaoxing.test.js → clis/chaoxing/utils.test.js} +1 -1
- package/dist/clis/chatgpt/read.js +1 -1
- package/dist/clis/chatwise/export.js +1 -1
- package/dist/clis/chatwise/model.js +2 -2
- package/dist/clis/chatwise/screenshot.js +1 -1
- package/dist/clis/codex/export.js +1 -1
- package/dist/clis/codex/model.js +2 -2
- package/dist/clis/codex/screenshot.js +1 -1
- package/dist/clis/coupang/add-to-cart.js +3 -4
- package/dist/clis/coupang/search.js +2 -4
- package/dist/clis/coupang/utils.test.d.ts +1 -0
- package/dist/{coupang.test.js → clis/coupang/utils.test.js} +1 -1
- package/dist/clis/ctrip/search.js +1 -1
- package/dist/clis/cursor/export.js +1 -1
- package/dist/clis/cursor/model.js +2 -2
- package/dist/clis/cursor/screenshot.js +1 -1
- package/dist/clis/jike/comment.js +2 -3
- package/dist/clis/jike/create.js +1 -2
- package/dist/clis/jike/feed.js +0 -1
- package/dist/clis/jike/like.js +1 -2
- package/dist/clis/jike/notifications.js +0 -1
- package/dist/clis/jike/post.yaml +1 -0
- package/dist/clis/jike/repost.js +1 -2
- package/dist/clis/jike/search.js +2 -3
- package/dist/clis/jike/topic.yaml +1 -0
- package/dist/clis/jike/user.yaml +1 -0
- package/dist/clis/jimeng/history.yaml +0 -1
- package/dist/clis/linkedin/search.js +7 -7
- package/dist/clis/linux-do/category.yaml +1 -0
- package/dist/clis/linux-do/search.yaml +4 -3
- package/dist/clis/linux-do/topic.yaml +1 -0
- package/dist/clis/notion/export.js +1 -1
- package/dist/clis/reddit/comment.js +3 -4
- package/dist/clis/reddit/read.js +4 -5
- package/dist/clis/reddit/save.js +2 -3
- package/dist/clis/reddit/saved.js +0 -1
- package/dist/clis/reddit/search.yaml +1 -0
- package/dist/clis/reddit/subscribe.js +0 -1
- package/dist/clis/reddit/upvote.js +2 -3
- package/dist/clis/reddit/upvoted.js +0 -1
- package/dist/clis/reddit/user-comments.yaml +1 -0
- package/dist/clis/reddit/user-posts.yaml +1 -0
- package/dist/clis/reddit/user.yaml +1 -0
- package/dist/clis/reuters/search.js +1 -1
- package/dist/clis/sinafinance/news.d.ts +7 -0
- package/dist/clis/sinafinance/news.js +61 -0
- package/dist/clis/smzdm/search.js +2 -3
- package/dist/clis/stackoverflow/search.yaml +1 -0
- package/dist/clis/steam/top-sellers.yaml +29 -0
- package/dist/clis/twitter/accept.js +2 -2
- package/dist/clis/twitter/article.js +2 -2
- package/dist/clis/twitter/block.d.ts +1 -0
- package/dist/clis/twitter/block.js +88 -0
- package/dist/clis/twitter/delete.js +1 -1
- package/dist/clis/twitter/hide-reply.d.ts +1 -0
- package/dist/clis/twitter/hide-reply.js +66 -0
- package/dist/clis/twitter/like.js +1 -1
- package/dist/clis/twitter/post.js +1 -1
- package/dist/clis/twitter/reply-dm.js +1 -1
- package/dist/clis/twitter/reply.js +2 -2
- package/dist/clis/twitter/search.js +1 -1
- package/dist/clis/twitter/thread.js +2 -2
- package/dist/clis/twitter/trending.d.ts +1 -0
- package/dist/clis/twitter/trending.js +91 -0
- package/dist/clis/twitter/unblock.d.ts +1 -0
- package/dist/clis/twitter/unblock.js +71 -0
- package/dist/clis/v2ex/topic.yaml +1 -0
- package/dist/clis/weibo/hot.js +0 -1
- package/dist/clis/weread/book.js +1 -1
- package/dist/clis/weread/highlights.js +1 -1
- package/dist/clis/weread/notes.js +1 -1
- package/dist/clis/weread/search.js +1 -1
- package/dist/clis/wikipedia/search.d.ts +1 -0
- package/dist/clis/wikipedia/search.js +30 -0
- package/dist/clis/wikipedia/summary.d.ts +1 -0
- package/dist/clis/wikipedia/summary.js +28 -0
- package/dist/clis/wikipedia/utils.d.ts +8 -0
- package/dist/clis/wikipedia/utils.js +18 -0
- package/dist/clis/xiaohongshu/creator-note-detail.d.ts +79 -5
- package/dist/clis/xiaohongshu/creator-note-detail.js +323 -70
- package/dist/clis/xiaohongshu/creator-note-detail.test.d.ts +1 -0
- package/dist/clis/xiaohongshu/creator-note-detail.test.js +258 -0
- package/dist/clis/xiaohongshu/creator-notes-summary.d.ts +28 -0
- package/dist/clis/xiaohongshu/creator-notes-summary.js +92 -0
- package/dist/clis/xiaohongshu/creator-notes-summary.test.d.ts +1 -0
- package/dist/clis/xiaohongshu/creator-notes-summary.test.js +49 -0
- package/dist/clis/xiaohongshu/creator-notes.d.ts +18 -5
- package/dist/clis/xiaohongshu/creator-notes.js +189 -71
- package/dist/clis/xiaohongshu/creator-notes.test.d.ts +1 -0
- package/dist/clis/xiaohongshu/creator-notes.test.js +191 -0
- package/dist/clis/xiaohongshu/creator-profile.js +0 -1
- package/dist/clis/xiaohongshu/creator-stats.js +0 -1
- package/dist/clis/xiaohongshu/download.js +2 -3
- package/dist/clis/xiaohongshu/feed.yaml +0 -1
- package/dist/clis/xiaohongshu/notifications.yaml +0 -1
- package/dist/clis/xiaohongshu/search.js +2 -2
- package/dist/clis/xiaohongshu/user.js +1 -2
- package/dist/clis/yahoo-finance/quote.js +0 -1
- package/dist/clis/youtube/search.js +1 -1
- package/dist/clis/youtube/transcript.js +1 -1
- package/dist/clis/youtube/video.js +1 -1
- package/dist/clis/zhihu/download.js +1 -2
- package/dist/clis/zhihu/question.js +1 -1
- package/dist/clis/zhihu/search.yaml +4 -3
- package/dist/commanderAdapter.d.ts +21 -0
- package/dist/commanderAdapter.js +111 -0
- package/dist/{engine.d.ts → discovery.d.ts} +0 -6
- package/dist/{engine.js → discovery.js} +1 -98
- package/dist/download/index.d.ts +2 -6
- package/dist/download/index.js +19 -46
- package/dist/engine.test.d.ts +1 -1
- package/dist/engine.test.js +8 -7
- package/dist/execution.d.ts +22 -0
- package/dist/execution.js +129 -0
- package/dist/explore.js +121 -107
- package/dist/external-clis.yaml +48 -0
- package/dist/external.d.ts +25 -0
- package/dist/external.js +156 -0
- package/dist/main.js +1 -1
- package/dist/pipeline/steps/browser.js +8 -2
- package/dist/registry.d.ts +2 -0
- package/dist/registry.js +2 -0
- package/dist/runtime.d.ts +5 -0
- package/dist/runtime.js +8 -0
- package/dist/serialization.d.ts +34 -0
- package/dist/serialization.js +63 -0
- package/dist/types.d.ts +4 -1
- package/docs/.vitepress/config.mts +14 -3
- package/docs/adapters/browser/arxiv.md +27 -0
- package/docs/adapters/browser/barchart.md +32 -0
- package/docs/adapters/browser/bloomberg.md +70 -0
- package/docs/adapters/browser/chaoxing.md +39 -0
- package/docs/adapters/browser/grok.md +35 -0
- package/docs/adapters/browser/hf.md +42 -0
- package/docs/adapters/browser/jike.md +45 -0
- package/docs/adapters/browser/jimeng.md +39 -0
- package/docs/adapters/browser/linux-do.md +45 -0
- package/docs/adapters/browser/sinafinance.md +35 -0
- package/docs/adapters/browser/stackoverflow.md +35 -0
- package/docs/adapters/browser/steam.md +26 -0
- package/docs/adapters/browser/twitter.md +3 -0
- package/docs/adapters/browser/weread.md +48 -0
- package/docs/adapters/browser/wikipedia.md +30 -0
- package/docs/adapters/browser/xiaohongshu.md +5 -1
- package/docs/adapters/desktop/chatgpt.md +3 -3
- package/docs/adapters/index.md +13 -0
- package/docs/advanced/download.md +4 -4
- package/docs/developer/architecture.md +17 -4
- package/package.json +1 -1
- package/scripts/check-doc-coverage.sh +69 -0
- package/scripts/copy-yaml.cjs +7 -0
- package/src/browser/cdp.ts +9 -4
- package/src/browser/page.ts +7 -1
- package/src/build-manifest.ts +25 -19
- package/src/cli.ts +253 -119
- package/src/clis/antigravity/serve.ts +323 -50
- package/src/clis/apple-podcasts/commands.test.ts +95 -0
- package/src/clis/apple-podcasts/search.ts +2 -2
- package/src/clis/apple-podcasts/top.ts +12 -2
- package/src/clis/arxiv/paper.ts +21 -0
- package/src/clis/arxiv/search.ts +24 -0
- package/src/clis/arxiv/utils.ts +63 -0
- package/src/clis/bilibili/dynamic.ts +1 -1
- package/src/clis/bilibili/favorite.ts +1 -1
- package/src/clis/bilibili/feed.ts +1 -1
- package/src/clis/bilibili/following.ts +1 -1
- package/src/clis/bilibili/history.ts +1 -1
- package/src/clis/bilibili/me.ts +1 -1
- package/src/clis/bilibili/ranking.ts +1 -1
- package/src/clis/bilibili/search.ts +3 -3
- package/src/clis/bilibili/subtitle.ts +1 -1
- package/src/clis/bilibili/user-videos.ts +1 -1
- package/src/{bilibili.ts → clis/bilibili/utils.ts} +1 -1
- package/src/clis/bloomberg/businessweek.ts +18 -0
- package/src/clis/bloomberg/economics.ts +18 -0
- package/src/clis/bloomberg/feeds.ts +16 -0
- package/src/clis/bloomberg/industries.ts +18 -0
- package/src/clis/bloomberg/main.ts +18 -0
- package/src/clis/bloomberg/markets.ts +18 -0
- package/src/clis/bloomberg/news.ts +136 -0
- package/src/clis/bloomberg/opinions.ts +18 -0
- package/src/clis/bloomberg/politics.ts +18 -0
- package/src/clis/bloomberg/tech.ts +18 -0
- package/src/clis/bloomberg/utils.test.ts +135 -0
- package/src/clis/bloomberg/utils.ts +429 -0
- package/src/clis/boss/batchgreet.ts +167 -0
- package/src/clis/boss/chatlist.ts +2 -2
- package/src/clis/boss/detail.ts +2 -2
- package/src/clis/boss/exchange.ts +126 -0
- package/src/clis/boss/greet.ts +198 -0
- package/src/clis/boss/invite.ts +177 -0
- package/src/clis/boss/joblist.ts +63 -0
- package/src/clis/boss/mark.ts +155 -0
- package/src/clis/boss/recommend.ts +94 -0
- package/src/clis/boss/search.ts +1 -1
- package/src/clis/boss/send.ts +1 -1
- package/src/clis/boss/stats.ts +130 -0
- package/src/clis/chaoxing/assignments.ts +1 -1
- package/src/clis/chaoxing/exams.ts +1 -1
- package/src/{chaoxing.test.ts → clis/chaoxing/utils.test.ts} +1 -1
- package/src/{chaoxing.ts → clis/chaoxing/utils.ts} +1 -3
- package/src/clis/chatgpt/README.zh-CN.md +3 -3
- package/src/clis/chatgpt/read.ts +1 -1
- package/src/clis/chatwise/export.ts +1 -1
- package/src/clis/chatwise/model.ts +2 -2
- package/src/clis/chatwise/screenshot.ts +1 -1
- package/src/clis/codex/export.ts +1 -1
- package/src/clis/codex/model.ts +2 -2
- package/src/clis/codex/screenshot.ts +1 -1
- package/src/clis/coupang/add-to-cart.ts +3 -4
- package/src/clis/coupang/search.ts +2 -4
- package/src/{coupang.test.ts → clis/coupang/utils.test.ts} +1 -1
- package/src/clis/ctrip/search.ts +1 -1
- package/src/clis/cursor/export.ts +1 -1
- package/src/clis/cursor/model.ts +2 -2
- package/src/clis/cursor/screenshot.ts +1 -1
- package/src/clis/jike/comment.ts +2 -3
- package/src/clis/jike/create.ts +1 -2
- package/src/clis/jike/feed.ts +0 -1
- package/src/clis/jike/like.ts +1 -2
- package/src/clis/jike/notifications.ts +0 -1
- package/src/clis/jike/post.yaml +1 -0
- package/src/clis/jike/repost.ts +1 -2
- package/src/clis/jike/search.ts +2 -3
- package/src/clis/jike/topic.yaml +1 -0
- package/src/clis/jike/user.yaml +1 -0
- package/src/clis/jimeng/history.yaml +0 -1
- package/src/clis/linkedin/search.ts +7 -7
- package/src/clis/linux-do/category.yaml +1 -0
- package/src/clis/linux-do/search.yaml +4 -3
- package/src/clis/linux-do/topic.yaml +1 -0
- package/src/clis/notion/export.ts +1 -1
- package/src/clis/reddit/comment.ts +3 -4
- package/src/clis/reddit/read.ts +4 -5
- package/src/clis/reddit/save.ts +2 -3
- package/src/clis/reddit/saved.ts +0 -1
- package/src/clis/reddit/search.yaml +1 -0
- package/src/clis/reddit/subscribe.ts +0 -1
- package/src/clis/reddit/upvote.ts +2 -3
- package/src/clis/reddit/upvoted.ts +0 -1
- package/src/clis/reddit/user-comments.yaml +1 -0
- package/src/clis/reddit/user-posts.yaml +1 -0
- package/src/clis/reddit/user.yaml +1 -0
- package/src/clis/reuters/search.ts +1 -1
- package/src/clis/sinafinance/news.ts +76 -0
- package/src/clis/smzdm/search.ts +2 -3
- package/src/clis/stackoverflow/search.yaml +1 -0
- package/src/clis/steam/top-sellers.yaml +29 -0
- package/src/clis/twitter/accept.ts +2 -2
- package/src/clis/twitter/article.ts +2 -2
- package/src/clis/twitter/block.ts +92 -0
- package/src/clis/twitter/delete.ts +1 -1
- package/src/clis/twitter/hide-reply.ts +70 -0
- package/src/clis/twitter/like.ts +1 -1
- package/src/clis/twitter/post.ts +1 -1
- package/src/clis/twitter/reply-dm.ts +1 -1
- package/src/clis/twitter/reply.ts +2 -2
- package/src/clis/twitter/search.ts +1 -1
- package/src/clis/twitter/thread.ts +2 -2
- package/src/clis/twitter/trending.ts +113 -0
- package/src/clis/twitter/unblock.ts +75 -0
- package/src/clis/v2ex/topic.yaml +1 -0
- package/src/clis/weibo/hot.ts +0 -1
- package/src/clis/weread/book.ts +1 -1
- package/src/clis/weread/highlights.ts +1 -1
- package/src/clis/weread/notes.ts +1 -1
- package/src/clis/weread/search.ts +1 -1
- package/src/clis/wikipedia/search.ts +32 -0
- package/src/clis/wikipedia/summary.ts +28 -0
- package/src/clis/wikipedia/utils.ts +20 -0
- package/src/clis/xiaohongshu/creator-note-detail.test.ts +272 -0
- package/src/clis/xiaohongshu/creator-note-detail.ts +425 -73
- package/src/clis/xiaohongshu/creator-notes-summary.test.ts +54 -0
- package/src/clis/xiaohongshu/creator-notes-summary.ts +120 -0
- package/src/clis/xiaohongshu/creator-notes.test.ts +211 -0
- package/src/clis/xiaohongshu/creator-notes.ts +254 -75
- package/src/clis/xiaohongshu/creator-profile.ts +0 -1
- package/src/clis/xiaohongshu/creator-stats.ts +0 -1
- package/src/clis/xiaohongshu/download.ts +2 -3
- package/src/clis/xiaohongshu/feed.yaml +0 -1
- package/src/clis/xiaohongshu/notifications.yaml +0 -1
- package/src/clis/xiaohongshu/search.ts +2 -2
- package/src/clis/xiaohongshu/user.ts +1 -2
- package/src/clis/yahoo-finance/quote.ts +0 -1
- package/src/clis/youtube/search.ts +1 -1
- package/src/clis/youtube/transcript.ts +1 -1
- package/src/clis/youtube/video.ts +1 -1
- package/src/clis/zhihu/download.ts +1 -2
- package/src/clis/zhihu/question.ts +1 -1
- package/src/clis/zhihu/search.yaml +4 -3
- package/src/commanderAdapter.ts +113 -0
- package/src/daemon.ts +3 -3
- package/src/{engine.ts → discovery.ts} +1 -108
- package/src/download/index.ts +21 -54
- package/src/engine.test.ts +8 -7
- package/src/execution.ts +138 -0
- package/src/explore.ts +135 -109
- package/src/external-clis.yaml +48 -0
- package/src/external.ts +185 -0
- package/src/main.ts +1 -1
- package/src/pipeline/steps/browser.ts +7 -2
- package/src/registry.ts +5 -0
- package/src/runtime.ts +9 -0
- package/src/serialization.ts +79 -0
- package/src/types.ts +1 -1
- package/tests/e2e/browser-public.test.ts +25 -0
- package/tests/e2e/public-commands.test.ts +55 -1
- package/dist/clis/twitter/trending.yaml +0 -46
- package/src/clis/twitter/trending.yaml +0 -46
- /package/dist/{chaoxing.test.d.ts → clis/arxiv/paper.d.ts} +0 -0
- /package/dist/{coupang.test.d.ts → clis/arxiv/search.d.ts} +0 -0
- /package/dist/{bilibili.js → clis/bilibili/utils.js} +0 -0
- /package/dist/{coupang.d.ts → clis/coupang/utils.d.ts} +0 -0
- /package/dist/{coupang.js → clis/coupang/utils.js} +0 -0
- /package/src/{coupang.ts → clis/coupang/utils.ts} +0 -0
|
@@ -166,10 +166,10 @@ cli({
|
|
|
166
166
|
|
|
167
167
|
### 3.4 公共模式复用
|
|
168
168
|
|
|
169
|
-
迁移过程中如果发现多个适配器共享逻辑,考虑提取到 `src/<site
|
|
169
|
+
迁移过程中如果发现多个适配器共享逻辑,考虑提取到 `src/clis/<site>/utils.ts` 工具文件:
|
|
170
170
|
|
|
171
171
|
```typescript
|
|
172
|
-
// src/<site
|
|
172
|
+
// src/clis/<site>/utils.ts
|
|
173
173
|
export async function fetchWithAuth(page, url) { ... }
|
|
174
174
|
export function parseItem(raw) { ... }
|
|
175
175
|
```
|
|
@@ -19,6 +19,13 @@ Related issue:
|
|
|
19
19
|
- [ ] I updated tests or docs if needed
|
|
20
20
|
- [ ] I included output or screenshots when useful
|
|
21
21
|
|
|
22
|
+
### Documentation (if adding/modifying an adapter)
|
|
23
|
+
|
|
24
|
+
- [ ] Added doc page under `docs/adapters/` (if new adapter)
|
|
25
|
+
- [ ] Updated `docs/adapters/index.md` table (if new adapter)
|
|
26
|
+
- [ ] Updated sidebar in `docs/.vitepress/config.mts` (if new adapter)
|
|
27
|
+
|
|
22
28
|
## Screenshots / Output
|
|
23
29
|
|
|
24
30
|
<!-- If applicable, paste CLI output or screenshots here. -->
|
|
31
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Doc Check
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main, dev]
|
|
6
|
+
|
|
7
|
+
concurrency:
|
|
8
|
+
group: doc-check-${{ github.ref }}
|
|
9
|
+
cancel-in-progress: true
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
# ── Adapter doc coverage ──
|
|
13
|
+
doc-coverage:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Check adapter doc coverage
|
|
19
|
+
run: bash scripts/check-doc-coverage.sh --strict
|
|
20
|
+
|
|
21
|
+
# ── VitePress build validation ──
|
|
22
|
+
docs-build:
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v4
|
|
26
|
+
|
|
27
|
+
- uses: actions/setup-node@v4
|
|
28
|
+
with:
|
|
29
|
+
node-version: '22'
|
|
30
|
+
cache: 'npm'
|
|
31
|
+
|
|
32
|
+
- name: Install dependencies
|
|
33
|
+
run: npm ci
|
|
34
|
+
|
|
35
|
+
- name: Build docs (catches broken links & sidebar refs)
|
|
36
|
+
run: npm run docs:build
|
|
@@ -1,52 +1,17 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Trigger Website Rebuild (Docs Updated)
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
5
|
branches: [main]
|
|
6
6
|
paths: ['docs/**']
|
|
7
|
-
workflow_dispatch:
|
|
8
|
-
|
|
9
|
-
permissions:
|
|
10
|
-
contents: read
|
|
11
|
-
pages: write
|
|
12
|
-
id-token: write
|
|
13
|
-
|
|
14
|
-
concurrency:
|
|
15
|
-
group: pages
|
|
16
|
-
cancel-in-progress: false
|
|
17
7
|
|
|
18
8
|
jobs:
|
|
19
|
-
|
|
9
|
+
dispatch:
|
|
20
10
|
runs-on: ubuntu-latest
|
|
21
11
|
steps:
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
fetch-depth: 0
|
|
25
|
-
|
|
26
|
-
- uses: actions/setup-node@v4
|
|
27
|
-
with:
|
|
28
|
-
node-version: 20
|
|
29
|
-
cache: npm
|
|
30
|
-
|
|
31
|
-
- name: Install dependencies
|
|
32
|
-
run: npm ci
|
|
33
|
-
|
|
34
|
-
- name: Build docs
|
|
35
|
-
run: npm run docs:build
|
|
36
|
-
|
|
37
|
-
- uses: actions/configure-pages@v4
|
|
38
|
-
|
|
39
|
-
- uses: actions/upload-pages-artifact@v3
|
|
12
|
+
- name: Trigger opencli-website rebuild
|
|
13
|
+
uses: peter-evans/repository-dispatch@v3
|
|
40
14
|
with:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
environment:
|
|
45
|
-
name: github-pages
|
|
46
|
-
url: ${{ steps.deployment.outputs.page_url }}
|
|
47
|
-
needs: build
|
|
48
|
-
runs-on: ubuntu-latest
|
|
49
|
-
steps:
|
|
50
|
-
- name: Deploy to GitHub Pages
|
|
51
|
-
id: deployment
|
|
52
|
-
uses: actions/deploy-pages@v4
|
|
15
|
+
token: ${{ secrets.WEBSITE_DEPLOY_TOKEN }}
|
|
16
|
+
repository: jackwener/opencli-website
|
|
17
|
+
event-type: docs-updated
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.0](https://github.com/jackwener/opencli/compare/v1.0.6...v1.1.0) (2026-03-20)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add antigravity serve command — Anthropic API proxy ([35a0fed](https://github.com/jackwener/opencli/commit/35a0fed8a0c1cb714298f672c19f017bbc9a9630))
|
|
9
|
+
* add arxiv and wikipedia adapters ([#132](https://github.com/jackwener/opencli/issues/132)) ([3cda14a](https://github.com/jackwener/opencli/commit/3cda14a2ab502e3bebfba6cdd9842c35b2b66b41))
|
|
10
|
+
* add external CLI hub for discovery, auto-installation, and execution of external tools. ([b3e32d8](https://github.com/jackwener/opencli/commit/b3e32d8a05744c9bcdfef96f5ff3085ac72bd353))
|
|
11
|
+
* add sinafinance 7x24 news adapter ([#131](https://github.com/jackwener/opencli/issues/131)) ([02793e9](https://github.com/jackwener/opencli/commit/02793e990ef4bdfdde9d7a748960b8a9ed6ea988))
|
|
12
|
+
* **boss:** add 8 new recruitment management commands ([#133](https://github.com/jackwener/opencli/issues/133)) ([7e973ca](https://github.com/jackwener/opencli/commit/7e973ca59270029f33021a483ca4974dc3975d36))
|
|
13
|
+
* **serve:** implement auto new conv, model mapping, and precise completion detection ([0e8c96b](https://github.com/jackwener/opencli/commit/0e8c96b6d9baebad5deb90b9e0620af5570b259d))
|
|
14
|
+
* **serve:** use CDP mouse click + Input.insertText for reliable message injection ([c63af6d](https://github.com/jackwener/opencli/commit/c63af6d41808dddf6f0f76789aa6c042f391f0b0))
|
|
15
|
+
* xiaohongshu creator flows migration ([#124](https://github.com/jackwener/opencli/issues/124)) ([8f17259](https://github.com/jackwener/opencli/commit/8f1725982ec06d121d7c15b5cf3cda2f5941c32a))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **docs:** use base '/' for custom domain and add CNAME file ([#129](https://github.com/jackwener/opencli/issues/129)) ([2876750](https://github.com/jackwener/opencli/commit/2876750891bc8a66be577b06ead4db61852c8e81))
|
|
21
|
+
* **serve:** update model mappings to match actual Antigravity UI ([36bc57a](https://github.com/jackwener/opencli/commit/36bc57a9624cdfaa50ffb2c1ad7f9c518c5e6c55))
|
|
22
|
+
* type safety for wikiFetch and arxiv abstract truncation ([4600b9d](https://github.com/jackwener/opencli/commit/4600b9d46dc7b56ff564c5f100c3a94c6a792c06))
|
|
23
|
+
* use UTC+8 for XHS timestamp formatting (CI timezone fix) ([03f067d](https://github.com/jackwener/opencli/commit/03f067d90764487f0439705df36e1a5c969a7f98))
|
|
24
|
+
* **xiaohongshu:** use fixed UTC+8 offset in trend timestamp formatting (CI timezone fix) ([593436e](https://github.com/jackwener/opencli/commit/593436e4cb5852f396fbaaa9f87ef1a0b518e76d))
|
|
25
|
+
|
|
3
26
|
## [1.0.6](https://github.com/jackwener/opencli/compare/v1.0.5...v1.0.6) (2026-03-20)
|
|
4
27
|
|
|
5
28
|
|
package/CLI-EXPLORER.md
CHANGED
|
@@ -196,7 +196,7 @@ cat src/clis/<site>/feed.ts # 读最相似的那个
|
|
|
196
196
|
|
|
197
197
|
写 TS 适配器之前,先看看你的目标站点有没有**现成的 helper 函数**可以复用:
|
|
198
198
|
|
|
199
|
-
#### Bilibili (`src/bilibili.ts`)
|
|
199
|
+
#### Bilibili (`src/clis/bilibili/utils.ts`)
|
|
200
200
|
|
|
201
201
|
| 函数 | 用途 | 何时使用 |
|
|
202
202
|
|------|------|----------|
|
|
@@ -342,10 +342,11 @@ name: search
|
|
|
342
342
|
description: 知乎搜索
|
|
343
343
|
|
|
344
344
|
args:
|
|
345
|
-
|
|
345
|
+
query:
|
|
346
346
|
type: str
|
|
347
347
|
required: true
|
|
348
|
-
|
|
348
|
+
positional: true
|
|
349
|
+
description: Search query
|
|
349
350
|
limit:
|
|
350
351
|
type: int
|
|
351
352
|
default: 10
|
|
@@ -355,7 +356,7 @@ pipeline:
|
|
|
355
356
|
|
|
356
357
|
- evaluate: |
|
|
357
358
|
(async () => {
|
|
358
|
-
const q = encodeURIComponent('${{ args.
|
|
359
|
+
const q = encodeURIComponent('${{ args.query }}');
|
|
359
360
|
const res = await fetch('/api/v4/search_v3?q=' + q + '&t=general&limit=${{ args.limit }}', {
|
|
360
361
|
credentials: 'include'
|
|
361
362
|
});
|
|
@@ -455,7 +456,7 @@ cli({
|
|
|
455
456
|
name: 'search',
|
|
456
457
|
description: 'Search tweets',
|
|
457
458
|
strategy: Strategy.HEADER,
|
|
458
|
-
args: [{ name: '
|
|
459
|
+
args: [{ name: 'query', required: true, positional: true }],
|
|
459
460
|
columns: ['rank', 'author', 'text', 'likes'],
|
|
460
461
|
func: async (page, kwargs) => {
|
|
461
462
|
await page.goto('https://x.com');
|
|
@@ -474,7 +475,7 @@ cli({
|
|
|
474
475
|
'X-Twitter-Auth-Type': 'OAuth2Session',
|
|
475
476
|
};
|
|
476
477
|
|
|
477
|
-
const variables = JSON.stringify({ rawQuery: '${kwargs.
|
|
478
|
+
const variables = JSON.stringify({ rawQuery: '${kwargs.query}', count: 20 });
|
|
478
479
|
const url = '/i/api/graphql/xxx/SearchTimeline?variables=' + encodeURIComponent(variables);
|
|
479
480
|
const res = await fetch(url, { headers, credentials: 'include' });
|
|
480
481
|
return await res.json();
|
|
@@ -631,7 +632,7 @@ git add src/clis/mysite/ && git commit -m "feat(mysite): add hot" && git push
|
|
|
631
632
|
```typescript
|
|
632
633
|
import { cli, Strategy } from '../../registry.js';
|
|
633
634
|
import type { IPage } from '../../types.js';
|
|
634
|
-
import { apiGet } from '
|
|
635
|
+
import { apiGet } from './utils.js'; // 复用平台 SDK
|
|
635
636
|
|
|
636
637
|
cli({
|
|
637
638
|
site: 'bilibili',
|
|
@@ -694,7 +695,7 @@ cli({
|
|
|
694
695
|
| 嵌套字段访问 | `${{ item.node?.title }}` 不工作 | 在 evaluate 中 flatten 数据,不在模板中用 optional chaining |
|
|
695
696
|
| 缺少 `strategy: public` | 公开 API 也启动浏览器,7s → 1s | 公开 API 加上 `strategy: public` + `browser: false` |
|
|
696
697
|
| evaluate 返回字符串 | map 步骤收到 `""` 而非数组 | pipeline 有 auto-parse,但建议在 evaluate 内 `.map()` 整形 |
|
|
697
|
-
| 搜索参数被 URL 编码 | `${{ args.
|
|
698
|
+
| 搜索参数被 URL 编码 | `${{ args.query }}` 被浏览器二次编码 | 在 evaluate 内用 `encodeURIComponent()` 手动编码 |
|
|
698
699
|
| Cookie 过期 | 返回 401 / 空数据 | 在浏览器里重新登录目标站点 |
|
|
699
700
|
| Extension tab 残留 | Chrome 多出 `chrome-extension://` tab | 已自动清理;若残留,手动关闭即可 |
|
|
700
701
|
| TS evaluate 格式 | `() => {}` 报 `result is not a function` | TS 中 `page.evaluate()` 必须用 IIFE:`(async () => { ... })()` |
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# OpenCLI
|
|
2
2
|
|
|
3
|
-
> **Make any website
|
|
4
|
-
> Zero risk · Reuse Chrome login · AI-powered discovery ·
|
|
3
|
+
> **Make any website, Electron App, or Local Tool your CLI.**
|
|
4
|
+
> Zero risk · Reuse Chrome login · AI-powered discovery · Universal CLI Hub
|
|
5
5
|
|
|
6
6
|
[中文文档](./README.zh-CN.md)
|
|
7
7
|
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
A CLI tool that turns **any website** or **Electron app** into a command-line interface — Bilibili, Zhihu, 小红书, Twitter/X, Reddit, YouTube, Antigravity, and [many more](#built-in-commands) — powered by browser session reuse and AI-native discovery.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**Built for AI Agents**: Simply configure an instruction in your global `AGENT.md` or `.cursorrules` guiding the AI to execute `opencli list` via Bash to discover available tools. Register your favorite local CLIs (`opencli register mycli`), and the AI will automatically learn how to invoke all your tools perfectly!
|
|
15
|
+
|
|
16
|
+
**CLI All Electron Apps! The Most Powerful Update Has Arrived!**
|
|
15
17
|
Turn ANY Electron application into a CLI tool! Recombine, script, and extend applications like Antigravity Ultra seamlessly. Now AI can control itself natively. Unlimited possibilities await!
|
|
16
18
|
|
|
17
19
|
---
|
|
@@ -39,6 +41,7 @@ Turn ANY Electron application into a CLI tool! Recombine, script, and extend app
|
|
|
39
41
|
- **CLI All Electron** — CLI-ify apps like Antigravity Ultra! Now AI can control itself natively using cc/openclaw!
|
|
40
42
|
- **Account-safe** — Reuses Chrome's logged-in state; your credentials never leave the browser.
|
|
41
43
|
- **AI Agent ready** — `explore` discovers APIs, `synthesize` generates adapters, `cascade` finds auth strategies.
|
|
44
|
+
- **External CLI Hub** — Discover, auto-install, and passthrough commands to any external CLI (gh, obsidian, docker, kubectl, etc). Zero setup.
|
|
42
45
|
- **Self-healing setup** — `opencli setup` verifies Browser Bridge connectivity; `opencli doctor` diagnoses daemon, extension, and live browser connectivity.
|
|
43
46
|
- **Dynamic Loader** — Simply drop `.ts` or `.yaml` adapters into the `clis/` folder for auto-registration.
|
|
44
47
|
- **Dual-Engine Architecture** — Supports both YAML declarative data pipelines and robust browser runtime TypeScript injections.
|
|
@@ -119,7 +122,7 @@ Run `opencli list` for the live registry.
|
|
|
119
122
|
| **reddit** | `hot` `frontpage` `popular` `search` `subreddit` `read` `user` `user-posts` `user-comments` `upvote` `save` `comment` `subscribe` `saved` `upvoted` | Browser |
|
|
120
123
|
| **cursor** | `status` `send` `read` `new` `dump` `composer` `model` `extract-code` `ask` `screenshot` `history` `export` | Desktop |
|
|
121
124
|
| **bilibili** | `hot` `search` `me` `favorite` `history` `feed` `subtitle` `dynamic` `ranking` `following` `user-videos` `download` | Browser |
|
|
122
|
-
| **codex** | `status` `send` `read` `new` `extract-diff` `model` `ask` `screenshot` `history` `export` | Desktop |
|
|
125
|
+
| **codex** | `status` `send` `read` `new` `dump` `extract-diff` `model` `ask` `screenshot` `history` `export` | Desktop |
|
|
123
126
|
| **chatwise** | `status` `new` `send` `read` `ask` `model` `history` `export` `screenshot` | Desktop |
|
|
124
127
|
| **notion** | `status` `search` `read` `new` `write` `sidebar` `favorites` `export` | Desktop |
|
|
125
128
|
| **discord-app** | `status` `send` `read` `channels` `servers` `search` `members` | Desktop |
|
|
@@ -127,22 +130,60 @@ Run `opencli list` for the live registry.
|
|
|
127
130
|
| **xueqiu** | `feed` `hot-stock` `hot` `search` `stock` `watchlist` | Browser |
|
|
128
131
|
| **antigravity** | `status` `send` `read` `new` `dump` `extract-code` `model` `watch` | Desktop |
|
|
129
132
|
| **chatgpt** | `status` `new` `send` `read` `ask` | Desktop |
|
|
130
|
-
| **xiaohongshu** | `search` `notifications` `feed` `
|
|
133
|
+
| **xiaohongshu** | `search` `notifications` `feed` `user` `download` `creator-notes` `creator-note-detail` `creator-notes-summary` `creator-profile` `creator-stats` | Browser |
|
|
131
134
|
| **apple-podcasts** | `search` `episodes` `top` | Public |
|
|
132
135
|
| **xiaoyuzhou** | `podcast` `podcast-episodes` `episode` | Public |
|
|
133
136
|
| **zhihu** | `hot` `search` `question` `download` | Browser |
|
|
134
137
|
| **youtube** | `search` `video` `transcript` | Browser |
|
|
135
|
-
| **boss** | `search` `detail` | Browser |
|
|
138
|
+
| **boss** | `search` `detail` `recommend` `joblist` `greet` `batchgreet` `send` `chatlist` `chatmsg` `invite` `mark` `exchange` `resume` `stats` | Browser |
|
|
136
139
|
| **coupang** | `search` `add-to-cart` | Browser |
|
|
137
140
|
| **bbc** | `news` | Public |
|
|
141
|
+
| **bloomberg** | `main` `markets` `economics` `industries` `tech` `politics` `businessweek` `opinions` `feeds` `news` | Public / Browser |
|
|
138
142
|
| **ctrip** | `search` | Browser |
|
|
139
143
|
| **github** | `search` | Public |
|
|
144
|
+
| **arxiv** | `search` `paper` | Public |
|
|
145
|
+
| **wikipedia** | `search` `summary` | Public |
|
|
140
146
|
| **hackernews** | `top` | Public |
|
|
141
147
|
| **linkedin** | `search` | Browser |
|
|
142
148
|
| **reuters** | `search` | Browser |
|
|
143
149
|
| **smzdm** | `search` | Browser |
|
|
144
150
|
| **weibo** | `hot` | Browser |
|
|
145
151
|
| **yahoo-finance** | `quote` | Browser |
|
|
152
|
+
| **sinafinance** | `news` | 🌐 Public |
|
|
153
|
+
| **barchart** | `quote` `options` `greeks` `flow` | Browser |
|
|
154
|
+
| **chaoxing** | `assignments` `exams` | Browser |
|
|
155
|
+
| **grok** | `ask` | Desktop |
|
|
156
|
+
| **hf** | `top` | Public |
|
|
157
|
+
| **jike** | `feed` `search` `create` `like` `comment` `repost` `notifications` `post` `topic` `user` | Browser |
|
|
158
|
+
| **jimeng** | `generate` `history` | Browser |
|
|
159
|
+
| **linux-do** | `hot` `latest` `search` `categories` `category` `topic` | Public |
|
|
160
|
+
| **stackoverflow** | `hot` `search` `bounties` `unanswered` | Public |
|
|
161
|
+
| **steam** | `top-sellers` | Public |
|
|
162
|
+
| **weread** | `shelf` `search` `book` `highlights` `notes` `notebooks` `ranking` | Browser |
|
|
163
|
+
|
|
164
|
+
> **Bloomberg note**: The RSS-backed Bloomberg listing commands (`main`, section feeds, `feeds`) work without a browser. `bloomberg news` is for standard Bloomberg story/article pages that your current Chrome session can already access. Audio and some other non-standard pages may fail, and OpenCLI does not bypass Bloomberg paywall or entitlement checks.
|
|
165
|
+
|
|
166
|
+
### External CLI Hub
|
|
167
|
+
|
|
168
|
+
OpenCLI acts as a universal hub for your existing command-line tools. It provides unified discovery, automatic installation, and pure passthrough execution.
|
|
169
|
+
|
|
170
|
+
| External CLI | Description | Commands Example |
|
|
171
|
+
|--------------|-------------|------------------|
|
|
172
|
+
| **gh** | GitHub CLI | `opencli gh pr list --limit 5` |
|
|
173
|
+
| **obsidian** | Obsidian vault management | `opencli obsidian search query="AI"` |
|
|
174
|
+
| **docker** | Docker command-line interface | `opencli docker ps` |
|
|
175
|
+
| **kubectl** | Kubernetes command-line tool | `opencli kubectl get pods` |
|
|
176
|
+
| **readwise** | Readwise & Reader CLI | `opencli readwise login` |
|
|
177
|
+
|
|
178
|
+
**Zero Configuration**: OpenCLI purely passes your inputs to the underlying binary via standard I/O streams. The external CLI works exactly as it naturally would, maintaining its standard output formats.
|
|
179
|
+
|
|
180
|
+
**Auto-Installation**: If you run `opencli gh ...` and `gh` is not installed on your system, OpenCLI will automatically try to install it using your system's package manager (e.g., `brew install gh`) before seamlessly re-running the command.
|
|
181
|
+
|
|
182
|
+
**Register Your Own**:
|
|
183
|
+
Add any local CLI to your OpenCLI registry so AI agents can automatically discover it via the `opencli list` command.
|
|
184
|
+
```bash
|
|
185
|
+
opencli register mycli
|
|
186
|
+
```
|
|
146
187
|
|
|
147
188
|
### Desktop App Adapters
|
|
148
189
|
|
|
@@ -189,23 +230,23 @@ brew install yt-dlp
|
|
|
189
230
|
|
|
190
231
|
```bash
|
|
191
232
|
# Download images/videos from Xiaohongshu note
|
|
192
|
-
opencli xiaohongshu download --
|
|
233
|
+
opencli xiaohongshu download --note-id abc123 --output ./xhs
|
|
193
234
|
|
|
194
235
|
# Download Bilibili video (requires yt-dlp)
|
|
195
236
|
opencli bilibili download --bvid BV1xxx --output ./bilibili
|
|
196
237
|
opencli bilibili download --bvid BV1xxx --quality 1080p # Specify quality
|
|
197
238
|
|
|
198
239
|
# Download Twitter media from user
|
|
199
|
-
opencli twitter download
|
|
240
|
+
opencli twitter download elonmusk --limit 20 --output ./twitter
|
|
200
241
|
|
|
201
242
|
# Download single tweet media
|
|
202
243
|
opencli twitter download --tweet-url "https://x.com/user/status/123" --output ./twitter
|
|
203
244
|
|
|
204
245
|
# Export Zhihu article to Markdown
|
|
205
|
-
opencli zhihu download
|
|
246
|
+
opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu
|
|
206
247
|
|
|
207
248
|
# Export with local images
|
|
208
|
-
opencli zhihu download
|
|
249
|
+
opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --download-images
|
|
209
250
|
```
|
|
210
251
|
|
|
211
252
|
### Pipeline Step (for YAML adapters)
|
package/README.zh-CN.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# OpenCLI
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
> 零风控 · 复用 Chrome 登录 · AI 自动发现接口 ·
|
|
3
|
+
> **把任何网站、本地工具、Electron 应用变成能够让 AI 调用的命令行!**
|
|
4
|
+
> 零风控 · 复用 Chrome 登录 · AI 自动发现接口 · 全能 CLI 枢纽
|
|
5
5
|
|
|
6
6
|
[English](./README.md)
|
|
7
7
|
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
OpenCLI 将任何网站或 Electron 应用(如 Antigravity)变成命令行工具 — B站、知乎、小红书、Twitter/X、Reddit、YouTube 等[多种站点与应用](#内置命令) — 复用浏览器登录态,AI 驱动探索。
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
**专为 AI Agent 打造**:只需在全局 `.cursorrules` 或 `AGENT.md` 中配置简单指令,引导 AI 通过 Bash 执行 `opencli list` 来检索可用的 CLI 工具及其用法。随后,将你常用的 CLI 列表整合注册进去(`opencli register mycli`),AI 便能瞬间学会自动调用相应的本地工具!
|
|
15
|
+
|
|
16
|
+
**opencli 支持 CLI 化所有 electron 应用!最强大更新来袭!**
|
|
15
17
|
CLI all electron!现在支持把所有 electron 应用 CLI 化,从而组合出各种神奇的能力。
|
|
16
18
|
如果你在使用诸如 Antigravity Ultra 等工具时觉得不够灵活或难以扩展,现在通过 OpenCLI 把他 CLI 化,轻松打破界限。
|
|
17
19
|
现在,**AI 可以自己控制自己**!结合 cc/openclaw 就可以远程控制任何 electron 应用!无限玩法!!
|
|
@@ -120,7 +122,7 @@ npm install -g @jackwener/opencli@latest
|
|
|
120
122
|
| **reddit** | `hot` `frontpage` `popular` `search` `subreddit` `read` `user` `user-posts` `user-comments` `upvote` `save` `comment` `subscribe` `saved` `upvoted` | 浏览器 |
|
|
121
123
|
| **cursor** | `status` `send` `read` `new` `dump` `composer` `model` `extract-code` `ask` `screenshot` `history` `export` | 桌面端 |
|
|
122
124
|
| **bilibili** | `hot` `search` `me` `favorite` `history` `feed` `subtitle` `dynamic` `ranking` `following` `user-videos` `download` | 浏览器 |
|
|
123
|
-
| **codex** | `status` `send` `read` `new` `extract-diff` `model` `ask` `screenshot` `history` `export` | 桌面端 |
|
|
125
|
+
| **codex** | `status` `send` `read` `new` `dump` `extract-diff` `model` `ask` `screenshot` `history` `export` | 桌面端 |
|
|
124
126
|
| **chatwise** | `status` `new` `send` `read` `ask` `model` `history` `export` `screenshot` | 桌面端 |
|
|
125
127
|
| **notion** | `status` `search` `read` `new` `write` `sidebar` `favorites` `export` | 桌面端 |
|
|
126
128
|
| **discord-app** | `status` `send` `read` `channels` `servers` `search` `members` | 桌面端 |
|
|
@@ -128,22 +130,38 @@ npm install -g @jackwener/opencli@latest
|
|
|
128
130
|
| **xueqiu** | `feed` `hot-stock` `hot` `search` `stock` `watchlist` | 浏览器 |
|
|
129
131
|
| **antigravity** | `status` `send` `read` `new` `dump` `extract-code` `model` `watch` | 桌面端 |
|
|
130
132
|
| **chatgpt** | `status` `new` `send` `read` `ask` | 桌面端 |
|
|
131
|
-
| **xiaohongshu** | `search` `notifications` `feed` `
|
|
133
|
+
| **xiaohongshu** | `search` `notifications` `feed` `user` `download` `creator-notes` `creator-note-detail` `creator-notes-summary` `creator-profile` `creator-stats` | 浏览器 |
|
|
132
134
|
| **apple-podcasts** | `search` `episodes` `top` | 公开 |
|
|
133
135
|
| **xiaoyuzhou** | `podcast` `podcast-episodes` `episode` | 公开 |
|
|
134
136
|
| **zhihu** | `hot` `search` `question` `download` | 浏览器 |
|
|
135
137
|
| **youtube** | `search` `video` `transcript` | 浏览器 |
|
|
136
|
-
| **boss** | `search` `detail` | 浏览器 |
|
|
138
|
+
| **boss** | `search` `detail` `recommend` `joblist` `greet` `batchgreet` `send` `chatlist` `chatmsg` `invite` `mark` `exchange` `resume` `stats` | 浏览器 |
|
|
137
139
|
| **coupang** | `search` `add-to-cart` | 浏览器 |
|
|
138
140
|
| **bbc** | `news` | 公共 API |
|
|
141
|
+
| **bloomberg** | `main` `markets` `economics` `industries` `tech` `politics` `businessweek` `opinions` `feeds` `news` | 公共 API / 浏览器 |
|
|
139
142
|
| **ctrip** | `search` | 浏览器 |
|
|
140
143
|
| **github** | `search` | 公共 API |
|
|
144
|
+
| **arxiv** | `search` `paper` | 公开 |
|
|
145
|
+
| **wikipedia** | `search` `summary` | 公开 |
|
|
141
146
|
| **hackernews** | `top` | 公共 API |
|
|
142
147
|
| **linkedin** | `search` | 浏览器 |
|
|
143
148
|
| **reuters** | `search` | 浏览器 |
|
|
144
149
|
| **smzdm** | `search` | 浏览器 |
|
|
145
150
|
| **weibo** | `hot` | 浏览器 |
|
|
146
151
|
| **yahoo-finance** | `quote` | 浏览器 |
|
|
152
|
+
| **sinafinance** | `news` | 🌐 公开 |
|
|
153
|
+
| **barchart** | `quote` `options` `greeks` `flow` | 浏览器 |
|
|
154
|
+
| **chaoxing** | `assignments` `exams` | 浏览器 |
|
|
155
|
+
| **grok** | `ask` | 桌面端 |
|
|
156
|
+
| **hf** | `top` | 公开 |
|
|
157
|
+
| **jike** | `feed` `search` `create` `like` `comment` `repost` `notifications` `post` `topic` `user` | 浏览器 |
|
|
158
|
+
| **jimeng** | `generate` `history` | 浏览器 |
|
|
159
|
+
| **linux-do** | `hot` `latest` `search` `categories` `category` `topic` | 公开 |
|
|
160
|
+
| **stackoverflow** | `hot` `search` `bounties` `unanswered` | 公开 |
|
|
161
|
+
| **steam** | `top-sellers` | 公开 |
|
|
162
|
+
| **weread** | `shelf` `search` `book` `highlights` `notes` `notebooks` `ranking` | 浏览器 |
|
|
163
|
+
|
|
164
|
+
> **Bloomberg 说明**:Bloomberg 的 RSS 列表命令(`main`、各栏目 feed、`feeds`)无需浏览器即可使用。`bloomberg news` 适用于当前 Chrome 会话本身就能访问的标准 Bloomberg 文章页。音频页和部分非标准页面可能失败,OpenCLI 也不会绕过 Bloomberg 的付费墙、登录或权限校验。
|
|
147
165
|
|
|
148
166
|
### 桌面应用适配器
|
|
149
167
|
|
|
@@ -190,23 +208,23 @@ brew install yt-dlp
|
|
|
190
208
|
|
|
191
209
|
```bash
|
|
192
210
|
# 下载小红书笔记中的图片/视频
|
|
193
|
-
opencli xiaohongshu download --
|
|
211
|
+
opencli xiaohongshu download --note-id abc123 --output ./xhs
|
|
194
212
|
|
|
195
213
|
# 下载B站视频(需要 yt-dlp)
|
|
196
214
|
opencli bilibili download --bvid BV1xxx --output ./bilibili
|
|
197
215
|
opencli bilibili download --bvid BV1xxx --quality 1080p # 指定画质
|
|
198
216
|
|
|
199
217
|
# 下载 Twitter 用户的媒体
|
|
200
|
-
opencli twitter download
|
|
218
|
+
opencli twitter download elonmusk --limit 20 --output ./twitter
|
|
201
219
|
|
|
202
220
|
# 下载单条推文的媒体
|
|
203
221
|
opencli twitter download --tweet-url "https://x.com/user/status/123" --output ./twitter
|
|
204
222
|
|
|
205
223
|
# 导出知乎文章为 Markdown
|
|
206
|
-
opencli zhihu download
|
|
224
|
+
opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu
|
|
207
225
|
|
|
208
|
-
#
|
|
209
|
-
opencli zhihu download
|
|
226
|
+
# 导出并下载图片
|
|
227
|
+
opencli zhihu download "https://zhuanlan.zhihu.com/p/xxx" --download-images
|
|
210
228
|
```
|
|
211
229
|
|
|
212
230
|
### Pipeline Step(用于 YAML 适配器)
|