toss について
tossは、デバイス間でファイルをP2P転送するアプリで、AIアシスタント向けのMCPインターフェースも備えています。ペアリング後、画面、コマンドライン、MCPから送信でき、転送はエンドツーエンド暗号化されます。
主な機能
- 01デバイス間のP2P転送
- 02エンドツーエンド暗号化
- 03画面とコマンドラインで操作
- 04MCP経由のファイル送受信
- 05機密ファイル送信時の確認
- 06リレーのセルフホストに対応
活用シーン
- 01個人所有デバイス間のファイル移動
- 02友人のデバイスへのファイル送信
- 03AIアシスタントからペアリング済みデバイスへ送信
- 04スマートフォンのブラウザーでファイル転送
MCP 対応
`toss mcp`は、ペアリング済みデバイスの一覧表示、ファイル送信、最近受信したファイルの確認ツールをAIアシスタントに提供します。送信権限はtossが管理し、ユーザー確認を求める場合があります。ペアリングとデバイス管理はユーザーが行います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細

toss
自分のデバイスや友人のデバイスに、ピアツーピアでファイルを送信できます。IP アドレスの入力も、アカウントの作成も不要で、ファイルがサーバーに保存されることもありません。
短いコードで一度ペアリングすれば、どのネットワークからでも名前を指定してファイルを送れます。toss を実行してウィンドウを開き、ファイルをドラッグしてドロップ(または Toss をクリック)し、デバイスを選びます。ウィンドウを閉じても、toss はトレイで受信を続けます。トレイアイコンを右クリックすると、ログイン時に toss を起動したり、Claude Code で使ったり、Windows ではエクスプローラーの 送る メニューに追加したりできます。(GNOME ではトレイを使うために AppIndicator 拡張機能が必要です。)
コマンドラインからも同じことができます。
toss invite laptop # prints a code like 48213-otter-violin
toss join 48213-otter-violin desktop # on the other device
toss send laptop report.pdf photos/ # files and folders
toss listen # receive (keep it running)
ほかに toss contacts、toss forget <name>、toss phone、toss relay も使えます。連絡先を自動承認するには、a(常に)と回答してください。
アプリ不要のスマートフォン
Phone をクリックするか(または toss phone [file]... を実行して)、QR コードをスキャンします。スマートフォンのブラウザーで、コンピューターが配信するページが開きます。このページから、共有するファイルをダウンロードしたり、ファイルをコンピューターのダウンロードフォルダーに送信したりできます。
- 同じネットワーク上でのみ利用でき、暗号化されていません。自宅のコンピューターで作成できる証明書をブラウザーが信頼しないため、通常の HTTP を使います。1 回限りのシークレットでリンクを保護し、ページを離れるとリンクは無効になります。また、最初に開いたブラウザーだけがアクセスできます。自宅で使用し、公共の Wi-Fi では使用しないでください。
- 初回は、Windows ファイアウォールで toss の通信を許可してください。iPhone では、ダウンロードしたファイルは「ファイル」›「ダウンロード」に保存されます。
AI アシスタント(MCP)
toss mcp を使うと、Claude のようなアシスタントに「今作ったグラフをノート PC に送って」と頼んで、ファイルをデバイスに送信できます。ペアリング済みデバイスの一覧表示や、デバイスへのファイル送信、スマートフォンへのファイル送信(「これをスマートフォンに入れて」と頼むと、toss のウィンドウにスキャン用の QR コードが表示されます)、最近受信したファイルの確認(「スマートフォンから送った写真を開いて」と頼めます。この機能のため、toss はフォルダー内にある直近 50 件の受信ファイル名を保持します)ができます。それ以外の操作はできません。ペアリング、デバイスの削除、設定はあなた自身が管理します。また、ファイルを受け取る側が、あなたのデバイスからのファイルを確認なしで受け取る設定にしていない限り、転送ごとに相手が承認します。アシスタントが送信した内容は toss のウィンドウに表示されます。
アシスタントが読み取る内容によって、その動作が左右されることがあります。そのため、toss ではアシスタントではなく、送信するファイルをあなたが管理できます。指定したフォルダー内のファイルはすぐに送信されます。それ以外のファイルや、指定フォルダー内にあってもシークレット(鍵、.env、パスワードデータベースなど)に見えるファイルについては、toss があなた自身に確認します。確認は、アシスタントやアプリがあなたに代わって回答できない専用ウィンドウで行うか、画面のないコンピューターではアシスタントのアプリを通じて行います。確認画面には、ファイルの実際の場所と送信されるデータ量が表示されます。次回から確認しないにチェックを入れると、そのフォルダーは以後確認なしで送信されます。トレイには許可したフォルダーが一覧表示され、クリックすると許可が取り消されます。デバイスキーが保存されている toss 自身のフォルダーは、決して送信されません。toss はファイルの内容ではなくファイル名でシークレットを判別するため、許可したフォルダーにはそれ以外のシークレットを入れないでください。5 種類のオープンモデルを使ったプロンプトインジェクションへの耐性評価(プロジェクトフォルダーを許可した状態で、224 回のインジェクション試行のうち情報漏えいはありませんでしたが、一部のモデルはほとんどの試行でインジェクションに従いました):evals/injection。
Claude Code:Windows にインストールすると、toss は自分自身を登録し(トレイメニューの Claude Code で使う)、送信のたびに確認します。手動で設定する場合:claude mcp add toss -- toss mcp ~/projects。Claude Desktop: Releases から toss.mcpb をダウンロードして開き、フォルダーを選びます。ほかのアシスタント(Cursor など)では、MCP 設定に追加します。
{ "mcpServers": { "toss": { "command": "toss", "args": ["mcp", "/path/to/projects"] } } }
アシスタントが対応している場合、送信はタスクとして実行されるため、相手の承認待ちがタイムアウトしません。ファイルの転送中は進行状況が表示され、キャンセルした送信は次回再開されます。toss は MCP レジストリ(MCP Registry)に io.github.plamen-g/toss として登録されています。
プライバシー
転送はエンドツーエンドで暗号化されます(TLS 1.3 を使用した QUIC と、耐量子 X25519 + ML-KEM-768 の鍵交換)。受信デバイスだけがファイルを読み取れます。ファイル名さえ読み取れません。他者に見えるのは、転送しているという事実です。
| 相手 | 見える情報 |
|---|---|
| もう一方のデバイス | あなたの IP アドレス |
| toss がデバイス接続に通常使用する無料サーバーを運営する n0 | あなたの IP アドレスとデバイス ID、接続するデバイスと接続時刻、リレー経由のデータ量 |
| インターネットプロバイダーまたは Wi-Fi | 暗号化された通信とそのサイズ |
| Wi-Fi 通信を傍受する人(スマートフォンのページの場合) | ファイル。そのページは暗号化されていません |
| toss がアップデートを確認する GitHub(起動時とその後は 1 日に 1 回) | あなたの IP アドレスと toss のバージョン |
見える情報を減らすには、次の方法があります。
- 独自のリレーを実行する(下記)。そうすれば toss が n0 に接続することはありません。リレーがない場合、同じ Wi-Fi 上のデバイス同士でも、相手を見つけるために n0 を使用します。
- 削除したデバイスにも、あなたのデバイス ID は残ります。そのため、あなたがオンラインであることを確認できます。新しい ID を使うには、toss の設定フォルダーにある
keyファイルを削除してから、もう一度ペアリングしてください。 - ペアリングコードはチケットのように機能します。最初に使用した人がペアリングされ、間違ったコードを入力するとコードは無効になります。声で伝えるか、信頼できるチャネルを使って、意図した相手にだけコードを渡してください。
- macOS と Linux では受信ファイルにダウンロード済みのマークが付かないため、ウィンドウには「開く」ではなく「フォルダーに表示」が表示されます。
インストール
セキュリティに関する確認なしで最も手早くインストールするには、Windows の PowerShell または Mac のターミナルに 1 行貼り付けます。これはこのリポジトリから最新リリースをダウンロードしてインストールするため、このリポジトリを信頼できる場合にのみ実行してください。
irm https://raw.githubusercontent.com/plamen-g/toss/master/install.ps1 | iex
curl -fsSL https://raw.githubusercontent.com/plamen-g/toss/master/install.sh | sh
または、ダウンロードすることもできます。
Windows: toss-windows-x86_64.exe をダウンロードして開きます。toss が自動的にインストールされ、スタートメニューに登録されてログイン時に起動します。Claude Code がインストールされている場合は、そちらにも登録されます。新しいバージョンをダウンロードして開くと、更新されます。まだ署名されていないため、Windows から確認を求められます。「詳細情報」→「実行」をクリックしてください。
Mac: toss-macos.dmg(すべての Mac に対応)をダウンロードして開き、toss を「アプリケーション」にドラッグします。まだ Apple による署名がないため、初回は macOS が開くのを拒否します。「システム設定」→「プライバシーとセキュリティ」に移動し、「このまま開く」をクリックしてください。ターミナルでは /Applications/toss.app/Contents/MacOS/toss です。
Linux: リリースから toss をダウンロードし、PATH に追加します。
新しいバージョンがリリースされると、トレイメニューに 更新先 が表示されます。Windows と Mac では toss がファイルをダウンロードし、toss のリリースキーと照合して署名を確認してから、新しいバージョンとして再起動します。Linux ではリリースページが開きます。
ビルドするには、cargo build --release を実行します(約 14 MB)。Mac では、その後 sh macos/bundle.sh を実行すると、target/release/toss.app と toss-macos.dmg が作成されます。
鍵と連絡先は %APPDATA%\toss、~/.config/toss、~/Library/Application Support/toss、または TOSS_HOME が指す場所に保存されます。
独自のリレーを使用する
ホスト名を持つサーバー上で iroh-relay を実行します(iroh-relay --config-path relay.toml を実行し、TCP 80 と 443、および UDP 7842 を開放します)。
enable_relay = true
enable_quic_addr_discovery = true
access.shared_token = ["<long random token>"] # only your devices may use it
[tls]
hostname = ["relay.example.com"]
cert_mode = "LetsEncrypt"
contact = "[email protected]"
次に、すべてのデバイスで toss relay https://relay.example.com <token> を実行するか、生成された relay.json を配置します。toss relay off を実行すると設定が元に戻ります。デバイス同士が接続できるのは、同じリレー経由の場合だけです。
常時起動の受信側
サーバーを一度ペアリングし、a で常に許可すると回答して、toss listen を実行し続けてください。応答する人がいない場合、自動承認される連絡先だけが接続できます。
# /etc/systemd/system/toss.service, then: systemctl enable --now toss
[Unit]
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/toss listen
Restart=on-failure
StandardInput=null
[Install]
WantedBy=multi-user.target
仕組み
- iroh を基盤にしています。デバイスは公開鍵で識別されます。可能な場合は NAT を越えて直接接続し、それ以外の場合は暗号化されたリレーを経由します。
- 接続時には毎回、それぞれの TLS キーに対する署名を使って認証するため、連絡先を偽装したり、通信をリプレイしたりできません。ペアリングコードは短く、数字は 2 台のデバイスがどこで接続するかを示し、2 つの単語はパスワード認証型鍵交換方式の SPAKE2 で照合されます。そのため、通信を傍受されても情報は漏れず、推測の機会も 65,536 分の 1 です。
- 受信したファイルは Downloads の外に保存されず、既存のファイルを上書きすることもありません(
name (1).ext)。すべての OS で使える名前が付けられ、Windows では「インターネットからダウンロードされた」ことを示すマークが付きます。知らない相手からの送信は拒否され、まず空き容量が確認されます。 - 大きなファイルは 256 KB 単位でストリーミングされるため、サイズにかかわらずメモリ使用量は約 10 MB に収まります。転送が中断された場合は、同じファイルを再送すると、双方で受信済みデータの BLAKE3 ハッシュを比較してから再開します。未完了のファイルは
Downloads/.toss-incomingに保存されます。不要になったものは手動で削除してください。
未対応
近くのデバイスの検出、macOS のダウンロードフラグ、Wayland でのドラッグ&ドロップ。
MIT ライセンスです。表示フォント:Bricolage Grotesque(SIL Open Font License、assets/OFL-BricolageGrotesque.txt)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。