
Letswork
io.github.saicharanrajojuPublished by GitHub account saicharanrajojuv3.0.0Updated Oct 24, 2026
Real-time collaborative coding via MCP — two developers, one codebase
Overview
LetsWork lets two developers share one project through Claude Code, with file locking and host-approved edits over a Cloudflare tunnel.
- What you can do
- List and read project files, with lock status shown
- Submit file writes, lock and unlock files for exclusive editing
- Check session status, connected users, active locks and notifications
- Guest side: set a display name and review your own pending changes
- Host side: review pending changes with diffs, approve or reject them, force-release stuck locks
- When to use it
- Use it when two developers want to pair on the same codebase from different machines, each with their own Claude Code setup, and the project owner wants to review every guest write before it lands on disk.
- Requirements
- Local install on macOS or Windows via WSL: Python 3.10+, the letswork package, Node.js and Claude Code, and cloudflared on the host machine. The host starts a session and shares a one-time join URL plus token with the guest. No accounts or API keys are declared.
Installation
In SourceWeft
- Open Letswork in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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
- Host runs
letswork startinside their project folder - A secure HTTPS tunnel is created automatically via Cloudflare
- A one-time URL + guest token is generated and printed
- Host shares the join command with the guest
- Guest runs
letswork join <url> --token <token>on their machine - Both developers now have Claude Code connected to the same codebase
Requirements
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
Step 2 — Install Claude Code
Step 3 — Start the session
Navigate to your project folder and run:
You will be asked for your display name, then a session box appears:
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:
Then approve or reject:
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
Step 2 — Install Claude Code
Step 3 — Join the session
Run the command the host sent you:
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:
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:
Step 3 — Install Claude Code inside Ubuntu
Step 4 — Join the session
Run the command the host sent you, inside Ubuntu:
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:
Approval Flow
Guest file writes do not go directly to disk — they go through the host's approval queue:
- Guest asks Claude to edit a file →
write_filesubmits the change - Host sees:
📝 guest submitted change to server.py (ID: a1b2c3) - Host asks Claude:
get_pending_changes— sees a full diff - Host approves:
approve_change a1b2c3→ file is written to disk - 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
cloudflaredmust be installed on the host machine (guest does not need it on macOS, but WSL guests do)
CLI Reference
Architecture
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.
Source: README.md at commit 2361029
Tools
0Version history
1- v3.0.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts