S

smart-search

by @jackwenerv
4.5(20)

OpenCLI 将任何网站转换为命令行工具,并通过已登录的 Chrome 浏览器实现自动化操作。它赋能 AI 智能体导航、填写表单、点击、提取信息,并自动化网页交互。同时,它也是一个本地 CLI 工具集线器,支持集成现有命令行工具和桌面应用,极大地提升了人与 AI 代理的工作效率。

browser-automationcli-toolsai-agentsweb-scrapingworkflow-automationGitHub
安装方式
npx skills add jackwener/opencli --skill smart-search
compare_arrows

Before / After 效果对比

1
使用前

过去,手动在网站上执行重复性操作或让 AI 智能体处理复杂网页交互,耗时且易出错,导致效率低下,通常需要 30 分钟完成一项任务。

使用后

使用 OpenCLI 后,可将网页操作自动化为 CLI 命令,AI 智能体能高效、稳定地完成网页导航、数据提取等任务,将任务耗时缩短至 5 分钟。

SKILL.md

OpenCLI

Convert any website into a CLI & run Browser Use on your logged-in Chrome. Turn websites, browser sessions, Electron apps, and local tools into deterministic interfaces for humans and AI agents. Or run Browser Use against any page — navigate, fill forms, click, extract, automate.

中文文档 npm Node.js Version License

OpenCLI gives you one surface for three different kinds of automation:

  • Use built-in adapters for sites like Bilibili, Zhihu, Xiaohongshu, Reddit, HackerNews, Twitter/X, and many more.
  • Let AI Agents operate any website — install the opencli-browser skill in your AI agent (Claude Code, Cursor, etc.), and it can navigate, click, type/fill, extract, and inspect any page through your logged-in browser via opencli browser primitives.
  • Write new adapters end-to-end with opencli browser + the opencli-adapter-author skill, which guides from first recon through field decoding, code, and opencli browser verify.

It also works as a CLI hub for local tools such as gh, docker, longbridge, tg, discord, wx, ntn (Notion), and other binaries you register yourself, plus desktop app adapters for Electron apps like Cursor, Codex, Antigravity, and ChatGPT.

Quick Start

1. Install OpenCLI

OpenCLI requires Node.js >= 21.

node --version
npm install -g @jackwener/opencli

2. Install the Browser Bridge Extension

OpenCLI connects to Chrome/Chromium through a lightweight Browser Bridge extension plus a small local daemon. The daemon auto-starts when needed.

Option A — Chrome Web Store (recommended): Install OpenCLI from the Chrome Web Store.

Option B — Manual install:

  1. Download the latest opencli-extension-v{version}.zip from the GitHub Releases page.
  2. Unzip it, open chrome://extensions, and enable Developer mode.
  3. Click Load unpacked and select the unzipped folder.

3. Verify the setup

opencli doctor

4. Optional: name your Chrome profile

Each Chrome profile runs its own OpenCLI extension instance. If you use multiple Chrome profiles, list the connected profiles and assign local aliases:

opencli profile list
opencli profile rename <contextId> work
opencli profile use work
opencli --profile work browser state

With only one connected profile, OpenCLI uses it automatically. With multiple connected profiles and no default, OpenCLI asks you to choose instead of guessing.

5. Run your first commands

opencli list
opencli hackernews top --limit 5
opencli bilibili hot --limit 5

For Humans

Use OpenCLI directly when you want a reliable command instead of a live browser session:

  • opencli list shows every registered command.
  • opencli <site> <command> runs a built-in or generated adapter.
  • opencli external register mycli exposes a local CLI through the same discovery surface.
  • opencli doctor helps diagnose browser connectivity.

Extending OpenCLI

If you want to add your own commands, start with the Extending OpenCLI guide. README keeps this short; the guide covers the directory layout, source-control model, and install commands.

NeedRecommended path
Keep personal website commands in your own Git repoopencli plugin create + opencli plugin install file://...
Quickly draft a private local adapteropencli browser init <site>/<command> in ~/.opencli/clis/
Modify an official adapter locallyopencli adapter eject <site> + opencli adapter reset <site>
Publish or install third-party commandsopencli plugin install github:user/repo
Wrap an existing local binaryopencli external register <name>

For AI Agents

OpenCLI's browser commands are designed to be used by AI Agents — not run manually. Install skills into your AI agent (Claude Code, Cursor, etc.), and the agent operates websites on your behalf using your logged-in Chrome session.

Install skills (also refreshes existing installs)

npx skills add jackwener/opencli

Or install only what you need:

npx skills add jackwener/opencli --skill opencli-adapter-author
npx skills add jackwener/opencli --skill opencli-autofix
npx skills add jackwener/opencli --skill opencli-browser
npx skills add jackwener/opencli --skill opencli-usage

Which skill to use

SkillWhen to useExample prompt to your AI agent
opencli-adapter-authorWrite a reusable adapter for a new site or add a command to an existing site"Write an adapter for douyin trending" / "Make a command that grabs the top posts from this page"
opencli-autofixRepair a broken adapter when a built-in command fails"opencli zhihu hot is returning empty — fix it"
opencli-browserDrive a real Chrome page ad-hoc — navigate, fill forms, click, extract"Help me check my Xiaohongshu notifications" / "Help me fill out this form" / "Use browser commands to scrape this page"
opencli-usageQuick reference for all OpenCLI commands and sites"What commands does OpenCLI have for Twitter?"

How it works

Once opencli-browser is installed, your AI agent can:

  1. Navigate to any URL using your logged-in browser
  2. Read page content via structured DOM snapshots (not screenshots)
  3. Interact — click buttons, fill forms, select options, press keys
  4. Extract data from the page or intercept network API responses
  5. Wait for elements, text, or page transitions

The agent handles all the opencli browser commands internally — you just describe what you want done in natural language.

Skill references:

Available browser commands include open, state, click, type, fill, select, keys, wait, get, find, extract, frames, screenshot, scroll, back, eval, network, tab list, tab new, tab select, tab close, init, verify, and close.

opencli browser commands require a <session> positional immediately after browser. opencli browser work open <url> and opencli browser work tab new [url] both return a target ID. Use opencli browser work tab list to inspect target IDs, then pass --tab <targetId> to route a command to a specific tab. tab new creates a new tab without changing the default browser target; only tab select <targetId> promotes that tab to the default target for later untargeted commands in the same session.

Writing a new adapter

When the site you need is not yet covered, use the opencli-adapter-author skill end-to-end:

  1. Recon the site and pick a pattern (SPA / SSR / JSONP / Token / Streaming).
  2. Discover the right endpoint — network inspection, initial state, bundle search, token trace, or interceptor fallback.
  3. Pick authPUBLIC / COOKIE / INTERCEPT / UI / LOCAL.
  4. Decode response fields and design output columns.
  5. opencli browser recon analyze <url>opencli browser recon init <site>/<name> → write adapter → opencli browser recon verify <site>/<name>.
  6. Site knowledge persists to ~/.opencli/sites/<site>/ so the next adapter for the same site starts from context.

Prerequisites

  • Node.js: >= 21.0.0 (required for the standard npm install path)
  • Bun: >= 1.0 (optional alternative runtime)
  • Chrome or Chromium running and logged into the target site for browser-backed commands

Important: Browser-backed commands reuse your Chrome/Chromium login session. If you get empty data or permission-like failures, first confirm the site is already open and authenticated in Chrome/Chromium.

Configuration

VariableDefaultDescription
OPENCLI_DAEMON_PORT19825HTTP port for the daemon-extension bridge
OPENCLI_PROFILEBrowser Bridge profile alias/contextId to use when multiple Chrome profiles are connected
OPENCLI_WINDOWcommand defaultSet to foreground or background to override Browser Bridge window placement. Browser-backed commands also accept --window <foreground|background>.
OPENCLI_BROWSER_CONNECT_TIMEOUT30Seconds to wait for browser connection
OPENCLI_BROWSER_COMMAND_TIMEOUT60Seconds to wait for a single browser command
OPENCLI_CDP_ENDPOINTChrome DevTools Protocol endpoint for remote browser or Electron apps
OPENCLI_CDP_TARGETFilter CDP targets by URL substring (e.g. detail.1688.com)
OPENCLI_VERBOSEfalseEnable verbose logging (-v flag also works)
DEBUG_SNAPSHOTSet to 1 for DOM snapshot debug output

opencli browser * requires an explicit <session> positional, uses a foreground browser window by default, and keeps that session's tab lease until opencli browser <session> close or idle cleanup. Browser-backed adapters use a background adapter window and release one-shot tab leases by default. Interactive adapters can declare siteSession: 'persistent' to keep a stable site tab for continuity; pass --site-session ephemeral for a one-shot tab.

