letswork について
letsworkは、2人の開発者がClaude Codeで同じプロジェクトを共同編集するためのMCPサーバーです。ファイルロックとホストによるゲスト編集の承認を備え、Cloudflareトンネルで接続します。
主な機能
- 012人でのコードベース共有
- 02ファイルのロックと解除
- 03ゲスト編集のホスト承認
- 04ファイルとセッション状態のツール
- 05Cloudflare HTTPSトンネル
活用シーン
- 01離れた場所からテキストファイルを共同編集
- 02ゲストの変更を確認して承認
- 03接続ユーザーとファイルロックの確認
MCP 対応
Claude Codeにファイル操作、ロック、承認用のMCPツールを提供します。ゲストはstdioプロキシ経由でホスト上のMCPサーバーに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LetsWork
Claude Code によるリアルタイムの共同コーディング — 2 人の開発者が 1 つのコードベースを使い、それぞれが自分の Claude サブスクリプションを利用します。
1 人の開発者がセッションをホストし、もう 1 人はどこからでも参加できます。両者とも、ファイルロックと承認システムで競合を防ぎながら、同じプロジェクトに接続された Claude Code のライブウィンドウを利用できます。
仕組み
- ホストがプロジェクトフォルダー内で
letswork startを実行します - Cloudflare 経由でセキュアな HTTPS トンネルが自動的に作成されます
- 1 回限りの URL とゲストトークンが生成され、表示されます
- ホストが参加コマンドをゲストに共有します
- ゲストが自分のマシンで
letswork join <url> --token <token>を実行します - これで両方の開発者が同じコードベースに接続された Claude Code を利用できます
要件
| 要件 | 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 ... コマンド全体をコピーして、共同作業者に送信します。
新しいターミナルウィンドウが 2 つ自動的に開きます。
- Claude Code — LetsWork に接続済み
- 共同作業者と連絡を取るためのチャットウィンドウ
ステップ 4 — ゲストの変更を承認する
ゲストがファイルを編集すると、Claude Code に通知が表示されます。Claude に次のように尋ねます。
get_pending_changes
その後、承認または拒否します。
approve_change <id>
reject_change <id>
ステップ 5 — セッションを停止する
letswork start を実行したターミナルで Ctrl+C を押します。
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
表示名を尋ねられます。その後、ウィンドウが 2 つ開きます。
- Claude Code — ホストのプロジェクトに接続済み
- ホストと連絡を取るためのチャットウィンドウ
ステップ 4 — ファイルを編集する
Claude に通常どおりファイルの読み取りや編集を依頼します。ファイルを書き込むと、承認キューに入ります。ホストが確認してからディスクに書き込まれます。承認または拒否されると通知が届きます。
Windows — ゲストのセットアップ(WSL)
LetsWork は WSL(Windows Subsystem for Linux)内で動作します。WSL のセットアップ後のゲストの使用方法は macOS と同じです。
ステップ 1 — WSL を有効にして Ubuntu をインストールする
管理者として PowerShell を開き、次を実行します。
wsl --install
再起動を求められたら、コンピューターを再起動します。Ubuntu が自動的にインストールされます。
スタートメニューから Ubuntu を開き、Linux のユーザー名とパスワードを設定します。
ステップ 2 — Ubuntu 内に依存関係をインストールする
Ubuntu を開き、次のコマンドを 1 つずつ実行します。
# 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 — Ubuntu 内に Claude Code をインストールする
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 MB の上限、テキストファイルのみ) |
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 | ホストのみ | 解除されなくなったファイルロックを強制的に解除します |
承認フロー
ゲストによるファイルへの書き込みは、直接ディスクに反映されず、ホストの承認キューを経由します。
- ゲストが Claude にファイルの編集を依頼 →
write_fileが変更を送信します - ホストに表示されます:
📝 guest submitted change to server.py (ID: a1b2c3) - ホストが Claude に
get_pending_changesを依頼 → 全差分を確認します - ホストが承認します:
approve_change a1b2c3→ ファイルがディスクに書き込まれます - または却下します:
reject_change a1b2c3→ ゲストに通知されます
セキュリティ
- ランダムな Cloudflare サブドメイン — URL は推測できません
- 暗号化トークン — URL に加えた 2 つ目の認証レイヤー
- すべての通信は HTTPS で暗号化されます
- パストラバーサルを防止 — ゲストはプロジェクトのルート外にあるファイルにアクセスできません
- ファイルロックは 30 分後に自動的に期限切れになります
- アカウント、サインアップ、永続的な認証情報は不要 — ホストの停止時にセッションが終了します
制約
- セッションあたり最大 2 ユーザー(ホスト + ゲスト 1 人)
- テキストファイルのみ — バイナリファイルには対応していません
- 読み取り/書き込み操作ごとのファイルサイズ上限は 1 MB です
- ゲストにシェルアクセス権はありません — ファイル操作のみ可能です
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
ゲストは HTTP で直接接続するのではなく、stdio プロキシ経由で接続します。これにより、Cloudflare SSE の信頼性の問題を回避し、安定した MCP 接続を実現します。
ライセンス
MIT — LICENSE を参照してください
Model Context Protocol を使用して構築されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。