@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
package/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: opencli
|
|
3
|
-
description: "OpenCLI — Make any website or Electron App your CLI. Zero risk, AI-powered, reuse Chrome login.
|
|
4
|
-
version:
|
|
3
|
+
description: "OpenCLI — Make any website or Electron App your CLI. Zero risk, AI-powered, reuse Chrome login. 150+ commands across 30+ sites."
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
author: jackwener
|
|
6
6
|
tags: [cli, browser, web, chrome-extension, cdp, bilibili, zhihu, twitter, github, v2ex, hackernews, reddit, xiaohongshu, xueqiu, youtube, boss, coupang, AI, agent]
|
|
7
7
|
---
|
|
@@ -48,7 +48,7 @@ Public API commands (`hackernews`, `github search`, `v2ex`) need no browser.
|
|
|
48
48
|
```bash
|
|
49
49
|
# Bilibili (browser)
|
|
50
50
|
opencli bilibili hot --limit 10 # B站热门视频
|
|
51
|
-
opencli bilibili search
|
|
51
|
+
opencli bilibili search "rust" # 搜索视频 (query positional)
|
|
52
52
|
opencli bilibili me # 我的信息
|
|
53
53
|
opencli bilibili favorite # 我的收藏
|
|
54
54
|
opencli bilibili history --limit 20 # 观看历史
|
|
@@ -61,15 +61,19 @@ opencli bilibili following --limit 20 # 我的关注列表 (支持 --uid 查
|
|
|
61
61
|
|
|
62
62
|
# 知乎 (browser)
|
|
63
63
|
opencli zhihu hot --limit 10 # 知乎热榜
|
|
64
|
-
opencli zhihu search
|
|
65
|
-
opencli zhihu question
|
|
64
|
+
opencli zhihu search "AI" # 搜索 (query positional)
|
|
65
|
+
opencli zhihu question 34816524 # 问题详情和回答 (id positional)
|
|
66
66
|
|
|
67
67
|
# 小红书 (browser)
|
|
68
|
-
opencli xiaohongshu search
|
|
68
|
+
opencli xiaohongshu search "美食" # 搜索笔记 (query positional)
|
|
69
69
|
opencli xiaohongshu notifications # 通知(mentions/likes/connections)
|
|
70
70
|
opencli xiaohongshu feed --limit 10 # 推荐 Feed
|
|
71
|
-
opencli xiaohongshu
|
|
72
|
-
opencli xiaohongshu
|
|
71
|
+
opencli xiaohongshu user xxx # 用户主页 (id positional)
|
|
72
|
+
opencli xiaohongshu creator-notes --limit 10 # 创作者笔记列表
|
|
73
|
+
opencli xiaohongshu creator-note-detail --note-id xxx # 笔记详情
|
|
74
|
+
opencli xiaohongshu creator-notes-summary # 笔记数据概览
|
|
75
|
+
opencli xiaohongshu creator-profile # 创作者资料
|
|
76
|
+
opencli xiaohongshu creator-stats # 创作者数据统计
|
|
73
77
|
|
|
74
78
|
# 雪球 Xueqiu (browser)
|
|
75
79
|
opencli xueqiu hot-stock --limit 10 # 雪球热门股票榜
|
|
@@ -77,15 +81,15 @@ opencli xueqiu stock --symbol SH600519 # 查看股票实时行情
|
|
|
77
81
|
opencli xueqiu watchlist # 获取自选股/持仓列表
|
|
78
82
|
opencli xueqiu feed # 我的关注 timeline
|
|
79
83
|
opencli xueqiu hot --limit 10 # 雪球热榜
|
|
80
|
-
opencli xueqiu search
|
|
84
|
+
opencli xueqiu search "特斯拉" # 搜索 (query positional)
|
|
81
85
|
|
|
82
86
|
# GitHub (public)
|
|
83
|
-
opencli github search
|
|
87
|
+
opencli github search "cli" # 搜索仓库 (query positional)
|
|
84
88
|
|
|
85
89
|
# Twitter/X (browser)
|
|
86
90
|
opencli twitter trending --limit 10 # 热门话题
|
|
87
91
|
opencli twitter bookmarks --limit 20 # 获取收藏的书签推文
|
|
88
|
-
opencli twitter search
|
|
92
|
+
opencli twitter search "AI" # 搜索推文 (query positional)
|
|
89
93
|
opencli twitter profile elonmusk # 用户资料
|
|
90
94
|
opencli twitter timeline --limit 20 # 时间线
|
|
91
95
|
opencli twitter thread 1234567890 # 推文 thread(原文 + 回复)
|
|
@@ -100,15 +104,15 @@ opencli reddit hot --limit 10 # 热门帖子
|
|
|
100
104
|
opencli reddit hot --subreddit programming # 指定子版块
|
|
101
105
|
opencli reddit frontpage --limit 10 # 首页 /r/all
|
|
102
106
|
opencli reddit popular --limit 10 # /r/popular 热门
|
|
103
|
-
opencli reddit search
|
|
104
|
-
opencli reddit subreddit
|
|
105
|
-
opencli reddit read --
|
|
106
|
-
opencli reddit user
|
|
107
|
-
opencli reddit user-posts
|
|
108
|
-
opencli reddit user-comments
|
|
109
|
-
opencli reddit upvote --
|
|
110
|
-
opencli reddit save --
|
|
111
|
-
opencli reddit comment --
|
|
107
|
+
opencli reddit search "AI" --sort top --time week # 搜索(支持排序+时间过滤)
|
|
108
|
+
opencli reddit subreddit rust --sort top --time month # 子版块浏览(支持时间过滤)
|
|
109
|
+
opencli reddit read --post-id 1abc123 # 阅读帖子 + 评论
|
|
110
|
+
opencli reddit user spez # 用户资料(karma、注册时间)
|
|
111
|
+
opencli reddit user-posts spez # 用户发帖历史
|
|
112
|
+
opencli reddit user-comments spez # 用户评论历史
|
|
113
|
+
opencli reddit upvote --post-id xxx --direction up # 投票(up/down/none)
|
|
114
|
+
opencli reddit save --post-id xxx # 收藏帖子
|
|
115
|
+
opencli reddit comment --post-id xxx "Great!" # 发表评论 (text positional)
|
|
112
116
|
opencli reddit subscribe --subreddit python # 订阅子版块
|
|
113
117
|
opencli reddit saved --limit 10 # 我的收藏
|
|
114
118
|
opencli reddit upvoted --limit 10 # 我的赞
|
|
@@ -116,7 +120,7 @@ opencli reddit upvoted --limit 10 # 我的赞
|
|
|
116
120
|
# V2EX (public + browser)
|
|
117
121
|
opencli v2ex hot --limit 10 # 热门话题
|
|
118
122
|
opencli v2ex latest --limit 10 # 最新话题
|
|
119
|
-
opencli v2ex topic
|
|
123
|
+
opencli v2ex topic 1024 # 主题详情 (id positional)
|
|
120
124
|
opencli v2ex daily # 每日签到 (browser)
|
|
121
125
|
opencli v2ex me # 我的信息 (browser)
|
|
122
126
|
opencli v2ex notifications --limit 10 # 通知 (browser)
|
|
@@ -131,26 +135,41 @@ opencli bbc news --limit 10 # BBC News RSS headlines
|
|
|
131
135
|
opencli weibo hot --limit 10 # 微博热搜
|
|
132
136
|
|
|
133
137
|
# BOSS直聘 (browser)
|
|
134
|
-
opencli boss search
|
|
135
|
-
opencli boss detail --
|
|
138
|
+
opencli boss search "AI agent" # 搜索职位 (query positional)
|
|
139
|
+
opencli boss detail --security-id xxx # 职位详情
|
|
140
|
+
opencli boss recommend --limit 10 # 推荐职位
|
|
141
|
+
opencli boss joblist --limit 10 # 职位列表
|
|
142
|
+
opencli boss greet --security-id xxx # 打招呼
|
|
143
|
+
opencli boss batchgreet --job-id xxx # 批量打招呼
|
|
144
|
+
opencli boss send --uid xxx "消息内容" # 发消息 (text positional)
|
|
145
|
+
opencli boss chatlist --limit 10 # 聊天列表
|
|
146
|
+
opencli boss chatmsg --security-id xxx # 聊天记录
|
|
147
|
+
opencli boss invite --security-id xxx # 邀请沟通
|
|
148
|
+
opencli boss mark --security-id xxx # 标记管理
|
|
149
|
+
opencli boss exchange --security-id xxx # 交换联系方式
|
|
150
|
+
opencli boss resume # 简历管理
|
|
151
|
+
opencli boss stats # 数据统计
|
|
136
152
|
|
|
137
153
|
# YouTube (browser)
|
|
138
|
-
opencli youtube search
|
|
139
|
-
opencli youtube video
|
|
140
|
-
opencli youtube transcript
|
|
141
|
-
opencli youtube transcript
|
|
154
|
+
opencli youtube search "rust" # 搜索视频 (query positional)
|
|
155
|
+
opencli youtube video "https://www.youtube.com/watch?v=xxx" # 视频元数据
|
|
156
|
+
opencli youtube transcript "https://www.youtube.com/watch?v=xxx" # 获取视频字幕/转录
|
|
157
|
+
opencli youtube transcript "xxx" --lang zh-Hans --mode raw # 指定语言 + 原始时间戳模式
|
|
142
158
|
|
|
143
159
|
# Yahoo Finance (browser)
|
|
144
160
|
opencli yahoo-finance quote --symbol AAPL # 股票行情
|
|
145
161
|
|
|
162
|
+
# Sina Finance
|
|
163
|
+
opencli sinafinance news --limit 10 --type 1 # 7x24实时快讯 (0=全部 1=A股 2=宏观 3=公司 4=数据 5=市场 6=国际 7=观点 8=央行 9=其它)
|
|
164
|
+
|
|
146
165
|
# Reuters (browser)
|
|
147
|
-
opencli reuters search
|
|
166
|
+
opencli reuters search "AI" # 路透社搜索 (query positional)
|
|
148
167
|
|
|
149
168
|
# 什么值得买 (browser)
|
|
150
|
-
opencli smzdm search
|
|
169
|
+
opencli smzdm search "耳机" # 搜索好价 (query positional)
|
|
151
170
|
|
|
152
171
|
# 携程 (browser)
|
|
153
|
-
opencli ctrip search
|
|
172
|
+
opencli ctrip search "三亚" # 搜索目的地 (query positional)
|
|
154
173
|
|
|
155
174
|
# Antigravity (Electron/CDP)
|
|
156
175
|
opencli antigravity status # 检查 CDP 连接
|
|
@@ -160,14 +179,64 @@ opencli antigravity new # 清空聊天、开启新对话
|
|
|
160
179
|
opencli antigravity extract-code # 自动抽取 AI 回复中的代码块
|
|
161
180
|
opencli antigravity model claude # 切换底层模型
|
|
162
181
|
opencli antigravity watch # 流式监听增量消息
|
|
182
|
+
|
|
183
|
+
# Barchart (browser)
|
|
184
|
+
opencli barchart quote --symbol AAPL # 股票行情
|
|
185
|
+
opencli barchart options --symbol AAPL # 期权链
|
|
186
|
+
opencli barchart greeks --symbol AAPL # 期权 Greeks
|
|
187
|
+
opencli barchart flow --limit 20 # 异常期权活动
|
|
188
|
+
|
|
189
|
+
# Jike 即刻 (browser)
|
|
190
|
+
opencli jike feed --limit 10 # 动态流
|
|
191
|
+
opencli jike search "AI" # 搜索 (query positional)
|
|
192
|
+
opencli jike create "内容" # 发布动态 (text positional)
|
|
193
|
+
opencli jike like xxx # 点赞 (id positional)
|
|
194
|
+
opencli jike comment xxx "评论" # 评论 (id + text positional)
|
|
195
|
+
opencli jike repost xxx # 转发 (id positional)
|
|
196
|
+
opencli jike notifications # 通知
|
|
197
|
+
|
|
198
|
+
# Linux.do (public)
|
|
199
|
+
opencli linux-do hot --limit 10 # 热门话题
|
|
200
|
+
opencli linux-do latest --limit 10 # 最新话题
|
|
201
|
+
opencli linux-do search "rust" # 搜索 (query positional)
|
|
202
|
+
opencli linux-do topic 1024 # 主题详情 (id positional)
|
|
203
|
+
|
|
204
|
+
# StackOverflow (public)
|
|
205
|
+
opencli stackoverflow hot --limit 10 # 热门问题
|
|
206
|
+
opencli stackoverflow search "typescript" # 搜索 (query positional)
|
|
207
|
+
opencli stackoverflow bounties --limit 10 # 悬赏问题
|
|
208
|
+
|
|
209
|
+
# WeRead 微信读书 (browser)
|
|
210
|
+
opencli weread shelf --limit 10 # 书架
|
|
211
|
+
opencli weread search "AI" # 搜索图书 (query positional)
|
|
212
|
+
opencli weread book xxx # 图书详情 (book-id positional)
|
|
213
|
+
opencli weread highlights xxx # 划线笔记 (book-id positional)
|
|
214
|
+
opencli weread notes xxx # 想法笔记 (book-id positional)
|
|
215
|
+
opencli weread ranking --limit 10 # 排行榜
|
|
216
|
+
|
|
217
|
+
# Jimeng 即梦 AI (browser)
|
|
218
|
+
opencli jimeng generate --prompt "描述" # AI 生图
|
|
219
|
+
opencli jimeng history --limit 10 # 生成历史
|
|
220
|
+
|
|
221
|
+
# Grok (Desktop)
|
|
222
|
+
opencli grok ask "问题" # 提问 Grok (text positional)
|
|
223
|
+
|
|
224
|
+
# HuggingFace (public)
|
|
225
|
+
opencli hf top --limit 10 # 热门模型
|
|
226
|
+
|
|
227
|
+
# 超星学习通 (browser)
|
|
228
|
+
opencli chaoxing assignments # 作业列表
|
|
229
|
+
opencli chaoxing exams # 考试列表
|
|
163
230
|
```
|
|
164
231
|
|
|
165
232
|
### Management Commands
|
|
166
233
|
|
|
167
234
|
```bash
|
|
168
|
-
opencli list # List all commands
|
|
235
|
+
opencli list # List all commands (including External CLIs)
|
|
169
236
|
opencli list --json # JSON output
|
|
170
237
|
opencli list -f yaml # YAML output
|
|
238
|
+
opencli install <name> # Auto-install an external CLI (e.g., gh, obsidian)
|
|
239
|
+
opencli register <name> # Register a local custom CLI for unified discovery
|
|
171
240
|
opencli validate # Validate all CLI definitions
|
|
172
241
|
opencli validate bilibili # Validate specific site
|
|
173
242
|
opencli setup # Interactive Browser Bridge setup and connectivity check
|
|
@@ -295,7 +364,7 @@ cli({
|
|
|
295
364
|
site: 'mysite',
|
|
296
365
|
name: 'search',
|
|
297
366
|
strategy: Strategy.INTERCEPT, // Or COOKIE
|
|
298
|
-
args: [{ name: '
|
|
367
|
+
args: [{ name: 'query', required: true, positional: true }],
|
|
299
368
|
columns: ['rank', 'title', 'url'],
|
|
300
369
|
func: async (page, kwargs) => {
|
|
301
370
|
await page.goto('https://www.mysite.com/search');
|
|
@@ -346,7 +415,7 @@ cli({
|
|
|
346
415
|
|
|
347
416
|
```yaml
|
|
348
417
|
# Arguments with defaults
|
|
349
|
-
${{ args.
|
|
418
|
+
${{ args.query }}
|
|
350
419
|
${{ args.limit | default(20) }}
|
|
351
420
|
|
|
352
421
|
# Current item (in map/filter)
|
package/dist/browser/cdp.js
CHANGED
|
@@ -137,12 +137,17 @@ class CDPPage {
|
|
|
137
137
|
this.bridge = bridge;
|
|
138
138
|
}
|
|
139
139
|
/** Navigate with proper load event waiting (P1 fix #3) */
|
|
140
|
-
async goto(url) {
|
|
140
|
+
async goto(url, options) {
|
|
141
141
|
await this.bridge.send('Page.enable');
|
|
142
142
|
const loadPromise = this.bridge.waitForEvent('Page.loadEventFired', 30_000)
|
|
143
143
|
.catch(() => { }); // Don't fail if event times out
|
|
144
144
|
await this.bridge.send('Page.navigate', { url });
|
|
145
145
|
await loadPromise;
|
|
146
|
+
// Post-load settle: SPA frameworks need extra time to render after load event
|
|
147
|
+
if (options?.waitUntil !== 'none') {
|
|
148
|
+
const settleMs = options?.settleMs ?? 1000;
|
|
149
|
+
await new Promise(resolve => setTimeout(resolve, settleMs));
|
|
150
|
+
}
|
|
146
151
|
}
|
|
147
152
|
async evaluate(js) {
|
|
148
153
|
const expression = wrapForEval(js);
|
package/dist/browser/page.d.ts
CHANGED
|
@@ -21,7 +21,10 @@ export declare class Page implements IPage {
|
|
|
21
21
|
/** Helper: spread tabId into command params if we have one */
|
|
22
22
|
private _tabOpt;
|
|
23
23
|
private _workspaceOpt;
|
|
24
|
-
goto(url: string
|
|
24
|
+
goto(url: string, options?: {
|
|
25
|
+
waitUntil?: 'load' | 'none';
|
|
26
|
+
settleMs?: number;
|
|
27
|
+
}): Promise<void>;
|
|
25
28
|
/** Close the automation window in the extension */
|
|
26
29
|
closeWindow(): Promise<void>;
|
|
27
30
|
evaluate(js: string): Promise<any>;
|
package/dist/browser/page.js
CHANGED
|
@@ -30,7 +30,7 @@ export class Page {
|
|
|
30
30
|
_workspaceOpt() {
|
|
31
31
|
return { workspace: this.workspace };
|
|
32
32
|
}
|
|
33
|
-
async goto(url) {
|
|
33
|
+
async goto(url, options) {
|
|
34
34
|
const result = await sendCommand('navigate', {
|
|
35
35
|
url,
|
|
36
36
|
...this._workspaceOpt(),
|
|
@@ -40,6 +40,12 @@ export class Page {
|
|
|
40
40
|
if (result?.tabId) {
|
|
41
41
|
this._tabId = result.tabId;
|
|
42
42
|
}
|
|
43
|
+
// Post-load settle: the extension already waits for tab.status === 'complete',
|
|
44
|
+
// but SPA frameworks (React/Vue) need extra time to render after DOM load.
|
|
45
|
+
if (options?.waitUntil !== 'none') {
|
|
46
|
+
const settleMs = options?.settleMs ?? 1000;
|
|
47
|
+
await new Promise(resolve => setTimeout(resolve, settleMs));
|
|
48
|
+
}
|
|
43
49
|
}
|
|
44
50
|
/** Close the automation window in the extension */
|
|
45
51
|
async closeWindow() {
|
package/dist/build-manifest.js
CHANGED
|
@@ -158,18 +158,21 @@ function scanTs(filePath, site) {
|
|
|
158
158
|
// We statically parse the source to extract metadata for the manifest stub.
|
|
159
159
|
const baseName = path.basename(filePath, path.extname(filePath));
|
|
160
160
|
const relativePath = `${site}/${baseName}.js`;
|
|
161
|
-
const entry = {
|
|
162
|
-
site,
|
|
163
|
-
name: baseName,
|
|
164
|
-
description: '',
|
|
165
|
-
strategy: 'cookie',
|
|
166
|
-
browser: true,
|
|
167
|
-
args: [],
|
|
168
|
-
type: 'ts',
|
|
169
|
-
modulePath: relativePath,
|
|
170
|
-
};
|
|
171
161
|
try {
|
|
172
162
|
const src = fs.readFileSync(filePath, 'utf-8');
|
|
163
|
+
// Helper/test modules should not appear as CLI commands in the manifest.
|
|
164
|
+
if (!/\bcli\s*\(/.test(src))
|
|
165
|
+
return null;
|
|
166
|
+
const entry = {
|
|
167
|
+
site,
|
|
168
|
+
name: baseName,
|
|
169
|
+
description: '',
|
|
170
|
+
strategy: 'cookie',
|
|
171
|
+
browser: true,
|
|
172
|
+
args: [],
|
|
173
|
+
type: 'ts',
|
|
174
|
+
modulePath: relativePath,
|
|
175
|
+
};
|
|
173
176
|
// Extract description
|
|
174
177
|
const descMatch = src.match(/description\s*:\s*['"`]([^'"`]*)['"`]/);
|
|
175
178
|
if (descMatch)
|
|
@@ -198,11 +201,13 @@ function scanTs(filePath, site) {
|
|
|
198
201
|
if (argsBlock) {
|
|
199
202
|
entry.args = parseTsArgsBlock(argsBlock);
|
|
200
203
|
}
|
|
204
|
+
return entry;
|
|
201
205
|
}
|
|
202
|
-
catch {
|
|
203
|
-
// If parsing fails,
|
|
206
|
+
catch (err) {
|
|
207
|
+
// If parsing fails, log a warning (matching scanYaml behaviour) and skip the entry.
|
|
208
|
+
process.stderr.write(`Warning: failed to scan ${filePath}: ${err.message}\n`);
|
|
209
|
+
return null;
|
|
204
210
|
}
|
|
205
|
-
return entry;
|
|
206
211
|
}
|
|
207
212
|
export function buildManifest() {
|
|
208
213
|
const manifest = [];
|
|
@@ -218,9 +223,11 @@ export function buildManifest() {
|
|
|
218
223
|
if (entry)
|
|
219
224
|
manifest.push(entry);
|
|
220
225
|
}
|
|
221
|
-
else if ((file.endsWith('.ts') && !file.endsWith('.d.ts') && file !== 'index.ts') ||
|
|
222
|
-
(file.endsWith('.js') && !file.endsWith('.d.js') && file !== 'index.js')) {
|
|
223
|
-
|
|
226
|
+
else if ((file.endsWith('.ts') && !file.endsWith('.d.ts') && !file.endsWith('.test.ts') && file !== 'index.ts') ||
|
|
227
|
+
(file.endsWith('.js') && !file.endsWith('.d.js') && !file.endsWith('.test.js') && file !== 'index.js')) {
|
|
228
|
+
const entry = scanTs(filePath, site);
|
|
229
|
+
if (entry)
|
|
230
|
+
manifest.push(entry);
|
|
224
231
|
}
|
|
225
232
|
}
|
|
226
233
|
}
|