browser-cdp SKILL.md skillB
browser-cdp from zenstory-ai/oh-story-claudecode is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add zenstory-ai/oh-story-claudecode/browser-cdp@git:20261018.f63b71fPins git:20261018.f63b71f in mdr.lock. Pin the fingerprint instead.
- Audit grade
- B, 16 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- zenstory-ai/oh-story-claudecode
- Path
skills/browser-cdp/SKILL.md- Versions recorded
- 7
- Latest version
- git:20261018.f63b71f, committed Oct 18, 2026
- First version recorded
- Jun 23, 2026
- Size
- 8,083 bytes
- Repository stars
- 7,898
- License
- MIT
Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions. Covers: launching Chrome in debug mode, opening URLs, waiting for page load, evaluating JavaScript, taking snapshots, and extracting auth tokens. Trigger phrases: browser automation, CDP, agent-browser, 浏览器操作, 操作浏览器, Chrome CDP, 复用登录态, extract token from browser.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Browser CDP 操作工具
通过 CDP(Chrome DevTools Protocol)连接 Chrome,复用登录态并执行浏览器操作。
## 前置条件
- macOS / Linux / Windows(实验性),已安装并使用过 Google Chrome,来源 profile 已存在
- Node.js 20+
- `agent-browser` 已安装:`npm install -g agent-browser`
> 启动或重建时,若需结束 Chrome 进程,先按下方流程征得同意;未保存的标签页或草稿可能丢失。
---
## 启动流程(每次都按这个顺序)
下文 `{SKILL_DIR}` 指本 skill(browser-cdp)的目录。
**第一步:探测当前状态(无副作用)**
```bash
node {SKILL_DIR}/scripts/setup-cdp-chrome.js 9222 --detect-only
```
输出形如:
```
CDP_STATUS=ready # 已就绪,可直接复用
CDP_URL=http://127.0.0.1:9222/json/version
BROWSER=Chrome/148.0.7778.168
```
或:
```
CDP_STATUS=needs-setup
CHROME_RUNNING=yes # 用户有 Chrome 在跑,启动会杀掉
CHROME_PID_COUNT=3
```
**第二步:根据探测结果分支**
- `CDP_STATUS=needs-setup` 且 `CHROME_INSTALLED=no` → 本机没找到 Chrome,告诉用户先安装并用它登录一次需要的网站,不要运行 setup。
- `CDP_STATUS=ready` 且本次只需连接 → 直接使用 `agent-browser --cdp 9222 ...`,**不要运行 setup**。
- 明确请求 `--reset` / `--profile` → 即使 ready 也走重建,按下方「需要结束 Chrome 时」处理。
- `CDP_STATUS=needs-setup` 且 `CHROME_RUNNING=no` → 安全启动:
```bash
node {SKILL_DIR}/scripts/setup-cdp-chrome.js 9222 --yes
```
- `CDP_STATUS=needs-setup` 且 `CHROME_RUNNING=yes` → 按下方「需要结束 Chrome 时」处理。
…Read the whole file at its exact version.
How to install
mdr add zenstory-ai/oh-story-claudecode/browser-cdp@sha256:04ed954c82023beaThe line at the top of this page pins the label git:20261018.f63b71f, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_dvuv6dg34s2xgbdv)
5 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 7 versions of this file, between Jun 23, 2026 and Oct 18, 2026, about one every 19 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261018.f63b71f latest | 2026-10-18 | f63b71f | 8,083 B | B | view · diff |
| git:20261015.31557e9 | 2026-10-15 | 31557e9 | 6,871 B | B | view · diff |
| git:20260824.a78f75a | 2026-08-24 | a78f75a | 6,962 B | B | view · diff |
| git:20260806.a4fe555 | 2026-08-06 | a4fe555 | 6,964 B | B | view · diff |
| git:20260716.45c25bf | 2026-07-16 | 45c25bf | 6,303 B | B | view · diff |
| git:20260626.8d08e23 | 2026-06-26 | 8d08e23 | 6,303 B | B | view · diff |
| git:20260623.ea2a9bc | 2026-06-23 | ea2a9bc | 6,314 B | B | view |
Audit of the latest version
- fail: No link to a raw IP address (matched: http://127.0.0.1:9222)
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (8083 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 script tag
Starting a new one? Use a template for SKILL.md on mdpantry, which passes every one of these checks and says what to change in it.
Source
zenstory-ai/oh-story-claudecode · 7,898 stars · license MIT · pushed 2026-10-18 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_dvuv6dg34s2xgbdv GET https://markdownregistry.com/api/v1/resolve?ref=zenstory-ai/oh-story-claudecode/browser-cdp GET https://markdownregistry.com/api/v1/blob/04ed954c82023beac3a0115e2afb97f99960c8afe26730bdca0a088f45a6f7cd
Your AI assistant 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.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.
More from zenstory-ai/oh-story-claudecode
Every file in zenstory-ai/oh-story-claudecode