
Research
/Security News
npm Package Uses Prompt Injection and Token Flooding to Disrupt AI Malware Scanners
A new npm package tests AI malware scanners with prompt injection, safety-triggering comments, context flooding, and obfuscated JavaScript.
@jackwener/opencli
Advanced tools
Make any website or Electron App your CLI.
Zero risk · Reuse Chrome login · AI-powered discovery · Browser + Desktop automation
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 — powered by browser session reuse and AI-native discovery.
🔥 CLI All Electron Apps! The Most Powerful Update Has Arrived! 🔥 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!
explore discovers APIs, synthesize generates adapters, cascade finds auth strategies.opencli setup verifies Browser Bridge connectivity; opencli doctor diagnoses daemon, extension, and live browser connectivity..ts or .yaml adapters into the clis/ folder for auto-registration.⚠️ Important: Browser commands reuse your Chrome login session. You must be logged into the target website in Chrome before running commands. If you get empty data or errors, check your login status first.
OpenCLI connects to your browser through a lightweight Browser Bridge Chrome Extension + micro-daemon (zero config, auto-start).
You can install the extension via either method:
Method 1: Download Pre-built Release (Recommended)
opencli-extension.zip or opencli-extension.crx.chrome://extensions and enable Developer mode (top-right toggle)..crx file or the unzipped folder into the extensions page.Method 2: Load Unpacked Source (For Developers)
chrome://extensions and enable Developer mode.extension/ directory from this repository.That's it! The daemon auto-starts when you run any browser command. No tokens, no manual configuration.
Tip: Use
opencli doctorfor ongoing diagnosis:opencli doctor # Check extension + daemon connectivity opencli doctor --live # Also test live browser commands
npm install -g @jackwener/opencli
Then use directly:
opencli list # See all commands
opencli list -f yaml # List commands as YAML
opencli hackernews top --limit 5 # Public API, no browser
opencli bilibili hot --limit 5 # Browser command
opencli zhihu hot -f json # JSON output
opencli zhihu hot -f yaml # YAML output
git clone git@github.com:jackwener/opencli.git
cd opencli
npm install
npm run build
npm link # Link binary globally
opencli list # Now you can use it anywhere!
npm install -g @jackwener/opencli@latest
Run opencli list for the live registry.
| Site | Commands | Mode |
|---|---|---|
trending bookmarks profile search timeline thread following followers notifications post reply delete like article follow unfollow bookmark unbookmark download accept reply-dm | Browser | |
hot frontpage popular search subreddit read user user-posts user-comments upvote save comment subscribe saved upvoted | Browser | |
| cursor | status send read new dump composer model extract-code ask screenshot history export | Desktop |
| bilibili | hot search me favorite history feed subtitle dynamic ranking following user-videos download | Browser |
| codex | status send read new extract-diff model ask screenshot history export | Desktop |
| chatwise | status new send read ask model history export screenshot | Desktop |
| notion | status search read new write sidebar favorites export | Desktop |
| discord-app | status send read channels servers search members | Desktop |
| v2ex | hot latest topic daily me notifications | Public / Browser |
| xueqiu | feed hot-stock hot search stock watchlist | Browser |
| antigravity | status send read new dump extract-code model watch | Desktop |
| chatgpt | status new send read ask | Desktop |
| xiaohongshu | search notifications feed me user download | Browser |
| apple-podcasts | search episodes top | Public |
| xiaoyuzhou | podcast podcast-episodes episode | Public |
| zhihu | hot search question download | Browser |
| youtube | search video transcript | Browser |
| boss | search detail | Browser |
| coupang | search add-to-cart | Browser |
| bbc | news | Public |
| ctrip | search | Browser |
| github | search | Public |
| hackernews | top | Public |
search | Browser | |
| reuters | search | Browser |
| smzdm | search | Browser |
hot | Browser | |
| yahoo-finance | quote | Browser |
Each desktop adapter has its own detailed documentation with commands reference, setup guide, and examples:
| App | Description | Doc |
|---|---|---|
| Cursor | Control Cursor IDE — Composer, chat, code extraction | README |
| Codex | Drive OpenAI Codex CLI agent headlessly | README |
| Antigravity | Control Antigravity Ultra from terminal | README |
| ChatGPT | Automate ChatGPT macOS desktop app | README |
| ChatWise | Multi-LLM client (GPT-4, Claude, Gemini) | README |
| Notion | Search, read, write Notion pages | README |
| Discord | Discord Desktop — messages, channels, servers | README |
| Feishu | 飞书/Lark Desktop via AppleScript | README |
| 微信 Desktop via AppleScript + Accessibility | README | |
| NeteaseMusic | 网易云音乐 Desktop via CEF/CDP | README |
OpenCLI supports downloading images, videos, and articles from supported platforms.
| Platform | Content Types | Notes |
|---|---|---|
| xiaohongshu | Images, Videos | Downloads all media from a note |
| bilibili | Videos | Requires yt-dlp installed |
| Images, Videos | Downloads from user media tab or single tweet | |
| zhihu | Articles (Markdown) | Exports articles with optional image download |
For video downloads from streaming platforms, you need to install yt-dlp:
# Install yt-dlp
pip install yt-dlp
# or
brew install yt-dlp
# Download images/videos from Xiaohongshu note
opencli xiaohongshu download --note_id abc123 --output ./xhs
# Download Bilibili video (requires yt-dlp)
opencli bilibili download --bvid BV1xxx --output ./bilibili
opencli bilibili download --bvid BV1xxx --quality 1080p # Specify quality
# Download Twitter media from user
opencli twitter download --username elonmusk --limit 20 --output ./twitter
# Download single tweet media
opencli twitter download --tweet-url "https://x.com/user/status/123" --output ./twitter
# Export Zhihu article to Markdown
opencli zhihu download --url "https://zhuanlan.zhihu.com/p/xxx" --output ./zhihu
# Export with local images
opencli zhihu download --url "https://zhuanlan.zhihu.com/p/xxx" --download-images
The download step can be used in YAML pipelines:
pipeline:
- fetch: https://api.example.com/media
- download:
url: ${{ item.imageUrl }}
dir: ./downloads
filename: ${{ item.title | sanitize }}.jpg
concurrency: 5
skip_existing: true
All built-in commands support --format / -f with table, json, yaml, md, and csv.
The list command supports the same format options, and keeps --json for backward compatibility.
opencli list -f yaml # Command registry as YAML
opencli bilibili hot -f table # Default: rich terminal table
opencli bilibili hot -f json # JSON (pipe to jq or LLMs)
opencli bilibili hot -f yaml # YAML (human-readable structured output)
opencli bilibili hot -f md # Markdown
opencli bilibili hot -f csv # CSV
opencli bilibili hot -v # Verbose: show pipeline debug steps
If you are an AI assistant tasked with creating a new command adapter for opencli, please follow the AI Agent workflow below:
Quick mode: To generate a single command for a specific page URL, see CLI-ONESHOT.md — just a URL + one-line goal, 4 steps done.
Full mode: Before writing any adapter code, read CLI-EXPLORER.md. It contains the complete browser exploration workflow, the 5-tier authentication strategy decision tree, and debugging guide.
# 1. Deep Explore — discover APIs, infer capabilities, detect framework
opencli explore https://example.com --site mysite
# 2. Synthesize — generate YAML adapters from explore artifacts
opencli synthesize mysite
# 3. Generate — one-shot: explore → synthesize → register
opencli generate https://example.com --goal "hot"
# 4. Strategy Cascade — auto-probe: PUBLIC → COOKIE → HEADER
opencli cascade https://api.example.com/data
Explore outputs to .opencli/explore/<site>/ (manifest.json, endpoints.json, capabilities.json, auth.json).
See TESTING.md for the full testing guide, including:
OPENCLI_HEADLESS=1)# Quick start
npm run build
npx vitest run # All tests
npx vitest run src/ # Unit tests only
npx vitest run tests/e2e/ # E2E tests
chrome://extensions.curl localhost:19825/statuscurl localhost:19825/logsnpm version patch # 0.1.0 → 0.1.1
npm version minor # 0.1.0 → 0.2.0
git push --follow-tags
The CI will automatically build, create a GitHub release, and publish to npm.
FAQs
Make any website or Electron App your CLI. AI-powered.
The npm package @jackwener/opencli receives a total of 13,360 weekly downloads. As such, @jackwener/opencli popularity was classified as popular.
We found that @jackwener/opencli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Research
/Security News
A new npm package tests AI malware scanners with prompt injection, safety-triggering comments, context flooding, and obfuscated JavaScript.

Product
Socket now detects supply chain risks in project manifests, starting with missing lockfiles that can make dependency installs non-reproducible.

Research
/Security News
The trojanized extensions use TinyGo-compiled WebAssembly and Solana transaction memos to resolve command-and-control infrastructure.