Skip to content
Agentmart
Submit a tool

chr-cdp-clean-launch

在 macOS 上从 Hermes/terminal 干净启动 Chrome CDP,避免被 benign ERROR 日志与重复实例误导。

Skill by Undermybelt

IndexedMIT★ 10
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/undermybelt-chr-cdp-clean-launch

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

在 macOS 上从 Hermes/terminal 干净启动 Chrome CDP,避免被 benign ERROR 日志与重复实例误导。

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/chr-cdp-clean-launch

What's inside

Skill name
chr-cdp-clean-launch
Description
在 macOS 上从 Hermes/terminal 干净启动 Chrome CDP,避免被 benign ERROR 日志与重复实例误导。
License
MIT
Instructions
118 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Chrome CDP 干净启动

用于:需要在 macOS 上起 `Google Chrome --remote-debugging-port=PORT`,但 Hermes 背景进程被 Chrome 的噪音日志刷屏,或端口/实例冲突。

## 结论先行

1. 起长驻 Chrome 时,用 `terminal(background=true)`;不要在前台命令里自己加 `&`。
2. 不要给 Chrome 进程挂 `watch_patterns: ["ERROR"]`。Chrome 常年会输出 benign 噪音:
   - `ssl_client_socket_impl.cc ... net_error -100`
   - `Crashpad/settings.dat: No such file or directory`
   这会导致 Hermes 持续系统通知,污染会话。
3. 启动前先杀旧的同端口/旧 profile 实例,否则常见:`bind() failed: Address already in use (48)`。
4. 若日志已出现 `DevTools listening on ws://...`,则 CDP 基本已活;即使 `curl http://127.0.0.1:PORT/json/version` 一时为空,也别先被后台 `ERROR` 误导。优先检查是否绑在 IPv6 `::1`。

## 推荐流程

### 1) 先清旧实例

```bash
pkill -f '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --remote-debugging-port=19825' || true
pkill -f '/tmp/bb-browser-profile' || true
pkill -f '~/.bb-browser/browser/user-data' || true
mkdir -p /tmp/bb-browser-clean
```

按实际 port/profile 改。

### 2) 背景启动,禁用大部分后台噪音源

```bash
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' \
  --remote-debugging-port=19825 \
  --user-data-dir=/tmp/bb-browser-clean \
  --no-first-run \
  --no-default-browser-check \
  --disable-background-networking \
  --disable-background-timer-throttling \
  --disable-breakpad \
  --disable-component-update \
  --disable-domain-reliability \
  --disable-features=AutofillServerCommunication,CertificateTransparencyComponentUpdater,OptimizationHints,MediaRouter,Translate,ChromeWhatsNewUI \
  --disable-sync \
  --metrics-recording-only \
  --no-pings \
  --password-store=basic \
  about:blank
```

在 Hermes 里应用:
- `terminal(background=true, ...)`
- `watch_patterns` 最多只挂 `"DevTools listening on"`
- 不挂 `"ERROR"`

### 3) 验证

优先顺序:

1. `process(action="poll")` 看日志里是否已有 `DevTools listening on ws://...`
2. 再试:
   - `curl -s http://127.0.0.1:19825/json/version`
   - 若空,再试 IPv6:`curl -g -s 'http://[::1]:19825/json/version'`
3. 再看进程:

```bash
ps -ef | grep -i '[G]oogle Chrome.*19825'
```

## 常见误判

### 1. `ssl_client_socket_impl.cc ... net_error -100`

多为 Chrome 后台联网/证书握手失败。通常不影响你眼前的网页调试,也不代表 CDP 挂了。

### 2. `Crashpad/settings.dat: No such file or directory`

多为 Google 组件/Crashpad 上报目录缺失。属噪音,不是主流程致命错。

### 3. `bind() failed: Address already in use (48)`

端口已被旧实例占用。先杀旧实例;若不想清理,换新端口。

### 4. Hermes 一直弹系统消息

通常是你给 Chrome 后台进程挂了 `watch_patterns: ["ERROR"]`。直接 kill 该 background process,重起时删掉此 watch。

## 最小排障决策

- 看到 `DevTools listening`:先继续,不要因噪音停手。
- 没看到 `DevTools listening` 且端口空:杀旧实例,重起。
- 已活但通知泛滥:kill 背景 watcher,静默重起。

## 适用场景

- Hermes 里准备接真实 Chrome/CDP
- bb-browser / 自建 Chrome remote-debugging 启动混线
- 会话被 Chrome `ERROR` 噪音淹没时

## 重要分流:不要误开洁净 profile

若用户明确要“当前正在用的 Chrome / 已登录账号 / 现有指纹”,本技能只能用于排障与验证,不能直接默认起 `--user-data-dir=/tmp/...` 的洁净实例。

先判定目标是否为用户真 profile:

1. 查 `~/Library/Application Support/Google/Chrome/Default/Preferences`
   - `profile.name` 可确认本地 profile 名
   - `account_info[0].full_name` / `email` 可确认已登录账号
2. 查 `~/Library/Application Support/Google/Chrome/Local State`
   - `devtools.remote_debugging.user-enabled` 可确认是否已允许 remote debugging
3. 若目标是现有登录态:
   - 优先接管该 `Default` profile 对应的现有 Chrome
   - 不要先开 `/tmp/bb-browser-clean` 一类新 profile
   - 若必须重启 Chrome 才能挂 CDP,应先向用户确认会影响当前窗口/会话

经验结论:
- 用户说“我只有一个 Chrome,登录了某账号”时,默认目标是 `~/Library/Application Support/Google/Chrome/Default`
- 误开洁净 profile 会直接偏离真实登录态,即便 CDP 技术上可用,也不满足任务目标

From Undermybelt/hermes-skills, MIT.

More from Undermybelt/hermes-skills

Signals

Stars
10
Forks
2
Open issues
0
Last commit (this folder)
Jun 7, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Undermybelt

Cite this page

chr-cdp-clean-launch skill. Agent Mart. https://agentmart.dev/skills/undermybelt-chr-cdp-clean-launch (last updated 2026-10-24)