Skip to main content
Glama
saicharanrajoju

io.github.saicharanrajoju/letswork

LetsWork

Programación colaborativa en tiempo real mediante Claude Code — dos desarrolladores, un solo código base, cada uno con su propia suscripción de Claude.

Un desarrollador aloja la sesión. El otro se une desde cualquier lugar. Ambos obtienen una ventana en directo de Claude Code conectada al mismo proyecto, con bloqueo de archivos y un sistema de aprobación para evitar conflictos.


Cómo funciona

  1. El anfitrión ejecuta letswork start dentro de su carpeta de proyecto

  2. Se crea automáticamente un túnel HTTPS seguro a través de Cloudflare

  3. Se genera e imprime una URL de un solo uso + token de invitado

  4. El anfitrión comparte el comando join con el invitado

  5. El invitado ejecuta letswork join <url> --token <token> en su máquina

  6. Ambos desarrolladores tienen ahora Claude Code conectado al mismo código base


Related MCP server: pairwave

Requisitos

Requisito

macOS

Windows (WSL)

Python 3.10+

brew install python

Viene con Ubuntu WSL

cloudflared

brew install cloudflared

Consulta la sección de WSL más abajo

Claude Code

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

npm install -g @anthropic-ai/claude-code (dentro de WSL)

Node.js

brew install node

sudo apt install nodejs npm (dentro de WSL)


macOS — Configuración del anfitrión

El anfitrión es el desarrollador propietario del proyecto. Tú inicias la sesión y compartes el comando join.

Paso 1 — Instalar dependencias

brew install cloudflared
pip install letswork

Paso 2 — Instalar Claude Code

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

Paso 3 — Iniciar la sesión

Navega hasta la carpeta de tu proyecto y ejecuta:

cd /path/to/your/project
letswork start

Se te pedirá tu nombre para mostrar y, a continuación, aparecerá un cuadro de sesión:

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

Copia el comando completo letswork join ... y envíalo a tu colaborador.

Se abren automáticamente dos ventanas de terminal nuevas:

  • Claude Code — ya conectado a LetsWork

  • Una ventana de chat para comunicarte con tu colaborador

Paso 4 — Aprobar cambios del invitado

Cuando el invitado edite un archivo, verás una notificación en Claude Code. Pídele a Claude:

get_pending_changes

Luego aprueba o rechaza:

approve_change <id>
reject_change <id>

Paso 5 — Detener la sesión

Pulsa Ctrl+C en la terminal donde ejecutaste letswork start.


macOS — Configuración del invitado

El invitado se conecta al proyecto del anfitrión. Necesitas el comando join del anfitrión.

Paso 1 — Instalar dependencias

brew install cloudflared
pip install letswork

Paso 2 — Instalar Claude Code

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

Paso 3 — Unirse a la sesión

Ejecuta el comando que te envió el anfitrión:

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

Se te pedirá tu nombre para mostrar. Luego se abren dos ventanas:

  • Claude Code — conectado al proyecto del anfitrión

  • Una ventana de chat para comunicarte con el anfitrión

Paso 4 — Editar archivos

Pídele a Claude que lea y edite archivos con normalidad. Cuando escribas un archivo, este pasa a una cola de aprobación: el anfitrión lo revisa antes de que se escriba en el disco. Recibirás una notificación cuando sea aprobado o rechazado.


Windows — Configuración del invitado (WSL)

LetsWork se ejecuta dentro de WSL (Windows Subsystem for Linux). La experiencia del invitado es la misma que en macOS una vez que WSL está configurado.

Paso 1 — Habilitar WSL e instalar Ubuntu

Abre PowerShell como Administrador y ejecuta:

wsl --install

Reinicia el equipo cuando se te indique. Ubuntu se instalará automáticamente.

Abre Ubuntu desde el menú Inicio y configura tu nombre de usuario y contraseña de Linux.

Paso 2 — Instalar dependencias dentro de Ubuntu

