Skip to main content
Glama
saicharanrajoju

io.github.saicharanrajoju/letswork

LetsWork

Совместное программирование в реальном времени через Claude Code — два разработчика, одна кодовая база, каждый со своей подпиской Claude.

Один разработчик выступает хостом сессии. Другой подключается откуда угодно. Оба получают окно Claude Code в реальном времени, подключенное к одному и тому же проекту — с блокировкой файлов и системой одобрения для предотвращения конфликтов.


Как это работает

  1. Хост запускает letswork start в своей папке проекта

  2. Безопасный HTTPS-туннель автоматически создается через Cloudflare

  3. Генерируются и выводятся одноразовый URL и гостевой токен

  4. Хост отправляет гостю команду подключения

  5. Гость запускает letswork join <url> --token <token> на своей машине

  6. Теперь у обоих разработчиков Claude Code подключен к одной и той же кодовой базе


Related MCP server: pairwave

Требования

Требование

macOS

Windows (WSL)

Python 3.10+

brew install python

Поставляется с Ubuntu WSL

cloudflared

brew install cloudflared

См. раздел о WSL ниже

Claude Code

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

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

Node.js

brew install node

sudo 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 — Завершение сессии

Нажмите Ctrl+C в терминале, где вы запускали letswork start.


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 для 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 — Установка Claude Code в Ubuntu

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

Оба

Читает содержимое файла (лимит 1 МБ, только текстовые файлы)

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 гость)

  • Только текстовые файлы — бинарные файлы не поддерживаются

  • Ограничение размера файла 1 МБ на операцию чтения/записи

  • У гостя нет доступа к командной оболочке — только операции с файлами

  • 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.

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