Skip to main content
Glama
io.github.saicharanrajoju/letswork

io.github.saicharanrajoju/letswork

LetsWork

通过 Claude Code 进行实时协作编码 — 两名开发者,一个代码库,各自使用自己的 Claude 订阅。

一名开发者主持会话。另一名开发者可从任何地方加入。双方都会获得连接到同一项目的实时 Claude Code 窗口 — 带有文件锁定和审批系统,以防止冲突。


工作原理

  1. 主持人 在其项目文件夹中运行 letswork start

  2. 通过 Cloudflare 自动创建安全的 HTTPS 隧道

  3. 生成并打印一次性 URL + 访客令牌

  4. 主持人将加入命令分享给访客

  5. 访客 在自己的机器上运行 letswork join <url> --token <token>

  6. 现在两位开发者都有了连接到同一个代码库的 Claude Code


Related MCP server: claude-switchboard

环境要求

要求

macOS

Windows (WSL)

Python 3.10+

brew install python

Ubuntu WSL 自带

cloudflared

brew install cloudflared

请参阅下方 WSL 部分

Claude Code

npm install -g @anthropic-ai/claude-code

npm install -g @anthropic-ai/claude-code(在 WSL 内)

Node.js

brew install node

sudo apt install nodejs npm(在 WSL 内)


macOS — 主持人设置

主持人是拥有该项目的开发者。您启动会话并分享加入命令。

第 1 步 — 安装依赖

brew install cloudflared
pip install letswork

第 2 步 — 安装 Claude Code

npm install -g @anthropic-ai/claude-code

第 3 步 — 启动会话

导航到您的项目文件夹并运行:

cd /path/to/your/project
letswork start

系统会要求您输入显示名称,然后会出现一个会话框:

╔══════════════════════════════════════════════════════════════════════╗
║  🤝 LetsWork Session Active                                          ║
║                                                                      ║
║  Send this command to your collaborator:                             ║
║  letswork join https://abc123.trycloudflare.com --token a1b2c3d4    ║
║                                                                      ║
║  Press Ctrl+C to stop.                                               ║
╚══════════════════════════════════════════════════════════════════════╝

复制完整的 letswork join ... 命令并发送给您的协作者。

将自动打开两个新的终端窗口:

  • Claude Code — 已连接到 LetsWork

  • 用于与协作者沟通的聊天窗口

第 4 步 — 批准访客更改

当访客编辑文件时,您会在 Claude Code 中看到通知。请对 Claude 说:

get_pending_changes

然后批准或拒绝:

approve_change <id>
reject_change <id>

第 5 步 — 停止会话

在您运行 letswork start 的终端中按 Ctrl+C。


macOS — 访客设置

访客连接到主持人的项目。您需要主持人提供的加入命令。

第 1 步 — 安装依赖

brew install cloudflared
pip install letswork

第 2 步 — 安装 Claude Code

npm install -g @anthropic-ai/claude-code

第 3 步 — 加入会话

运行主持人发给您的命令:

letswork join https://abc123.trycloudflare.com --token a1b2c3d4

系统会要求您输入显示名称。然后会打开两个窗口:

  • Claude Code — 连接到主持人的项目

  • 用于与主持人沟通的聊天窗口

第 4 步 — 编辑文件

像平常一样让 Claude 读取和编辑文件。当您写入文件时,它会进入审批队列 — 主持人会在文件写入磁盘之前进行审核。当它被批准或拒绝时,您会收到通知。


Windows — 访客设置(WSL)

LetsWork 在 WSL(Windows Subsystem for Linux)内运行。一旦 WSL 设置完成,访客体验与 macOS 相同。

第 1 步 — 启用 WSL 并安装 Ubuntu

打开 PowerShell(以管理员身份) 并运行:

wsl --install

出现提示时重启计算机。Ubuntu 将自动安装。

从开始菜单打开 Ubuntu,并设置您的 Linux 用户名和密码。

