Letswork

io.github.saicharanrajoju由 GitHub 帳號 saicharanrajoju 發布v3.0.0更新於 Oct 24, 2026

Real-time collaborative coding via MCP — two developers, one codebase

已驗證STDIO僅桌面開發者工具溝通與協作

概覽

AI 產生的概覽

LetsWork 讓兩位開發者透過 Claude Code 共用同一個專案,並以 Cloudflare 通道提供檔案鎖與主機審核的編輯流程。

可以做什麼
  • 列出並讀取專案檔案,同時顯示檔案鎖定狀態
  • 提交檔案寫入,鎖定與解鎖檔案以獨佔編輯
  • 查看工作階段資訊、連線使用者、作用中的鎖與通知
  • 訪客端:設定顯示名稱並檢視自己待審核的變更
  • 主機端:檢視含差異的待審核變更,核准或拒絕,強制釋放卡住的鎖
適用情境
適合兩位開發者從不同機器結對處理同一個程式碼庫、各自使用自己的 Claude Code,且專案擁有者希望訪客的每次寫入都先經自己審核才寫入磁碟的情況。
執行需求
需在 macOS 或 Windows(WSL)本機安裝:Python 3.10+、letswork 套件、Node.js 與 Claude Code,主機另需 cloudflared。主機啟動工作階段後,把一次性的加入連結與權杖傳給訪客。未宣告需要帳號或 API 金鑰。
安裝前請注意
主機會透過公開的 Cloudflare 通道暴露專案資料夾,持有加入連結與權杖的人即可作為訪客連線。訪客寫入需主機審核,但核准後會寫入磁碟,主機也可強制釋放鎖定。工作階段限兩人、僅支援文字檔、單次操作上限 1MB,訪客沒有 shell 權限。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Letswork,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

LetsWork

Real-time collaborative coding via Claude Code — two developers, one codebase, each using their own Claude subscription.

One developer hosts the session. The other joins from anywhere. Both get a live Claude Code window connected to the same project — with file locking and an approval system to prevent conflicts.


How It Works

  1. Host runs letswork start inside their project folder
  2. A secure HTTPS tunnel is created automatically via Cloudflare
  3. A one-time URL + guest token is generated and printed
  4. Host shares the join command with the guest
  5. Guest runs letswork join <url> --token <token> on their machine
  6. Both developers now have Claude Code connected to the same codebase

Requirements

RequirementmacOSWindows (WSL)
Python 3.10+brew install pythonComes with Ubuntu WSL
cloudflaredbrew install cloudflaredSee WSL section below
Claude Codenpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-code (inside WSL)
Node.jsbrew install nodesudo apt install nodejs npm (inside WSL)

macOS — Host Setup

The host is the developer who owns the project. You start the session and share the join command.

Step 1 — Install dependencies

bash
brew install cloudflaredpip install letswork

Step 2 — Install Claude Code

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

Step 3 — Start the session

Navigate to your project folder and run:

bash
cd /path/to/your/projectletswork start

You will be asked for your display name, then a session box appears:

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

Copy the full letswork join ... command and send it to your collaborator.

Two new terminal windows open automatically:

  • Claude Code — already connected to LetsWork
  • A chat window to communicate with your collaborator

Step 4 — Approve guest changes

When the guest edits a file, you'll see a notification in Claude Code. Ask Claude:

get_pending_changes

Then approve or reject:

approve_change <id>reject_change <id>

Step 5 — Stop the session

Press Ctrl+C in the terminal where you ran letswork start.


macOS — Guest Setup

The guest connects to the host's project. You need the join command from the host.

Step 1 — Install dependencies

bash
brew install cloudflaredpip install letswork

Step 2 — Install Claude Code

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

Step 3 — Join the session

Run the command the host sent you:

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

You'll be asked for your display name. Then two windows open:

  • Claude Code — connected to the host's project
  • A chat window to communicate with the host

Step 4 — Edit files

Ask Claude to read and edit files normally. When you write a file, it goes into an approval queue — the host reviews it before it's written to disk. You'll get a notification when it's approved or rejected.


Windows — Guest Setup (WSL)

LetsWork runs inside WSL (Windows Subsystem for Linux). The guest experience is the same as macOS once WSL is set up.

Step 1 — Enable WSL and install Ubuntu

Open PowerShell as Administrator and run:

powershell
wsl --install

Restart your computer when prompted. Ubuntu will install automatically.

Open Ubuntu from the Start menu and set up your Linux username and password.

Step 2 — Install dependencies inside Ubuntu

Open Ubuntu and run these one by one:

bash
# Update packagessudo apt update && sudo apt upgrade -y
# Install Pythonsudo apt install python3 python3-pip -y
# Install Node.js and npmsudo apt install nodejs npm -y
# Install cloudflaredcurl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflaredchmod +x cloudflaredsudo mv cloudflared /usr/local/bin/
# Install letsworkpip3 install letswork

Step 3 — Install Claude Code inside Ubuntu

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

Step 4 — Join the session

Run the command the host sent you, inside Ubuntu:

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

You'll be asked for your display name. Claude Code launches directly in the same terminal window.

Note for Windows users: Claude Code runs in the WSL terminal — not as a separate window. Everything else works identically to macOS.


MCP Tools Available

Both host and guest have access to these tools inside Claude Code:

ToolWho Can UseDescription
list_filesBothList files and directories with lock status
read_fileBothRead file contents (1MB limit, text files only)
write_fileBothSubmit a file change (guest changes need host approval)
lock_fileBothLock a file for exclusive editing
unlock_fileBothRelease your own file lock
get_statusBothShow session info, connected users, and active locks
get_notificationsBothQuick summary of what needs attention
pingBothVerify connection to the host MCP server
set_display_nameGuest onlySet your display name for the session
my_pending_changesGuest onlyView your submitted changes awaiting approval
get_pending_changesHost onlyView all changes awaiting approval with diffs
approve_changeHost onlyApprove a pending change and write it to disk
reject_changeHost onlyReject a pending change
force_unlockHost onlyForce-release a stuck file lock

Approval Flow

Guest file writes do not go directly to disk — they go through the host's approval queue:

  1. Guest asks Claude to edit a file → write_file submits the change
  2. Host sees: 📝 guest submitted change to server.py (ID: a1b2c3)
  3. Host asks Claude: get_pending_changes — sees a full diff
  4. Host approves: approve_change a1b2c3 → file is written to disk
  5. Or rejects: reject_change a1b2c3 → guest is notified

Security

  • Random Cloudflare subdomain — URL is unguessable
  • Cryptographic token — second auth layer on top of the URL
  • All traffic encrypted via HTTPS
  • Path traversal prevention — guest cannot access files outside the project root
  • File locks auto-expire after 30 minutes
  • No accounts, no signup, no persistent credentials — session ends when host stops

Constraints

  • Maximum 2 users per session (Host + 1 Guest)
  • Text files only — binary files not supported
  • 1MB file size limit per read/write operation
  • Guest has no shell access — file operations only
  • cloudflared must be installed on the host machine (guest does not need it on macOS, but WSL guests do)

CLI Reference

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

Architecture

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

The guest connects through a stdio proxy rather than directly over HTTP — this avoids Cloudflare SSE reliability issues and gives stable MCP connectivity.


License

MIT — see LICENSE


Built with the Model Context Protocol.

來源:README.md,提交 2361029

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v3.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分