📦 jackwener/OpenCLI
英文标题:📦 jackwener/OpenCLI
OpenCLI 可将任意网站转化为 CLI 命令行接口,并让 AI Agent 直接操控您已登录的 Chrome 浏览器,实现导航、填表、点击、提取等自动化。项目内置对 Bilibili、知乎、小红书、Reddit、Twitter/X 等上百个站点的适配器,同时提供 browser、adapter-author 等技能以集成 Claude Code、Cursor 等开发代理。它还能作为本地工具(如 gh、docker、discord)的统一 CLI 入口,适合开发者构建确定性人机交互与自动化工作流。
105.2 KB
中文
将任意网站转化为 CLI 命令行接口,并在您已登录的 Chrome 浏览器上运行 Browser Use。 将网站、浏览器会话、Electron 应用和本地工具转化为供人类和 AI Agent 使用的确定性界面。或者针对任意页面运行 Browser Use——导航、填表、点击、提取、自动化。
OpenCLI 为三种不同的自动化需求提供统一入口:
- 使用内置适配器,面向 Bilibili、知乎、小红书、Reddit、HackerNews、Twitter/X 等众多网站。
- 让 AI Agent 操控任意网站 — 将
opencli-browser技能安装到您的 AI Agent(Claude Code、Cursor 等)中,它就能通过opencli browser原语在您已登录的浏览器上导航、点击、输入/填表、提取和检查任何页面。 - 编写新的适配器,端到端使用
opencli browser+opencli-adapter-author技能,它会从初步侦察、字段解码、代码编写一直引导到opencli browser verify。
OpenCLI 也可作为本地工具的 CLI 中心,集成 gh、docker、longbridge、tg、discord、wx、ntn(Notion)以及您自行注册的其他二进制程序,此外还提供 Electron 应用的桌面适配器,如 Cursor、Trae CN、Codex、Antigravity、ChatGPT 和 Trae SOLO。
桌面使用建议从 OpenCLIApp 开始。它内置 OpenCLI 运行时,保持托管的 opencli 命令持续安装,并提供用于设置、诊断、更新、浏览器登录保活以及 Web → Markdown 的系统托盘 UI。
方案 A — OpenCLIApp(推荐用于 macOS / Windows): 从 https://opencli.info/download 下载最新应用,安装后打开一次,使用“系统”页面安装或修复 opencli 命令。
方案 B — npm 全局安装(仅 CLI / CI / 服务器): 通过 npm 安装时,OpenCLI 需要 Node.js >= 20。
node --version
npm install -g @jackwener/opencli
2. 安装浏览器桥接扩展
OpenCLI 通过轻量级浏览器桥接扩展和一个小型本地守护进程连接 Chrome/Chromium。守护进程按需自动启动。
方案 A — Chrome Web Store(推荐): 从 Chrome Web Store 安装 OpenCLI。
方案 B — 手动安装:
- 从 GitHub Releases 页面 下载最新的
opencli-extension-v{version}.zip。 - 解压,打开
chrome://extensions,并启用开发者模式。 - 点击加载已解压的扩展程序,选择解压后的文件夹。
4. 可选:为 Chrome 配置文件命名
每个 Chrome 配置文件运行独立的 OpenCLI 扩展实例。如果使用多个 Chrome 配置文件,可列出已连接的配置文件并指定本地别名:
opencli profile list
opencli profile rename <contextId> work
opencli profile use work
opencli --profile work browser main state
如果只有一个已连接配置文件,OpenCLI 会自动使用它。如果有多个已连接配置文件且未设置默认值,OpenCLI 会提示您选择,而非自动猜测。
5. 运行您的第一条命令
opencli list
opencli hackernews top --limit 5
opencli bilibili hot --limit 5
当您需要可靠命令而非实时浏览器会话时,直接使用 OpenCLI:
opencli list显示所有已注册的命令。opencli <site> <command>运行内置或生成的适配器。opencli external register mycli将本地 CLI 暴露到同一个发现界面上。opencli doctor帮助诊断浏览器连接。
如果想添加自己的命令,请从扩展 OpenCLI 指南开始。README 保持简洁;该指南涵盖目录布局、源代码管理模型和安装命令。
| 需求 | 推荐方式 |
|---|---|
| 在自己的 Git 仓库中维护个人网站命令 | opencli plugin create + opencli plugin install file://... |
| 快速起草一个私有的本地适配器 | 在 ~/.opencli/clis/ 中使用 opencli browser init <site>/<command> |
| 在本地修改官方适配器 | opencli adapter eject <site> + opencli adapter reset <site> |
| 发布或安装第三方命令 | opencli plugin install github:user/repo |
| 包装已有的本地二进制程序 | opencli external register <name> |
OpenCLI 的浏览器命令专为 AI Agent 使用而设计——而非手动运行。将技能安装到您的 AI Agent(Claude Code、Cursor 等)中,Agent 就能使用您已登录的 Chrome 会话代表您操作网站。
安装技能(也可刷新已有安装)
npx skills add jackwener/opencli
或者仅安装所需项:
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-browser-sitemap
npx skills add jackwener/opencli --skill opencli-sitemap-author
npx skills add jackwener/opencli --skill opencli-usage
| 技能 | 使用场景 | 给 AI Agent 的提示词示例 |
|---|---|---|
| opencli-adapter-author | 为新网站编写可复用适配器,或为已有网站添加命令 | "为抖音热搜编写适配器" / "编写一个从此页面抓取热门帖子的命令" |
| opencli-autofix | 修复损坏的适配器(当内置命令失败时) | "opencli zhihu hot 返回空——请修复" |
| opencli-browser | 临时操控实际 Chrome 页面——导航、填表、点击、提取 | "请帮我查看我的小红书通知" / "请帮我填写此表单" / "使用浏览器命令抓取此页面" |
| opencli-browser-sitemap | 在执行浏览器任务时利用站点站点地图上下文 | "使用站点地图在此网站导航,避免盲目点击" |
| opencli-sitemap-author | 为浏览器 Agent 创建或更新站点地图知识 | "记录您刚才为此站点发现的稳定工作流程" |
| opencli-usage | 快速查阅所有 OpenCLI 命令和站点 | "OpenCLI 对 Twitter 有哪些命令?" |
安装 opencli-browser 后,您的 AI Agent 可以:
- 导航到使用您已登录浏览器的任意 URL
- 读取页面内容(通过结构化 DOM 快照,而非截图)
- 交互——点击按钮、填写表单、选择选项、按键
- 提取页面数据或拦截网络 API 响应
- 等待元素、文本或页面切换
Agent 会在内部处理所有 opencli browser 命令——您只需用自然语言描述想完成的事情。
技能参考:
可用的浏览器命令包括 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 和 close。
opencli browser 命令需要在 browser 后紧跟一个 <session> 位置参数。opencli browser work open <url> 和 opencli browser work tab new [url] 均返回目标 ID。使用 opencli browser work tab list 检查目标 ID,然后通过 --tab <targetId> 将命令路由到特定标签页。tab new 会创建新标签页而不更改默认浏览器目标;只有 tab select <targetId> 会将所选标签页提升为会话中后续未指定目标命令的默认目标。
当您需要的网站尚未覆盖时,可使用 opencli-adapter-author 技能端到端完成:
- 侦察网站并选择模式(SPA / SSR / JSONP / Token / Streaming)。
- 发现正确端点——网络检查、初始状态、打包文件搜索、令牌追踪或拦截器回退。
- 选择认证方式——
PUBLIC/COOKIE/INTERCEPT/UI/LOCAL。 - 解码响应字段并设计输出列。
opencli browser recon analyze <url>→opencli browser recon init <site>/<name>→ 编写适配器 →opencli browser recon verify <site>/<name>。- 站点知识持久化到
~/.opencli/sites/<site>/,因此同一站点的下一个适配器可从已有上下文开始。
| 环境变量 | 默认值 | 描述 |
|---|---|---|
OPENCLI_PROFILE |
— | 当连接多个 Chrome 配置文件时,要使用的浏览器桥接配置文件别名/contextId |
OPENCLI_WINDOW |
命令默认值 | 设置为 foreground 或 background 以覆盖浏览器桥接的窗口放置。带浏览器后端的命令也接受 --window <foreground|background>。 |
OPENCLI_BROWSER_CONNECT_TIMEOUT |
45 |
等待浏览器连接的秒数 |
OPENCLI_BROWSER_COMMAND_TIMEOUT |
60 |
等待单个浏览器命令的秒数 |
OPENCLI_CDP_ENDPOINT |
— | 用于远程浏览器或 Electron 应用的 Chrome DevTools Protocol 端点 |
OPENCLI_CDP_TARGET |
— | 按 URL 子字符串过滤 CDP 目标(例如 detail.1688.com) |
OPENCLI_VERBOSE |
false |
启用详细日志(-v 标志同样生效) |
DEBUG_SNAPSHOT |
— | 设为 1 以输出 DOM 快照调试信息 |
opencli browser * 需要一个显式的 <session> 位置参数,默认使用前台浏览器窗口,并保持该会话的标签页租约,直到执行 opencli browser <session> close 或空闲清理。带浏览器后端的适配器默认使用后台适配器窗口,并默认释放一次性标签页租约。交互式适配器可声明 siteSession: 'persistent' 以保持稳定的站点标签页以实现连续性;传递 --site-session ephemeral 可使用一次性标签页。
| 站点 | 命令 |
|---|---|
| xiaohongshu | search ask note comments feed user download publish follow unfollow notifications creator-notes creator-notes-summary creator-note-detail creator-profile creator-stats |
| bilibili | hot search history feed ranking download comments dynamic favorite following follow unfollow me subtitle summary video user-videos |
| zhihu | hot search question download follow like favorite comment answer |
| hackernews | top new best ask show jobs search user |
| hltv | search player-summary player-matches player-form player-map-pool player-vs-team player-teammate-impact player-duel match-map match-series team-matches team-map-pool event-matches |
| geogebra | eval add-point add-line add-circle add-polygon triangle hexagon list info |
connect inbox job-detail jobs-preferences post-analytics posts profile-experience profile-projects profile-read profile-analytics safe-send search services-read sent-invitations thread-snapshot timeline salesnav-search salesnav-inbox salesnav-message salesnav-thread |
|
hot frontpage popular search subreddit read user user-posts user-comments upvote upvoted save saved comment subscribe |
|
trending search timeline tweets lists list-tweets list-create list-delete list-add list-add-batch list-remove list-remove-batch bookmarks post download profile article like likes notifications reply reply-dm thread follow unfollow followers following block unblock bookmark unbookmark delete hide-reply accept |
|
| claude | ask send new status read history detail |
| gemini | new ask image deep-research deep-research-result |
| notebooklm | status list open current get history summary note-list notes-get source-list source-get source-fulltext source-guide |
| amazon | bestsellers search product offer discussion movers-shakers new-releases rankings |
| upwork | search feed detail |
| slock | message-send message-read message-search channel-list channel-info channel-create channel-members channel-join task-list task-create task-claim task-status task-convert task-delete thread-list thread-follow attachment-upload attachment-download bookmark-add inbox dm-list server-list server-use whoami |
| huodongxing | events |
精选高亮 — → 查看全部 100+ 个支持的站点和命令(douyin / weibo / spotify / 1688 / quark / nowcoder / google-scholar / hupu / xianyu / weread / weread-official / xiaoyuzhou / Chess.com / 以及更多)。
统一传递您已有的命令行工具。对以下任意工具运行 opencli <tool> ...:
gh · docker · vercel · wrangler · obsidian · longbridge · lark-cli · ntn(notion) · dws(DingTalk Workspace) · wecom-cli(企业微信) · tg(tg-cli) · discord(discord-cli) · wx(wx-cli)
用 opencli external register <name> 注册您自己的工具;用 `opencli exte
English / 原文
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.
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-browserskill 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 viaopencli browserprimitives. - Write new adapters end-to-end with
opencli browser+ theopencli-adapter-authorskill, which guides from first recon through field decoding, code, andopencli 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, Trae CN, Codex, Antigravity, ChatGPT, and Trae SOLO.
For desktop use, start with OpenCLIApp. It bundles the OpenCLI runtime, keeps the managed opencli command installed, and gives you a system tray UI for setup, diagnostics, updates, browser-login keepalive, and Web → Markdown.
Option A — OpenCLIApp (recommended for macOS / Windows): Download the latest app from https://opencli.info/download, install it, then open the app once and use the System page to install or repair the opencli command.
Option B — npm global install (CLI-only / CI / servers): OpenCLI requires Node.js >= 20 when installed through npm.
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:
- Download the latest
opencli-extension-v{version}.zipfrom the GitHub Releases page. - Unzip it, open
chrome://extensions, and enable Developer mode. - Click Load unpacked and select the unzipped folder.
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 main 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
Use OpenCLI directly when you want a reliable command instead of a live browser session:
opencli listshows every registered command.opencli <site> <command>runs a built-in or generated adapter.opencli external register mycliexposes a local CLI through the same discovery surface.opencli doctorhelps diagnose browser connectivity.
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.
| Need | Recommended path |
|---|---|
| Keep personal website commands in your own Git repo | opencli plugin create + opencli plugin install file://... |
| Quickly draft a private local adapter | opencli browser init <site>/<command> in ~/.opencli/clis/ |
| Modify an official adapter locally | opencli adapter eject <site> + opencli adapter reset <site> |
| Publish or install third-party commands | opencli plugin install github:user/repo |
| Wrap an existing local binary | opencli external register <name> |
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-browser-sitemap
npx skills add jackwener/opencli --skill opencli-sitemap-author
npx skills add jackwener/opencli --skill opencli-usage
| Skill | When to use | Example prompt to your AI agent |
|---|---|---|
| opencli-adapter-author | Write 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-autofix | Repair a broken adapter when a built-in command fails | "opencli zhihu hot is returning empty — fix it" |
| opencli-browser | Drive 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-browser-sitemap | Consume site sitemap context while driving a browser task | "Use the sitemap to navigate this website without blind clicking" |
| opencli-sitemap-author | Create or update site sitemap knowledge for browser agents | "Record the stable workflow you just discovered for this site" |
| opencli-usage | Quick reference for all OpenCLI commands and sites | "What commands does OpenCLI have for Twitter?" |
Once opencli-browser is installed, your AI agent can:
- Navigate to any URL using your logged-in browser
- Read page content via structured DOM snapshots (not screenshots)
- Interact — click buttons, fill forms, select options, press keys
- Extract data from the page or intercept network API responses
- 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.
When the site you need is not yet covered, use the opencli-adapter-author skill end-to-end:
- Recon the site and pick a pattern (SPA / SSR / JSONP / Token / Streaming).
- Discover the right endpoint — network inspection, initial state, bundle search, token trace, or interceptor fallback.
- Pick auth —
PUBLIC/COOKIE/INTERCEPT/UI/LOCAL. - Decode response fields and design output columns.
opencli browser recon analyze <url>→opencli browser recon init <site>/<name>→ write adapter →opencli browser recon verify <site>/<name>.- Site knowledge persists to
~/.opencli/sites/<site>/so the next adapter for the same site starts from context.
| Variable | Default | Description |
|---|---|---|
OPENCLI_PROFILE |
— | Browser Bridge profile alias/contextId to use when multiple Chrome profiles are connected |
OPENCLI_WINDOW |
command default | Set to foreground or background to override Browser Bridge window placement. Browser-backed commands also accept `--window <foreground |
OPENCLI_BROWSER_CONNECT_TIMEOUT |
45 |
Seconds to wait for browser connection |
OPENCLI_BROWSER_COMMAND_TIMEOUT |
60 |
Seconds to wait for a single browser command |
OPENCLI_CDP_ENDPOINT |
— | Chrome DevTools Protocol endpoint for remote browser or Electron apps |
OPENCLI_CDP_TARGET |
— | Filter CDP targets by URL substring (e.g. detail.1688.com) |
OPENCLI_VERBOSE |
false |
Enable verbose logging (-v flag also works) |
DEBUG_SNAPSHOT |
— | Set 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.
| Site | Commands |
|---|---|
| xiaohongshu | search ask note comments feed user download publish follow unfollow notifications creator-notes creator-notes-summary creator-note-detail creator-profile creator-stats |
| bilibili | hot search history feed ranking download comments dynamic favorite following follow unfollow me subtitle summary video user-videos |
| zhihu | hot search question download follow like favorite comment answer |
| hackernews | top new best ask show jobs search user |
| hltv | search player-summary player-matches player-form player-map-pool player-vs-team player-teammate-impact player-duel match-map match-series team-matches team-map-pool event-matches |
| geogebra | eval add-point add-line add-circle add-polygon triangle hexagon list info |
connect inbox job-detail jobs-preferences post-analytics posts profile-experience profile-projects profile-read profile-analytics safe-send search services-read sent-invitations thread-snapshot timeline salesnav-search salesnav-inbox salesnav-message salesnav-thread |
|
hot frontpage popular search subreddit read user user-posts user-comments upvote upvoted save saved comment subscribe |
|
trending search timeline tweets lists list-tweets list-create list-delete list-add list-add-batch list-remove list-remove-batch bookmarks post download profile article like likes notifications reply reply-dm thread follow unfollow followers following block unblock bookmark unbookmark delete hide-reply accept |
|
| claude | ask send new status read history detail |
| gemini | new ask image deep-research deep-research-result |
| notebooklm | status list open current get history summary note-list notes-get source-list source-get source-fulltext source-guide |
| amazon | bestsellers search product offer discussion movers-shakers new-releases rankings |
| upwork | search feed detail |
| slock | message-send message-read message-search channel-list channel-info channel-create channel-members channel-join task-list task-create task-claim task-status task-convert task-delete thread-list thread-follow attachment-upload attachment-download bookmark-add inbox dm-list server-list server-use whoami |
| huodongxing | events |
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).
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 / Trae CN / Codex / Antigravity / ChatGPT App / ChatWise / Qoder / Discord / Doubao / Trae SOLO — see docs/adapters/desktop/.
OpenCLI supports downloading images, videos, and articles from supported platforms.
| Platform | Content Types | Notes |
|---|---|---|
| xiaohongshu | Images, Videos | Downloads all media from a note |
| rednote | Images, Videos | Downloads all media from a signed rednote note URL |
| bilibili | Videos | Requires yt-dlp installed |
| Images, Videos | From user media tab or single tweet | |
| douban | Images | Poster / still image lists |
| pixiv | Images | Original-quality illustrations, multi-page |
| 1688 | Images, Videos | Downloads page-visible product media from item pages |
| xiaoyuzhou | Audio, Transcript | Downloads episode audio and transcript JSON/text with local credentials |
| zhihu | Articles (Markdown) | Exports with optional image download |
| weixin | Articles (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.
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
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 reference: docs/guide/exit-codes.md.
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
See Plugins Guide for creating your own plugin.
See TESTING.md for how to run and write tests.
- "Extension not connected" — Ensure the Browser Bridge extension is installed from the Chrome Web Store and enabled in
chrome://extensions. - "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 / missing
fetch/ startup crash on old Node — OpenCLI requires Node.js >= 20. Runnode --version, upgrade Node if needed, then retry. - Daemon issues — Check status:
curl localhost:19825/status· View logs:curl localhost:19825/logs