mcpField
L
letswork

letswork

本地服务
github.com/saicharanrajoju开发工具019 周前更新

关于 letswork

letswork 是面向结对开发者的 MCP 服务,让两人通过 Claude Code 协作编辑同一项目。它结合文件锁和主机审批队列,并通过 Cloudflare 隧道建立连接。

主要功能

  1. 01两人共享同一代码库
  2. 02文件锁定与释放
  3. 03访客修改需主机审批
  4. 04文件与会话状态工具
  5. 05Cloudflare HTTPS 隧道

适用场景

  1. 01远程共同修改项目文本文件
  2. 02主机审阅并决定访客提交
  3. 03查看活动用户和文件锁

MCP 相关

为 Claude Code 提供用于文件操作、锁定和审批的 MCP 工具。访客通过 stdio 代理连接主机上的 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"saicharanrajoju-letswork": {
"command": "uvx",
"args": [
"letswork"
]
}
}
}
启动命令uvx letswork

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiletswork3.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

LetsWork

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

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


工作原理

  1. 主持人在项目文件夹中运行 letswork start
  2. Cloudflare 会自动创建安全的 HTTPS 隧道
  3. 系统会生成一次性 URL 和访客令牌,并将其打印出来
  4. 主持人将加入命令分享给访客
  5. 访客在自己的设备上运行 letswork join <url> --token <token>
  6. 两位开发者现在都已连接到同一个代码库中的 Claude Code

要求

要求macOSWindows(WSL)
Python 3.10+brew install pythonUbuntu WSL 自带
cloudflaredbrew install cloudflared请参阅下方的 WSL 部分
Claude Codenpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-code(在 WSL 内)
Node.jsbrew install nodesudo 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 位访客)
  • 仅支持文本文件 — 不支持二进制文件
  • 每次读取/写入操作的文件大小上限为 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 构建。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。