Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@jackwener/opencli

Package Overview
Dependencies
Maintainers
1
Versions
107
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Potential malware was recently detected in this package.

Affected versions:

1.0.01.0.11.0.41.0.51.0.6
+10 more

@jackwener/opencli

Make any website or Electron App your CLI. AI-powered.

Source
npmnpm
Version
1.6.8
Version published
Weekly downloads
15K
19.41%
Maintainers
1
Weekly downloads
 
Created
Source

OpenCLI

Make any website, Electron App, or Local Tool your CLI. Zero risk · Reuse Chrome/Chromium login · AI-powered discovery · Universal CLI Hub

中文文档 npm Node.js Version License

A CLI tool that turns any website, Electron app, or local CLI tool into a command-line interface — Bilibili, Zhihu, 小红书, Twitter/X, Reddit, YouTube, Antigravity, gh, docker, and many more — powered by browser session reuse and AI-native discovery.

Built for AI Agents — Load the opencli-operate skill to give any AI agent (Claude Code, Cursor) direct browser control. Operate any website, then crystallize those interactions into reusable CLI commands. Configure opencli list in your AGENT.md or .cursorrules so the AI auto-discovers all available tools.

CLI Hub — Register any local CLI (opencli register mycli) so AI agents can discover and call it alongside built-in commands. Auto-installs missing tools via your package manager (e.g. if gh isn't installed, opencli gh ... runs brew install gh first then re-executes seamlessly).

CLI for Electron Apps — Turn any Electron application into a CLI tool. Recombine, script, and extend apps like Antigravity Ultra from the terminal. AI agents can now control other AI apps natively.

Highlights

  • CLI All Electron — CLI-ify apps like Antigravity Ultra! Now AI can control itself natively.
  • Browser Automationoperate gives AI agents direct browser control: click, type, extract, screenshot — any interaction, fully scriptable.
  • Website → CLI — Turn any website into a deterministic CLI: 70+ pre-built adapters, or crystallize your own with opencli record.
  • Account-safe — Reuses Chrome/Chromium logged-in state; your credentials never leave the browser.
  • Anti-detection built-in — Patches navigator.webdriver, stubs window.chrome, fakes plugin lists, cleans ChromeDriver/Playwright globals, and strips CDP frames from Error stack traces. Extensive anti-fingerprinting and risk-control evasion measures baked in at every layer.
  • AI Agent readyexplore discovers APIs, synthesize generates adapters, cascade finds auth strategies, operate controls the browser directly.
  • External CLI Hub — Discover, auto-install, and passthrough commands to any external CLI (gh, obsidian, docker, etc). Zero setup.
  • Self-healing setupopencli doctor diagnoses and auto-starts the daemon, extension, and live browser connectivity.
  • Dynamic Loader — Simply drop .ts or .yaml adapters into the clis/ folder for auto-registration.
  • Zero LLM cost — No tokens consumed at runtime. Run 10,000 times and pay nothing.
  • Deterministic — Same command, same output schema, every time. Pipeable, scriptable, CI-friendly.
  • Broad coverage — 79+ sites across global and Chinese platforms (Bilibili, Zhihu, Xiaohongshu, Reddit, HackerNews, and more), plus desktop Electron apps via CDP.

Quick Start

1. Install Browser Bridge Extension

OpenCLI connects to your browser through a lightweight Browser Bridge Chrome/Chromium extension + micro-daemon (zero config, auto-start).

  • Go to the GitHub Releases page and download the latest opencli-extension.zip.
  • Unzip the file and open chrome://extensions, enable Developer mode (top-right toggle).
  • Click Load unpacked and select the unzipped folder.

2. Install OpenCLI

Install via npm (recommended)

npm install -g @jackwener/opencli

# Install AI skills for Claude Code / Cursor
npx skills add jackwener/opencli

3. Verify & Try

opencli doctor          # Check extension + daemon connectivity
opencli daemon status   # Check daemon state (PID, uptime, memory)

Try it out:

opencli list                           # See all commands
opencli hackernews top --limit 5       # Public API, no browser needed
opencli bilibili hot --limit 5         # Browser command (requires Extension)

4. Browser Automation — Make Websites Accessible for AI Agents

Point your AI agent (Claude Code, Cursor) to skills/opencli-operate/SKILL.md. It has everything needed — full command reference, examples, and workflow.

Available commands: open, state, click, type, select, keys, wait, get, screenshot, scroll, back, eval, network, init, verify, close.

Update

npm install -g @jackwener/opencli@latest

Install AI Skills

OpenCLI provides skills for AI agents (Claude Code, etc.):

# Install all OpenCLI skills
npx skills add jackwener/opencli

# Or install specific skills
npx skills add jackwener/opencli --skill opencli-usage      # Command reference
npx skills add jackwener/opencli --skill opencli-operate     # Browser automation for AI agents
npx skills add jackwener/opencli --skill opencli-explorer    # Adapter development guide
npx skills add jackwener/opencli --skill opencli-oneshot     # Quick command reference

For Developers

Install from source

git clone git@github.com:jackwener/opencli.git && cd opencli && npm install && npm run build && npm link

Load Source Browser Bridge Extension

  • Open chrome://extensions and enable Developer mode (top-right toggle).
  • Click Load unpacked and select the extension/ directory from this repository.

Prerequisites

  • Node.js: >= 20.0.0 (or Bun >= 1.0)
  • Chrome or Chromium running and logged into the target site (e.g. bilibili.com, zhihu.com, xiaohongshu.com, goofish.com).

⚠️ Important: Browser commands reuse your Chrome/Chromium login session. You must be logged into the target website in Chrome or Chromium before running commands. If you get empty data or errors, check your login status first.

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 user-videos
tiebahot posts search read
hupuhot search detail mentions reply like unlike
twittertrending search timeline bookmarks post download profile article like likes notifications reply reply-dm thread follow unfollow followers following block unblock bookmark unbookmark delete hide-reply accept
reddithot frontpage popular search subreddit read user user-posts user-comments upvote upvoted save saved comment subscribe
amazonbestsellers search product offer discussion movers-shakers new-releases
1688search item assets download store
gemininew ask image deep-research deep-research-result
yuanbaonew ask
notebooklmstatus list open current get history summary note-list notes-get source-list source-get source-fulltext source-guide
spotifyauth status play pause next prev volume search queue shuffle repeat
xianyusearch item chat
xiaoecourses detail catalog play-url content

79+ adapters in total — → see all supported sites & commands

CLI Hub

OpenCLI acts as a universal hub for your existing command-line tools — unified discovery, pure passthrough execution, and auto-install (if a tool isn't installed, OpenCLI runs brew install <tool> automatically before re-running the command).

External CLIDescriptionExample
ghGitHub CLIopencli gh pr list --limit 5
obsidianObsidian vault managementopencli obsidian search query="AI"
dockerDockeropencli docker ps
lark-cliLark/Feishu — messages, docs, calendar, tasks, 200+ commandsopencli lark-cli calendar +agenda
dingtalkDingTalk — cross-platform CLI for DingTalk's full suite, designed for humans and AI agentsopencli dingtalk msg send --to user "hello"
wecomWeCom/企业微信 — CLI for WeCom open platform, for humans and AI agentsopencli wecom msg send --to user "hello"
vercelVercel — deploy projects, manage domains, env vars, logsopencli vercel deploy --prod

Register your own — add any local CLI so AI agents can discover it via opencli list:

opencli register mycli

Desktop App Adapters

Control Electron desktop apps directly from the terminal. Each adapter has its own detailed documentation:

AppDescriptionDoc
CursorControl Cursor IDE — Composer, chat, code extractionDoc
CodexDrive OpenAI Codex CLI agent headlesslyDoc
AntigravityControl Antigravity Ultra from terminalDoc
ChatGPTAutomate ChatGPT macOS desktop appDoc
ChatWiseMulti-LLM client (GPT-4, Claude, Gemini)Doc
NotionSearch, read, write Notion pagesDoc
DiscordDiscord Desktop — messages, channels, serversDoc
DoubaoControl Doubao AI desktop app via CDPDoc

To add a new Electron app, start with docs/guide/electron-app-cli.md.

Download Support

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

PlatformContent TypesNotes
xiaohongshuImages, VideosDownloads all media from a note
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
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 abc123 --output ./xhs
opencli bilibili download BV1xxx --output ./bilibili
opencli twitter download elonmusk --limit 20 --output ./twitter
opencli 1688 download 841141931191 --output ./1688-downloads

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 conventions so it integrates naturally with shell pipelines and CI scripts:

CodeMeaningWhen
0SuccessCommand completed normally
1Generic errorUnexpected / unclassified failure
2Usage errorBad arguments or unknown command
66Empty resultNo data returned (EX_NOINPUT)
69Service unavailableBrowser Bridge not connected (EX_UNAVAILABLE)
75Temporary failureCommand timed out — retry (EX_TEMPFAIL)
77Auth requiredNot logged in to target site (EX_NOPERM)
78Config errorMissing credentials or bad config (EX_CONFIG)
130InterruptedCtrl-C / SIGINT
opencli spotify status || echo "exit $?"   # 69 if browser not running
opencli github issues 2>/dev/null
[ $? -eq 77 ] && opencli github auth       # auto-auth if not logged in

Plugins

Extend OpenCLI with community-contributed adapters:

opencli plugin install github:user/opencli-plugin-my-tool
opencli plugin list
opencli plugin update --all
opencli plugin uninstall my-tool
PluginTypeDescription
opencli-plugin-github-trendingYAMLGitHub Trending repositories
opencli-plugin-hot-digestTSMulti-platform trending aggregator
opencli-plugin-juejinYAML稀土掘金 (Juejin) hot articles
opencli-plugin-vkTSVK (VKontakte) wall, feed, and search

See Plugins Guide for creating your own plugin.

For AI Agents (Developer Guide)

Quick mode: To generate a single command for a specific page URL, see opencli-oneshot skill — just a URL + one-line goal, 4 steps done.

Full mode: Before writing any adapter code, read opencli-explorer skill. It contains the complete browser exploration workflow, the 5-tier authentication strategy decision tree, and debugging guide.

opencli explore https://example.com --site mysite   # Discover APIs + capabilities
opencli synthesize mysite                            # Generate YAML adapters
opencli generate https://example.com --goal "hot"   # One-shot: explore → synthesize → register
opencli cascade https://api.example.com/data         # Auto-probe: PUBLIC → COOKIE → HEADER

Testing

See TESTING.md for how to run and write tests.

Troubleshooting

  • "Extension not connected" — Ensure the Browser Bridge extension is installed and enabled in chrome://extensions in Chrome or Chromium.
  • "attach failed: Cannot access a chrome-extension:// URL" — Another extension may be interfering. Try disabling other extensions temporarily.
  • Empty data or 'Unauthorized' error — Your Chrome/Chromium login session may have expired. Navigate to the target site and log in again.
  • Node API errors — Ensure Node.js >= 20. Some dependencies require modern Node APIs.
  • Daemon issues — Check status: curl localhost:19825/status · View logs: curl localhost:19825/logs

Star History

Star History Chart

License

Apache-2.0

Keywords

cli

FAQs

Package last updated on 05 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts