Files
mcn-short-video/project/短视频脚本创作/V1.0/subskills/browser-harness/docs/snap-linux-headless.md
T
maogeigei f1f6288b7b refactor(skill): 主技能 subskill 目录更名 subskills(09-02 用户要求)
- V1.0/subskill/ → V1.0/subskills/(browser-harness/mcn-dou-analysis/mcn-script-review/mcn-video-prompt,git 识别 R100 纯重命名保留历史)
- 路径说明同步:V1.0/SKILL.md(96/105行)、Lite1.0/SKILL.md(66行)、mcn-dou-analysis/SKILL.md 红线行、操作规范.md 159/175行、mcn-work-shop app.js SKILL_HINT_ACCOUNT
- 用户环境 ~/.workbuddy/skills/短视频脚本创作/ 与源仓库 V1.0 同 inode(junction),自动同步无需单独改
- mcn-dou-analysis 内部 subskills/nuwa-skill-main 为正常结构不受影响
2026-09-02 10:36:23 +08:00

2.0 KiB
Raw Blame History

Snap Chromium and browser-harness (Linux)

Why Snap browsers break CDP

Ubuntu and several other distributions ship Chromium as a Snap package. Snap runs apps in a confined environment. Chrome’s remote debugging endpoint must bind on the host network where the browser-harness daemon can reach it. Snap’s sandbox and filesystem layout commonly prevent that from working the way a normal .deb Chrome install does, so the harness may see no usable DevTools port even when Chromium appears to run.

Symptoms: browser-harness --doctor shows Chrome running, but the daemon never attaches, or CDP handshake fails without an obvious cause. Issue #191 discusses this class of setup problem.

Install Google Chrome natively (Ubuntu example)

Use Google’s official package (AMD64), not the Snap:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

ARM or other architectures: download the matching package from Google Chrome for Linux.

Point the harness at the native binary

Put the non-Snap binary first in how you resolve “which Chrome,” so a Snap wrapper on PATH is not chosen by mistake.

  • BH_CHROME_PATH — preferred name in this project’s docs and browser-harness --doctor snap probe.
  • CHROME_PATH — honored the same way for compatibility with other tooling.

Example for ~/.bashrc or your environment:

export BH_CHROME_PATH=/usr/bin/google-chrome-stable

Then start Chrome from that path for Way 2 (--remote-debugging-port=…), or use Way 1 with a profile opened from the native install. Connection details are in install.md.

Verify

browser-harness --doctor

If a Snap binary is still the one detected on Linux, doctor prints a [snap-detect] warning. For a concise fix checklist:

browser-harness doctor --fix-snap