Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add yan-labs/yan-skills --skill opencligit clone --depth 1 https://github.com/yan-labs/yan-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/yan-labs/yan-skills/opencli)<a href="https://agentmods.dev/skills/yan-labs/yan-skills/opencli"><img src="https://agentmods.dev/badge/skills/yan-labs/yan-skills/opencli/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/yan-labs/yan-skills/opencli"><img src="https://agentmods.dev/badge/skills/yan-labs/yan-skills/opencli.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 633 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
- medium MCP Rug Pull · line 634 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00140 | $0.14000 |
| Opus 5.5 | $0.00056 | $0.05600 |
| Sonnet 5.5 | $0.00028 | $0.02800 |
| Haiku 4.5 | $0.00014 | $0.01400 |
Grade A, and why
opencli scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
OpenCLI 负责用户真实 Chrome 中的页面操作和数据获取;调研主题先进 `agent-reach`,SEO / 外链决策先进 `rankup` / `backlink`。公开文本先用 `curl` 或公开 API;需要登录态、截图、E2E、填表或浏览器实测时用本 Skill。提交决策归业务 Skill。浏览器只用用户本机已登录的 Chrome;沙箱浏览器(Playwright / agent-browser / headles How it starts
The opening of the file, as written. The whole thing — 603 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OpenCLI
OpenCLI 把任意网站、Electron 桌面应用和外部 CLI 收敛成一条 opencli <site> <command>,
再加一条 opencli browser <session> <command> 用来现场驱动浏览器。
它走的是用户本机那个真实的、已登录的 Chrome(浏览器扩展 + 本地守护进程), 不是无痕实例、不是沙箱。这一个事实决定了本 Skill 里几乎所有规则。
本 Skill 面向的是我们自己维护的 fork(yan-labs/OpenCLI),和上游 jackwener/opencli
有差异,差异清单见 references/our-fork.md。
零、选入口与沉淀
验收入口:scripts/accept.mjs。例如:
node <opencli-skill-dir>/scripts/accept.mjs --url http://localhost:3000/ --url /pricing --widths 1440,390 --height 900 --out /tmp/site-accept
验收三铁律:①只用 OpenCLI 驱动真实 Chrome,不用 Playwright、Firefox/Nightly 或沙箱浏览器;②固定验收做成脚本,只输出摘要,截图落盘;③能力缺口必须明说:新扩展支持真实 console/pageerror 捕获与持续 viewport set/reset,模板探测能力并验证读数;旧扩展 console 空返回不能当无错误,viewport 回退同源 iframe 并记录原因;外域只能检测记录,暂不能阻断。详见 references/browser-driving.md。
OpenCLI 负责用户真实 Chrome 中的页面操作和数据获取;调研主题先进 agent-reach,SEO / 外链决策先进 rankup / backlink。公开文本先用 curl 或公开 API;需要登录态、截图、E2E、填表或浏览器实测时用本 Skill。提交决策归业务 Skill。浏览器只用用户本机已登录的 Chrome;沙箱浏览器(Playwright / agent-browser / headless)在本机不作为选项,含测试自己的站、E2E、截图,只有用户明确点名时才用。
按顺序找:现成项目或 Skill 脚本 → HTTP API → opencli <site> <command> adapter → opencli browser <session> → 确需复用时写 adapter。先用 opencli list、opencli <site> --help 查现有能力;不要重走已经有脚本的链路。配额站先读第三节并运行 scripts/pressure.mjs。
硬规则:跑通即沉淀成脚本,是完成条件,不需要用户督促。 现场驱动浏览器是最贵的操作,同一条链路绝不允许让 agent 手工走第二遍:
- 开浏览器之前先查有没有现成脚本或 adapter:
opencli list/opencli <site> --help、本 Skillscripts/、rankupscripts/(GSC 收录、移除、导出)、backlinkscripts/(Semrush/Similarweb)。有就直接跑;跑不通就修脚本,不许绕开它重新手点。 - 没有现成的,边驱动边记录。满足任一条就必须沉淀:会再做一次、换个参数就要重跑、驱动超过约 5 步、同一串命令手敲了 2 次以上。第一次跑通后当场整理成参数化脚本(
.mjs,调用opencli browser/ batch,用 try/finally 归还会话):SEO 取数归 rankup、外链和竞品归 backlink,各放进那个 Skill 的scripts/;通用站点能力写成 opencli adapter 或放本 Skillscripts/;只属于某个项目的放<project>/.rankup/scripts/。脚本头部写清用途、参数、登录态依赖、已知坑(页面懒加载、行数上限、配额)和验证日期。 - 写完用真实参数跑一次,跑通才算沉淀。
- 交付报告必须有「## 沉淀的脚本」一节:写脚本路径和验证命令;没有可沉淀的,写「无,理由:…」。缺这一节,任务判为未完成,主线程会打回。
- 写脚本可以按全局派单规则交给第三方模型(Codex 等),但「必须沉淀」的责任在当前执行者,不能甩掉。
What ships with it
34 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- evals/evals.json 5.7 KB
- references/adapters.md 13 KB
- references/betalist.md 15 KB
- references/browser-driving.md 21 KB
- references/builtbyindies.md 9.0 KB
- references/data-extraction.md 15 KB
- references/drivers.md 5.8 KB
- references/field-notes.md 29 KB
- references/jev-migration-plan.md 43 KB
- references/launchigniter.md 9.9 KB
- references/model-driven.md 17 KB
- references/our-fork.md 18 KB
- references/session-laws.md 24 KB
- references/troubleshooting.md 14 KB
- scripts/accept.mjs 8.8 KB runs code
- scripts/access-report.mjs 8.4 KB runs code
- scripts/appfigures.mjs 10 KB runs code
- scripts/clash-leak-check.mjs 2.0 KB runs code
- scripts/daemon-restart-safe.mjs 3.4 KB runs code
- scripts/google-region-check.mjs 1.4 KB runs code
- scripts/live-check.mjs 6.0 KB runs code
- scripts/opencli-core.mjs 42 KB runs code
- scripts/orphan-windows.mjs 2.4 KB runs code
- scripts/pressure.mjs 19 KB runs code
- scripts/receiver.mjs 8.4 KB runs code
- scripts/session.sh 2.4 KB runs code
- scripts/x-research.mjs 6.0 KB runs code
- skill.json 241 B
- tests/appfigures.test.mjs 5.1 KB runs code
- tests/degradation.test.mjs 4.2 KB runs code
- tests/entrypoint-guard.test.mjs 1.8 KB runs code
- tests/pressure.test.mjs 12 KB runs code
- tests/quota-sites.test.mjs 7.2 KB runs code
- tests/x-research.test.mjs 1.3 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago Changed · +8 lines 4b3297ad43d6
- 18d ago Changed · +48 lines 7e913c4b63ca
- 20d ago Changed · +8 lines b7469bdb07d7
- 22d ago Changed · -362 lines · -162 tokens per session 76150111cebf
- 23d ago Changed · +13 lines · +12 tokens per session baea1b972e63
- 24d ago Changed · +17 lines 3039c0f698c6
- 26d ago Changed · +47 lines be70544dbf90
- 1mo ago Changed · +8 lines d317093f2fed
- 1mo ago Changed · +105 lines 2033bc2b199e
- 1mo ago First seen · 711 lines · 290 tokens per session scan A ab91a66a344f
opencli is a skill published in the GitHub repository yan-labs/yan-skills (224 stars, last pushed 5d ago), licensed MIT. It adds 140 tokens to every session and 14,000 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dingtalk_channel_connect
Use a headed browser to automatically complete DingTalk channel integration for QwenPaw. Applicable when the user mentions DingTalk, developer console, Client ID, Client Secret, bot, Stream mode, binding or configuring a channel. Supports pausing when a login page is detected and resuming after the user logs in.
browser_cdp
Use this skill when the user explicitly wants to connect to a running Chrome browser, scan local CDP ports, specify a cdpport, or share a single browser across multiple agents/tools. By default browser opens no debugging port; pass an explicit cdpport only when the user wants another local tool to attach.
browser_cdp
Browser connection controls for finding local debugging ports, attaching to an already running Chrome browser, or sharing one browser between tools.
browser_visible
Browser launch controls for choosing whether a Chromium-based browser window is visible, which browser program to run, and which startup options to pass.
browser_visible
Use this skill when the user needs to control the browser launch mode for browser. By default browser is managed by Playwright and opens no debugging port (pass an explicit cdpport to let another local tool attach); headed controls whether the window is visible, and privatemode is kept for backward compatibility and…
skill-body
Call help() or help("page.click") to print signatures and uncommon options of APIs named below; it prints by itself, so do not wrap it in console.log. For installation or connection problems, read references/install.md in the ego-browser Skill directory.