Skip to main content
Glama
saicharanrajoju

io.github.saicharanrajoju/letswork

LetsWork

Claude Codeによるリアルタイム共同コーディング — 2人の開発者が、それぞれ自分のClaudeサブスクリプションを使って、1つのコードベースを共有します。

1人の開発者がセッションをホストします。もう1人はどこからでも参加できます。両者ともに、同じプロジェクトに接続されたライブなClaude Codeウィンドウを利用できます — ファイルロックと承認システムにより、競合を防ぎます。


仕組み

  1. ホストがプロジェクトフォルダ内でletswork startを実行します

  2. Cloudflare経由で安全なHTTPSトンネルが自動的に作成されます

  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 ...コマンドをコピーして、コラボレーターに送信してください。

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

両方

ファイルの内容を読み取る (1MB制限、テキストファイルのみ)

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に加えて第2の認証レイヤー

  • すべてのトラフィックはHTTPSで暗号化

  • パストラバーサル防止 — ゲストはプロジェクトルート外のファイルにアクセスできません

  • ファイルロックは30分後に自動的に期限切れ

  • アカウント不要、サインアップ不要、永続的な認証情報なし — ホストが停止するとセッションは終了


制約

  • セッションあたり最大2ユーザー (ホスト + ゲスト1名)

  • テキストファイルのみ — バイナリファイルは非対応

  • 読み取り/書き込み1回あたりのファイルサイズ制限は1MB

  • ゲストにシェルアクセスはありません — ファイル操作のみ

  • 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で構築されています。

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