Built-in Commands

SiteCommands
xiaohongshusearch note comments feed user download publish notifications creator-notes creator-notes-summary creator-note-detail creator-profile creator-stats
bilibilihot search history feed ranking download comments dynamic favorite following me subtitle summary video user-videos
zhihuhot search question download follow like favorite comment answer
hackernewstop new best ask show jobs search user
linkedinconnect inbox safe-send search sent-invitations thread-snapshot timeline salesnav-search salesnav-inbox salesnav-message salesnav-thread
reddithot frontpage popular search subreddit read user user-posts user-comments upvote upvoted save saved comment subscribe
twittertrending search timeline tweets lists list-tweets list-add list-remove bookmarks post download profile article like likes notifications reply reply-dm thread follow unfollow followers following block unblock bookmark unbookmark delete hide-reply accept
claudeask send new status read history detail
gemininew ask image deep-research deep-research-result
notebooklmstatus list open current get history summary note-list notes-get source-list source-get source-fulltext source-guide
amazonbestsellers search product offer discussion movers-shakers new-releases rankings

Curated highlights — → see all 100+ supported sites & commands (douyin / weibo / spotify / 1688 / quark / nowcoder / google-scholar / hupu / xianyu / weread / weread-official / xiaoyuzhou / Chess.com / and more).

CLI Hub

Unified passthrough for your existing command-line tools. Run opencli <tool> ... for any of:

gh · docker · vercel · wrangler · obsidian · longbridge · lark-cli · ntn(notion) · dws(DingTalk Workspace) · wecom-cli(企业微信) · tg(tg-cli) · discord(discord-cli) · wx(wx-cli)

Register your own with opencli external register <name>; list everything with opencli external list.

Desktop app adapters (Electron, via CDP): Cursor / Codex / Antigravity / ChatGPT App / ChatWise / Discord / Doubao — see docs/adapters/desktop/.

Download Support

OpenCLI supports downloading images, videos, and articles from supported platforms.

PlatformContent TypesNotes
xiaohongshuImages, VideosDownloads all media from a note
rednoteImages, VideosDownloads all media from a signed rednote note URL
bilibiliVideosRequires yt-dlp installed
twitterImages, VideosFrom user media tab or single tweet
doubanImagesPoster / still image lists
pixivImagesOriginal-quality illustrations, multi-page
1688Images, VideosDownloads page-visible product media from item pages
xiaoyuzhouAudio, TranscriptDownloads episode audio and transcript JSON/text with local credentials
zhihuArticles (Markdown)Exports with optional image download
weixinArticles (Markdown)WeChat Official Account articles

For video downloads, install yt-dlp first: brew install yt-dlp

opencli xiaohongshu download "https://www.xiaohongshu.com/search_result/<id>?xsec_token=..." --output ./xhs
opencli xiaohongshu download "https://xhslink.com/..." --output ./xhs
opencli rednote download "https://www.rednote.com/search_result/<id>?xsec_token=..." --output ./rednote
opencli bilibili download BV1xxx --output ./bilibili
opencli twitter download elonmusk --limit 20 --output ./twitter
opencli 1688 download 841141931191 --output ./1688-downloads
opencli xiaoyuzhou download 69b3b675772ac2295bfc01d0 --output ./xiaoyuzhou
opencli xiaoyuzhou transcript 69dd0c98e2c8be31551f6a33 --output ./xiaoyuzhou-transcripts

opencli xiaoyuzhou download and transcript require local Xiaoyuzhou credentials in ~/.opencli/xiaoyuzhou.json.

Output Formats

All built-in commands support --format / -f with table (default), json, yaml, md, and csv.

opencli bilibili hot -f json    # Pipe to jq or LLMs
opencli bilibili hot -f csv     # Spreadsheet-friendly
opencli bilibili hot -v         # Verbose: show pipeline debug steps

Exit Codes

opencli follows Unix sysexits.h so CI / scripts can branch on failure mode: 0 success, 66 empty result, 69 Browser Bridge down, 75 timeout, 77 auth required, 78 config error, 130 Ctrl-C. Full referenc

...

用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价

统计数据

安装量9.6K
评分4.5 / 5.0
版本
更新日期2026年5月21日
对比案例1 组

用户评分

4.5(20)
5
50%
4
50%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年4月9日
最后更新2026年5月21日