Abre Ubuntu y ejecuta estos comandos uno por uno:

# 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

Paso 3 — Instalar Claude Code dentro de Ubuntu

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

Paso 4 — Unirse a la sesión

Ejecuta dentro de Ubuntu el comando que te envió el anfitrión:

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

Se te pedirá tu nombre para mostrar. Claude Code se abre directamente en la misma ventana de terminal.

Nota para usuarios de Windows: Claude Code se ejecuta en la terminal de WSL — no en una ventana separada. Todo lo demás funciona igual que en macOS.


Herramientas MCP disponibles

Tanto el anfitrión como el invitado tienen acceso a estas herramientas dentro de Claude Code:

Herramienta

Quién puede usarla

Descripción

list_files

Ambos

Lista archivos y directorios con el estado de bloqueo

read_file

Ambos

Lee el contenido de archivos (límite de 1MB, solo archivos de texto)

write_file

Ambos

Envía un cambio de archivo (los cambios del invitado requieren aprobación del anfitrión)

lock_file

Ambos

Bloquea un archivo para edición exclusiva

unlock_file

Ambos

Libera tu propio bloqueo de archivo

get_status

Ambos

Muestra la información de la sesión, los usuarios conectados y los bloqueos activos

get_notifications

Ambos

Resumen rápido de lo que requiere atención

ping

Ambos

Verifica la conexión con el servidor MCP del anfitrión

set_display_name

Solo invitado

Establece tu nombre para mostrar en la sesión

my_pending_changes

Solo invitado

Consulta tus cambios enviados pendientes de aprobación

get_pending_changes

Solo anfitrión

Consulta todos los cambios pendientes de aprobación con sus diferencias

approve_change

Solo anfitrión

Aprueba un cambio pendiente y lo escribe en el disco

reject_change

Solo anfitrión

Rechaza un cambio pendiente

force_unlock

Solo anfitrión

Fuerza la liberación de un bloqueo de archivo atascado


Flujo de aprobación

Las escrituras de archivos del invitado no van directamente al disco, sino que pasan por la cola de aprobación del anfitrión:

  1. El invitado le pide a Claude que edite un archivo → write_file envía el cambio

  2. El anfitrión ve: 📝 guest submitted change to server.py (ID: a1b2c3)

  3. El anfitrión le pide a Claude: get_pending_changes — ve un diff completo

  4. El anfitrión aprueba: approve_change a1b2c3 → el archivo se escribe en el disco

  5. O lo rechaza: reject_change a1b2c3 → el invitado recibe una notificación


Seguridad

  • Subdominio aleatorio de Cloudflare: la URL es imposible de adivinar

  • Token criptográfico: segunda capa de autenticación además de la URL

  • Todo el tráfico está cifrado mediante HTTPS

  • Prevención de path traversal: el invitado no puede acceder a archivos fuera de la raíz del proyecto

  • Los bloqueos de archivo caducan automáticamente a los 30 minutos

  • Sin cuentas, sin registro, sin credenciales persistentes: la sesión termina cuando el anfitrión la detiene


Restricciones

  • Máximo 2 usuarios por sesión (Anfitrión + 1 Invitado)

  • Solo archivos de texto: no se admiten archivos binarios

  • Límite de tamaño de archivo de 1MB por operación de lectura/escritura

  • El invitado no tiene acceso a la shell: solo operaciones de archivo

  • cloudflared debe estar instalado en la máquina del anfitrión (el invitado no lo necesita en macOS, pero los invitados de WSL sí)


Referencia de CLI

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

Arquitectura

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

El invitado se conecta a través de un proxy stdio en lugar de hacerlo directamente por HTTP; esto evita los problemas de fiabilidad de Cloudflare SSE y proporciona una conectividad MCP estable.


Licencia

MIT — consulta LICENSE


Construido con el Model Context Protocol.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/saicharanrajoju/letswork-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server