1. Conduid
  2. Developer Tools
  3. io.github.saicharanrajoju/letswork
MCP server · Developer Tools

io.github.saicharanrajoju/letswork

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

Unclaimed devtools
37Low

Scored 6 months ago · breakdown

About io.github.saicharanrajoju/letswork

io.github.saicharanrajoju/letswork is an MCP server published by saicharanrajoju in the Developer Tools category: real-time collaborative coding via MCP — two developers, one codebase.

Recent commit activity is the strongest signal that reported issues will get attention.

Install

uvx
uvx letswork
pip
pip install letswork

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (14)

approve_changeHost only

Parameters not published.

force_unlockHost only

Parameters not published.

get_notificationsBoth

Parameters not published.

get_pending_changesHost only

Parameters not published.

get_statusBoth

Parameters not published.

list_filesBoth

Parameters not published.

lock_fileBoth

Parameters not published.

my_pending_changesGuest only

Parameters not published.

pingBoth

Parameters not published.

read_fileBoth

Parameters not published.

Show all 14 tools
reject_changeHost only

Parameters not published.

set_display_nameGuest only

Parameters not published.

unlock_fileBoth

Parameters not published.

write_fileBoth

Parameters not published.

Ask AI

✦

Ask AI about io.github.saicharanrajoju/letswork

Powered by Claude · Grounded in docs

I know everything about io.github.saicharanrajoju/letswork. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

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

Requirement macOS Windows (WSL)
Python 3.10+ brew install python Comes with Ubuntu WSL
cloudflared brew install cloudflared See WSL section below
Claude Code npm install -g @anthropic-ai/claude-code npm install -g @anthropic-ai/claude-code (inside WSL)
Node.js brew install node sudo 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

brew install cloudflared
pip install letswork

Step 2 — Install Claude Code

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

Step 3 — Start the session

Navigate to your project folder and run:

cd /path/to/your/project
letswork start

You'll 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

brew install cloudflared
pip install letswork

Step 2 — Install Claude Code

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

Step 3 — Join the session

Run the command the host sent you:

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:

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:

# 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

Step 3 — Install Claude Code inside Ubuntu

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

Step 4 — Join the session

Run the command the host sent you, inside Ubuntu:

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:

Tool Who Can Use Description
list_files Both List files and directories with lock status
read_file Both Read file contents (1MB limit, text files only)
write_file Both Submit a file change (guest changes need host approval)
lock_file Both Lock a file for exclusive editing
unlock_file Both Release your own file lock
get_status Both Show session info, connected users, and active locks
get_notifications Both Quick summary of what needs attention
ping Both Verify connection to the host MCP server
set_display_name Guest only Set your display name for the session
my_pending_changes Guest only View your submitted changes awaiting approval
get_pending_changes Host only View all changes awaiting approval with diffs
approve_change Host only Approve a pending change and write it to disk
reject_change Host only Reject a pending change
force_unlock Host only Force-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

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 copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About io.github.saicharanrajoju/letswork

How do I install io.github.saicharanrajoju/letswork?

Run uvx letswork, then add the server to your MCP client's configuration.

Is io.github.saicharanrajoju/letswork safe to use with an AI agent?

Its trust score is 37 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is io.github.saicharanrajoju/letswork still maintained?

Yes — the last commit was 4 months ago. The repository has 0 stars and 0 forks.