克劳德密码的多编剧
使用独立的Chrome浏览器运行多个Claude Code会话。每个项目都有自己的Chrome实例和正确的Google帐户。
问题
- 多个Claude Code会话争夺同一个Chrome
- 不同的项目需要不同的谷歌账户(工作账户与个人账户)
- 会话会覆盖彼此的Cookie和标签页
解决方案
Directory you launch Claude from → determines Chrome profile| 目录 | 个人资料 | Chrome浏览器 | 帐户 |
|---|---|---|---|
~/projects/work-* | 工作 | 端口9223 | user@company.com |
~/projects/personal-* | 个人 | 端口9224 | me@gmail.com |
~/projects/dev-* | dev | 端口9225 | (干净的浏览器) |
同一项目中的多个会话 分享 Chrome通过CDP(Chrome DevTools协议)。
快速开始
1.创建配置
cp projects.example projects.conf编辑 projects.conf:
work | user@company.com | ~/projects/work-* ~/projects/client-*
personal | me@gmail.com | ~/ ~/projects/blog ~/projects/hobby
dev | clean | ~/projects/dev-* ~/projects/experiments格式: name | google_account | directories (空间分隔,支撑 * 地球仪)
2.运行安装程序
./setup.sh这将:
- 生成
~/.claude/chrome-profiles.json(配置文件注册表) - 安装
~/.claude/scripts/playwright-project.sh(发射器) - 在Claude Code中为每个目录注册剧作家MCP
- 创建Chrome数据目录(
~/.chrome-pw-*)
3.重新启动克劳德代码
cd ~/projects/work-app && claude每个配置文件的首次启动:在打开的Chrome窗口中登录谷歌。您的登录将在会话之间持续。
添加新配置文件
# Create profile + bind directories
./scripts/add-profile.sh myproject user@example.com ~/projects/myproject
# Or bind a directory to an existing profile
cd ~/projects/new-repo
./scripts/bind-directory.sh work运作原理
claude (from ~/projects/work-app)
↓
~/.claude.json has: playwright → playwright-project.sh work
↓
playwright-project.sh reads chrome-profiles.json
↓
work → port 9223, ~/.chrome-pw-work
↓
Port 9223 free?
├─ Yes → Launch new Chrome on port 9223
└─ No → Connect to existing Chrome via CDP
↓
Playwright MCP connected多个会话,同一个项目
当您为同一项目打开第二个Claude Code会话时,启动器检测到Chrome已在该端口上运行,并通过CDP连接。两个会话共享同一个Chrome浏览器——它们可以看到彼此的标签页。
未注册的目录
如果你从一个不在你的目录中的目录启动Claude Code projects.conf,它使用 默认配置文件 (第一个列出)。您始终可以稍后绑定它:
cd ~/some-new-project
~/.claude/scripts/bind-directory.sh work
# restart claudeCLAUDE.md代理说明
将此添加到您的项目 CLAUDE.md 因此AI代理知道浏览器配置文件系统:
## Browser Profile
This session uses the Playwright MCP with a project-specific Chrome profile.
The Chrome profile is determined by the directory Claude Code was launched from.
- You CANNOT switch Chrome profiles within a session
- To use a different profile: exit this session, cd to the right directory, start claude again
- Available profiles are in ~/.claude/chrome-profiles.json
- To bind this directory to a different profile: ~/.claude/scripts/bind-directory.sh
文件结构
~/.claude/
├── chrome-profiles.json # Profile registry (name → port + dir)
├── scripts/
│ └── playwright-project.sh # Smart launcher (picks Chrome by project)
└── .claude.json # MCP registrations live here (NOT settings.json)
~/.chrome-pw-work/ # Chrome data for "work" profile
~/.chrome-pw-personal/ # Chrome data for "personal" profile
~/.chrome-pw-dev/ # Chrome data for "dev" profile重要提示
MCP注册已完成 .claude.json,不 settings.json
Claude Code从读取MCP服务器配置 ~/.claude.json (状态文件), 不 从 settings.json.使用 claude mcp add 注册服务器——它会写入正确的位置。
# Register for current directory (local scope)
claude mcp add -s local playwright -- ~/.claude/scripts/playwright-project.sh work
# Register global default (user scope)
claude mcp add -s user playwright -- ~/.claude/scripts/playwright-project.sh永远不要用pkill杀死Chrome
# BAD — kills the MCP process too
pkill -f "chrome-playwright"
# GOOD — close Chrome normally or let the session end更改需要完全重新启动
更改MCP配置后,完全重新启动Claude Code(/exit 然后 claude).这 /mcp 单独使用命令不会重新加载配置。
故障排除
启动时“1 MCP服务器失败”
- 启动器脚本未为此目录注册
- 修复: `cd /path/to/project && claude mcp add -s local playwright -- ~/.claude/scripts/playwright-project.sh
`
打开错误的Chrome配置文件
- 检查:
claude mcp get playwright--显示配置了哪些启动器参数 - 配置陈旧
.claude.json可以覆盖-清除它:
jq '.projects["/path/to/dir"].mcpServers = {}' ~/.claude.json > /tmp/cj.tmp && mv /tmp/cj.tmp ~/.claude.json然后重新注册 claude mcp add
Chrome已运行/端口已锁定
- 另一个会话正在使用此Chrome。启动器应通过CDP自动连接。
- 如果卡住:关闭该项目的所有Claude Code会话,然后重试。
许可证
麻省理工学院
