OpenCLI gives websites, logged-in browser sessions, Electron desktop apps, and local command-line tools a single command surface that both people and AI agents can drive. It reaches Chrome or Chromium through a Browser Bridge extension and a small local daemon, so commands run inside a browser profile you are already signed in to rather than a fresh automation session.
There are three ways to use it. Built-in adapters expose ready-made commands for sites such as Bilibili, Zhihu, Xiaohongshu, Reddit, Hacker News, Twitter/X, LinkedIn, Amazon, and more than a hundred others, each with subcommands like search, hot, download, or post. Agent skills — opencli-browser, opencli-browser-sitemap, opencli-sitemap-author, opencli-adapter-author, opencli-autofix, and opencli-usage — install into a shell-capable agent so it can navigate, read pages as structured DOM snapshots rather than screenshots, click, fill forms, extract data, and intercept network responses. The adapter-authoring workflow guides recon, endpoint discovery, auth-mode choice, field decoding, and verification, and persists site knowledge under ~/.opencli/sites/ for the next adapter.
OpenCLI also acts as a hub for command-line tools you already have, passing through binaries such as gh, docker, vercel, wrangler, obsidian, longbridge, ntn for Notion, and messaging CLIs, with opencli external register for your own. Electron desktop apps are reachable over the Chrome DevTools Protocol, and community adapters install as plugins from a Git repository.
Browser sessions are explicit: opencli browser takes a session positional, holds a tab lease until the session is closed, and routes commands to a specific tab by target ID. Configuration is environment-variable driven, covering profile selection, window placement, session persistence, and connection and command timeouts. Installation is either a desktop app that bundles the runtime and a tray UI, or a global npm package on Node.js 20.18.1 or later.
Features
- Logged-in browser reuse: commands run through your existing Chrome profile, so sites that need a session work without separate credentials
- Built-in site adapters: more than a hundred sites ship with named commands for search, feeds, rankings, comments, posting, and downloads
- Agent skills: installable skills teach a shell-capable agent to drive pages, consume site sitemaps, write new adapters, and repair broken ones
- DOM snapshots: page state is read as structured text rather than screenshots, alongside click, type, fill, select, key, wait, scroll, and eval primitives
- Adapter authoring: a guided recon-to-verify workflow with browser recon analyze, init, and verify, plus persisted per-site knowledge
- CLI hub: local binaries are exposed through the same discovery surface, with external register for your own tools
- Desktop app control: Electron applications are automated over the Chrome DevTools Protocol
- Session and tab leases: named browser sessions hold explicit tab leases, with --tab routing and foreground or background windows
- Output formats: every built-in command supports table, JSON, YAML, Markdown, and CSV output
- Exit codes: Unix sysexits.h codes distinguish empty results, bridge down, timeout, auth required, and config errors for scripting
- Downloads: images, videos, audio, transcripts, and Markdown articles from supported platforms, with yt-dlp for video
- Plugins: third-party adapter packages install from GitHub and update in place