第 2 步 — 在 Ubuntu 内安装依赖

打开 Ubuntu,并逐一运行以下命令:

# Update packages
sudo apt update && sudo apt upgrade -y

# Install Python
sudo apt install python3 python3-pip -y

# Install Node.js and npm
sudo apt install nodejs npm -y

# Install cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/

# Install letswork
pip3 install letswork

第 3 步 — 在 Ubuntu 内安装 Claude Code

npm install -g @anthropic-ai/claude-code

第 4 步 — 加入会话

在 Ubuntu 内运行主持人发给您的命令:

letswork join https://abc123.trycloudflare.com --token a1b2c3d4

系统会要求您输入显示名称。Claude Code 将直接在同一个终端窗口中启动。

Windows 用户注意事项: Claude Code 在 WSL 终端中运行 — 而不是作为单独的窗口。其他所有操作都与 macOS 完全相同。


可用的 MCP 工具

主持人和访客都可以在 Claude Code 中使用以下工具:

工具

可用者

说明

list_files

双方

列出文件和目录及其锁定状态

read_file

双方

读取文件内容(限制 1MB,仅限文本文件)

write_file

双方

提交文件更改(访客的更改需要主持人批准)

lock_file

双方

锁定文件以进行独占编辑

unlock_file

双方

释放您自己的文件锁

get_status

双方

显示会话信息、已连接用户和活动锁

get_notifications

双方

快速汇总需要关注的事项

ping

双方

验证与主持人 MCP 服务器的连接

set_display_name

仅访客

设置您在会话中的显示名称

my_pending_changes

仅访客

查看您提交的待批准的更改

get_pending_changes

仅主持人

查看所有待批准的更改及差异

approve_change

仅主持人

批准待批准的更改并将其写入磁盘

reject_change

仅主持人

拒绝待批准的更改

force_unlock

仅主持人

强制释放卡住的文件锁


审批流程

访客的文件写入不会直接写入磁盘 — 而是进入主持人的审批队列:

  1. 访客让 Claude 编辑文件 → write_file 提交更改

  2. 主持人看到:📝 guest submitted change to server.py (ID: a1b2c3)

  3. 主持人让 Claude:get_pending_changes — 查看完整差异

  4. 主持人批准:approve_change a1b2c3 → 文件写入磁盘

  5. 或拒绝:reject_change a1b2c3 → 通知访客


安全性

  • 随机 Cloudflare 子域 — URL 不可猜测

  • 加密令牌 — 在 URL 之上提供第二层身份验证

  • 所有流量均通过 HTTPS 加密

  • 路径遍历防护 — 访客无法访问项目根目录之外的文件

  • 文件锁在 30 分钟后自动过期

  • 无需账户、无需注册、无持久凭证 — 主持人停止时会话即结束


限制

  • 每个会话最多 2 名用户(1 名主持人 + 1 名访客)

  • 仅支持文本文件 — 不支持二进制文件

  • 每次读/写操作的文件大小限制为 1MB

  • 访客没有 shell 访问权限 — 只能进行文件操作

  • cloudflared 必须安装在主持人机器上(访客在 macOS 上不需要,但 WSL 访客需要)


CLI 参考

letswork start [--port PORT] [--debug]   # Start a session (default port: 8000)
letswork join <URL> --token <TOKEN>      # Join a session as guest

架构

Host Machine:
[Project Files] ← [MCP Server :8000] ← [Cloudflare Tunnel] ← HTTPS URL
                                                                    ↑
                                             Guest connects here
                                             via stdio proxy + secret token

访客通过 stdio 代理连接,而不是直接通过 HTTP — 这避免了 Cloudflare SSE 的可靠性问题,并提供稳定的 MCP 连接。


许可证

MIT — 请参阅 LICENSE


使用 Model Context Protocol 构建。

Maintenance

ActivityInactive
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers