内容
# 开源代码-windows-chrome
本地 Windows 辅助工具和 OpenCode 技能,用于通过环回 CDP 显式请求访问可见的 Chrome 实例。这是一个基于复制的集成,而不是 npm 包,并且不需要管理员访问权限。
## 先决条件
| 组件 | 要求 |
| --- | --- |
| 操作系统 | Windows 10 或 Windows 11 |
| OpenCode | 当前的 OpenCode 安装 |
| OMO | 最低和推荐:oh-my-openagent v4.11.0+,带有技能 MCP 生命周期修复 |
| Chrome | Chrome 136 或更高版本 |
| Node.js | Node.js 18 或更高版本,包括 npm/npx |
| Shell | Windows PowerShell 5.1 或更高版本 |
官方参考:[Chrome 远程调试](https://developer.chrome.com/docs/devtools/remote-debugging/)、[Node.js](https://nodejs.org/) 和 [PowerShell](https://learn.microsoft.com/powershell/)。
## 架构和安全
`Start-WindowsChrome.ps1` 使用专用配置文件 `%LOCALAPPDATA%\opencode-windows-chrome\profile` 启动 Chrome,并仅将 CDP 绑定到 `127.0.0.1:9222`。`Test-WindowsChrome.ps1` 仅查询 CDP 版本端点,不显示 WebSocket 令牌。`Show-WindowsChrome.ps1` 在验证环回 Chrome 监听器后,仅进行尽力而为的焦点请求。
同级 `mcp.json` 是 OMO Skill-Embedded MCP 支持,而不是原生 OpenCode 技能行为。它固定 `@playwright/mcp@0.0.78`;npx -y 可以在 MCP 启动时下载该固定包及其运行时传递依赖项。
专用配置文件是必需的。不要将此集成与 Chrome 的默认配置文件一起使用。CDP 控制它所服务的配置文件,因此请保持环回访问,并避免在专用配置文件中放置机密。参见 [SECURITY.md](SECURITY.md)。
## 安装、更新和卸载
从此存储库的检出中,使用安装程序复制完整的技能目录。它会准备和验证替换,在失败时保留以前的技能,并且不会修改任何 OpenCode 配置文件。
```powershell
# 全局:%USERPROFILE%\.config\opencode\skills\windows-chrome
.\scripts\Install-WindowsChromeSkill.ps1 -Scope Global
# 项目:<project>\.opencode\skills\windows-chrome
.\scripts\Install-WindowsChromeSkill.ps1 -Scope Project -ProjectRoot C:\src\my-project
```
要更新,请从较新的检出运行相同的复制命令。在安装或更新后,请重启 OpenCode,以便它重新加载技能/MCP 生命周期。要卸载,只需从选定的全局或项目技能目标中删除已安装的 `windows-chrome` 目录。不需要管理员访问权限。
如果找不到 `npx`,请确保 Node.js 在 `PATH` 中;手动启动时,请使用 Node 提供的 `npx.cmd`。MCP 文件故意配置为使用 `npx`,以便 OpenCode 控制通常的 MCP 生命周期。
## 启动、状态和焦点
```powershell
# 启动专用配置文件实例,或仅重用已验证的监听器。
.\scripts\Start-WindowsChrome.ps1
# 仅查询 CDP 版本端点。
.\scripts\Test-WindowsChrome.ps1
# 尽力恢复/聚焦已验证的 Chrome 监听器所有者。
.\scripts\Show-WindowsChrome.ps1
```
所有 v1 辅助工具都固定到端口 `9222`,与已安装的 MCP 端点匹配。非 9222 端口仅用于诊断或启动浏览器,除非用户手动适配其存储库副本,否则已安装的 `mcp.json` 将不会连接;因此,v1 拒绝它。带有副作用的辅助工具支持 `-WhatIf`,拒绝未经验证的监听器,并且永远不会终止 Chrome。
## 使用技能
使用诸如“使用现有的可见 Windows Chrome 会话打开一个新选项卡”或“通过 CDP 端口 9222 连接并检查我标识的页面”之类的提示。`windows-chrome` 技能仅针对显式的 Windows Chrome/CDP 请求选择。普通的或模糊的浏览器请求仍保留在默认的 OMO Playwright 路由中;如果其端点不可用,此技能不会回落到它。
## 故障排除和发布检查清单
- 首先运行 `Test-WindowsChrome.ps1`。健康的运行结果会在环回版本端点处标识 `Chrome/`,而不会显示 WebSocket 令牌。
- 如果 OpenCode 报告管理器已处置错误,请完全重启 OpenCode 并使用 OMO v4.11.0+。
- 对于本地 Windows 发布烟雾测试,请使用 `-WhatIf` 运行安装,启动专用配置文件,运行状态,请求焦点,然后确认未使用默认 Chrome 配置文件。请勿针对用户浏览数据运行此测试。
- CI 验证静态合约和 Windows 上的 Pester,但不启动 Chrome。
- 发布源代码版本之前,请参见 [docs/troubleshooting.md](docs/troubleshooting.md)。
### 发布检查清单
1. 运行 `python tests/static_validate.py` 和 Windows Pester 套件。
2. 验证已安装的 MCP 仍固定为 `@playwright/mcp@0.0.78` 和环回端口 9222。
3. 使用专用配置文件完成上述本地 Windows 烟雾测试。
4. 确认 CI 未启动浏览器或上传浏览器/配置文件工件。
5. 验证并更新不可变操作提交 SHA,仅针对官方操作存储库,如 [SECURITY.md](SECURITY.md) 中所述。
6. 验证 CI 从官方 Gallery URL 下载 Pester 5.5.0,并检查其记录的大小、SHA-256 和官方 Gallery OData SHA-512 元数据,然后导入。
## 兼容性
| 场景 | 状态 |
| --- | --- |
| Windows 10/11 上的专用 Chrome 配置文件 | 支持 |
| 默认 Chrome 配置文件 | 不支持 |
| 端口 9222 上的环回 CDP | 支持 |
| LAN 或远程 CDP 端点 | 不支持 |
| 自动 Chrome 安装或端口选择 | 不支持 |