opencli skillA
opencli is agent-read markdown (skill) from yan-labs/yan-skills: 用 OpenCLI 驱动用户本机那个真实的、已登录的 Chrome,或调用它的 160+ 站点 adapter。任何需要登录态的页面操作都从这里开始——读登录后的后台、抓没有 API 的表格、填表提交、跑一个站点命令、把页面数据取回来。也覆盖会话命名与租约纪律("我的标签页被别人抢了")、批量取数与落盘、adapter 的编写与自修复、opencli doctor 排障。用户提到 opencli、浏览器自动化、用我的浏览器、驱动 Chrome、登录态、抓后台数据、抓表格、导出报表、填表、自动点击、截图、adapter、doctor 报错、session 撞名、标签页被抢、tab 泄漏,或说"打开这个页面看看""帮我登录后台查一下""这个站没有 API"时,务必使用本 Skill。也在需要判断"这件事该不该开浏览器"时使用——本 Skill 第零节就是那张判断表(要不要登录态、有没有现成脚本或 adapter、配额站能不能动手、什么时候该转给 agent-reach 或业务 Skill)。只要动作会落在浏览器上,先读这里再动手。.
Indexed from public GitHub and served as immutable, content-addressed versions. Install it pinned to an exact SHA-256 with the mdr CLI, and every file is verified against the hash recorded here before it reaches your agent. The deterministic audit below grades the latest version, and the same file always earns the same grade.
What the file says
# OpenCLI OpenCLI 把任意网站、Electron 桌面应用和外部 CLI 收敛成一条 `opencli <site> <command>`, 再加一条 `opencli browser <session> <command>` 用来现场驱动浏览器。 它走的是**用户本机那个真实的、已登录的 Chrome**(浏览器扩展 + 本地守护进程), 不是无痕实例、不是沙箱。这一个事实决定了本 Skill 里几乎所有规则。 本 Skill 面向的是我们自己维护的 fork(`yan-labs/OpenCLI`),和上游 `jackwener/opencli` 有差异,差异清单见 [`references/our-fork.md`](references/our-fork.md)。 --- ## 零、我遇到这种情况,该不该用 OpenCLI 本 Skill 是**底层能力**,不是业务流程。用户不会说「用 OpenCLI」,他会说下面左边那些话。 这张表回答的是「这句话该不该落到浏览器上」——**判错方向的代价是拿到看起来正常、 内容却不同的数据**,比慢一轮贵得多。 | 用户大概会这么说 | 该走哪条 | 为什么 | |---|---|---| | 「帮我登录后台查一下」「看我的 GSC / 数据面板」 | **用**(`opencli browser`) | 需要身份。沙箱浏览器要么跳登录页,要么以匿名身份返回**更少的字段、更低的配额** | | 「这个站没有 API,把表格给我」 | **用**,但先看第四节有没有 adapter | adapter 里封装过的坑,现场驱动要重踩一遍 | | 「填一下这个表单」「帮我提交」 | **用**,但提交动作归业务 Skill 管 | 本 Skill 只负责把浏览器开对;能不能按提交见 `backlink` 的三道闸 | | 「打开这个页面看看写了什么」(公开页) | **先不用** | 先问有没有 `curl` / 公开 API。只为读一段公开文本开浏览器是浪费 | | 「帮我调研一下 X」「搜搜大家怎么说」 | **不用** → `agent-reach` | 它已经做好多平台路由。本 Skill 不做「找信息」,只做「把数据取回来」 | | 「查这个词的搜索量 / 难度」「看看竞品外链」 | **不用直接开浏览器** → 先进 `rankup` / `backlink` | 那两个 Skill 里已经有现成脚本,直接跑;现写等价实现是本阶梯第 1 级明令禁止的 | …
Read the whole file at its exact version.
How to install
mdr add yan-labs/yan-skills/opencli@v1.5.0mdr add yan-labs/yan-skills/opencli@sha256:d317093f2fed41aaPin to a label to follow the author's releases, or to a sha256 to freeze the exact bytes forever. Either way the resolved hash is written to mdr.lock, and mdr install reproduces it on any machine.
[](https://markdownregistry.com/a/art_f2hlunsefajlhezp)
1 badge views in 30 days
Versions
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| v1.5.0 latest | 2026-09-21 | ff9c824 | 60,265 B | A | view · diff |
| v1.5.0 | 2026-09-14 | c1b9832 | 59,339 B | A | view · diff |
| v1.4.0 | 2026-09-13 | b3800cd | 58,964 B | A | view · diff |
| v1.4.0 | 2026-09-12 | cc47c93 | 48,775 B | A | view · diff |
| v1.4.0 | 2026-09-12 | 4e7c2ea | 47,673 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (60265 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
yan-labs/yan-skills · 203 stars · license MIT · pushed 2026-09-23 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_f2hlunsefajlhezp GET https://markdownregistry.com/api/v1/resolve?ref=yan-labs/yan-skills/opencli GET https://markdownregistry.com/api/v1/blob/d317093f2fed41aa9216e11832c8f8939e0d8ef0475ddd792fe4ec6caf347137
Your agent does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
More from yan-labs/yan-skills
Every file in yan-labs/yan-skills