mcpField
S
SysKnife

SysKnife

ローカル
lacs-project.github.ioクラウド・インフラ851 日前に更新

SysKnife について

SysKnifeは、AIによるLinux管理に人間の明示的な承認を組み込みたい人向けのMCPサーバーです。要求を型付き・リスク分類済みの操作に変換し、別途ターミナルで承認してから実行し、Ed25519署名付き監査チェーンに記録します。

主な機能

  1. 01型付き・リスク分類済みの管理計画
  2. 02ターミナルでの個別承認レシート
  3. 03特権デーモンによる実行
  4. 04Ed25519署名付き監査履歴
  5. 05監査チェーンの検証
  6. 06ディストリビューション対応の読み取り専用クエリ

活用シーン

  1. 01パッケージやサービス変更案の作成と確認
  2. 02ターミナルで個別のシステム変更を承認
  3. 03監査ログで過去の実行を確認
  4. 04記録された操作の完全性を検証

MCP 対応

MCPクライアントに計画、実行、履歴、状態確認、監査検証、読み取り専用のシステム照会ツールを提供します。実行にはターミナルで別途取得する一回限りのレシートが必要で、クライアント自身は計画を承認できません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
cargosysknife-cli0.27.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SysKnife

SysKnife

Linux システム管理者向け MCP サーバー。計画し、承認し、監査します。

CI ライセンス スター 課題 ディスカッション npm バージョン Glama MCP サーバー品質スコア 記録済みベースラインから取得した Rust テスト数 記録済みベースラインから取得したフロントエンドテスト数

ディストリビューション  Ubuntu 20.04 以降に対応 Ubuntu 22.04、24.04、26.04 の VM 検証済み Fedora Atomic 41 以降は対応候補ですが、VM での検証は未実施

MCP サーバー · インストール · 仕組み · X ではだめなのか? · ディストリビューション一覧 · ロードマップ · 貢献する · ディスカッション

Ubuntu 24.04 上で MCP 経由の Claude Code から SysKnife を利用。ターミナルで発行されたレシートを通じて UfwAllow、AptInstall、UfwStatus を実行

Ubuntu 24.04 上の Claude Code MCP フローを決定論的に再現し、 ubuntu-flow-mock.shによってオフラインで実行します。 新しくチェックアウトした状態からでも、毎回まったく同じように再生されます。表示されるすべてのアクション名、リスクレベル、コマンドは、カタログに登録されたものです。同じフローは Cursor と Codex CLI でも動作します。
アトミックホストでは、代わりに rpm-ostree を使って計画を実行します。 Fedora Atomic の録画をご覧ください。 スタンドアロンの CLI をお探しですか?CLI ガイドをご覧ください。

平易な言葉で、やりたいことを説明してください。 リスクレベル付きの型付きプランを確認し、明示的に承認します。実行中はリアルタイムの出力を確認できます。アトミックホストでの変更(rpm-ostree)は、失敗時に自動的にロールバックされます。すべてのアクションに Ed25519 署名が付与され、監査されます。

AI がコマンドを指定することはありません。すべてのアクションは、正式なリスクレベルを持つ型付き操作です。デーモンがアクション自体の定義に基づいてコマンドラインを構築します。一部のアクションは sh -c を介して実行されますが、シェルの処理内容を構築するのは SysKnife であり、モデルではありません。AI がシステムに直接触れることはできません。特権デーモンは、承認された操作だけを実行し、改ざんを検知できる Ed25519 署名付き監査チェーンに記録し、失敗時にはアトミックホストでの変更(rpm-ostree)を自動的にロールバックします。

なぜガード付きシェルではなく、型付きアクションなのですか? レッドチームの調査(GuardFall)では、11 個の AI エージェントのうち 10 個が、文字列をそのまま使うシェルガードを回避することが判明しました。許可リストや正規表現では、意図を隠せるほど表現力の高い言語をフィルタリングすることになります。SysKnife はシェル文字列を完全に取り除きます。モデルが出力するのは 型付きアクションであり、 公開鍵で検証可能な監査チェーンが、すべてのアクションを記録します。


MCP サーバー

SysKnife は、まず MCP サーバーとして設計されています。Claude Code、Cursor、Codex CLI から接続すると、アシスタントはシェルの代わりに、型付きでリスク分類されたシステム管理ツールを利用できます。

ツール機能
sysknife_plan平易な言葉による指示を、リスクレベル、解決済みコマンド、デーモンのトランザクション ID を含む型付きステップに変換します
sysknife_execute1 回限りのレシートが付与されたステップだけを実行し、それ以外は実行しません
sysknife_history署名付き監査ログから過去の実行履歴を読み取ります
sysknife_doctorデーモン、プロバイダー、監査チェーンの状態を報告します
sysknife_audit_verifyEd25519 チェーンをたどって、完全性を確認します
sysknife_get_disk_usageなど、読み取り専用カタログの残りのツール使用中のディストリビューションに合わせて選ばれた、直接照会するためのツールです
npx sysknife-setup

1 つのコマンドで、サーバーをクライアントに接続し、デーモンをインストールできます。 詳細はインストールをご覧ください。ワイヤ上の動作についてはMCP プロトコルをご覧ください。

アシスタントが自分の作業を承認することはできません。 sysknife_plan はトランザクション ID を返して終了します。sysknife_execute が要求するレシートは、モデルが接続されていない経路で、ターミナルに sysknife approve <transaction-id> と入力して取得します。レシートがない場合、有効期限切れの場合、一致しない場合、再利用された場合は、いずれも拒否されます。

シェルでの操作を続けたいですか?CLIなら、クライアントを介さずに同じエンジンを使用できます。


インストール

最も簡単なのはセットアップウィザードです。デーモンをインストールし、SysKnife を Claude Code、Cursor、Codex CLI などの AI IDE に接続するので、チャットから計画と実行を行えます。

npx sysknife-setup

Node 22 以降が必要です。古い Node リリースには、セキュリティ修正が提供されなくなっています。Ubuntu 22.04 で apt install nodejs を実行すると Node 12 がインストールされますが、これは古すぎます。インストーラーがそのことと、最新の Node を入手する方法を案内します。Rust のツールチェーンもコンパイルも不要です。検証済みのビルド済みバイナリをダウンロードします。

npm バージョン

実行される内容:

  1. GitHub Releases からお使いのアーキテクチャ(x86_64 / aarch64)向けのビルド済み sysknife と sysknife-daemon のバイナリをダウンロードし、それぞれをリリースのチェックサムファイルと照合して SHA-256 検証します。不一致があればインストールは中止され、バイナリは ~/.local/bin に配置されます(sudo 不要)。ダウンロードを省略してソースからビルドするには、--no-binary を指定してください。

  2. LLM プロバイダー、キー、モデルを尋ねます。選択肢は OpenAI / Anthropic / Gemini / Ollama / Groq / DeepSeek / Mistral / xAI です(Ollama ではキーは不要です)。対応する環境変数がすでに設定されている場合、キーの入力は求められません。

  3. 接続するAI インテグレーション(または --claude / --cursor / --codex / --all を選択)と、デーモンの接続先(ソケット、およびリモート VM 用のオプションの vsock トークン)を尋ねます。

  4. インテグレーション固有の MCP 設定を書き込みます(既存ファイルにマージし、上書きはしません)。これにより、次のチャットセッションで sysknife_plan、sysknife_execute、sysknife_history、sysknife_doctor、sysknife_audit_verify、および sysknife_get_disk_usage などのディストリビューション互換の読み取り専用クエリといった sysknife_* ツールが、標準のツールとして利用できるようになります。

  5. 最後の手順として、デーモンをサービスとしてインストールし、起動します。デフォルトでは systemd のユーザーサービスです(sudo 不要。linger によりログアウト後も稼働します)。 このサービスはユーザー権限で実行されるため、読み取り専用の操作は機能しますが、変更を伴う操作は機能しません。パッケージのインストールやサービスの再起動にはシステムレベルのサービスが必要で、その sudoers 許可はシステムユーザー sysknife に属します。変更を行う予定のホストではシステムサービスを選択してください。また、プロンプトを表示せずに選択するには --daemon-mode=system|user|skip を指定します。--daemon-mode=system はウィザードからシステムサービスをインストールしません。root 所有の sudoers、polkit、ヘルパーポリシーが必要で、これらは sudo make install が管理するため、正確な手順を表示し、デーモンはまだインストールされていないと報告します。

    リリースとは独立して信頼しているチェックサムリストを使ってダウンロードを検証するには、SYSKNIFE_PINNED_SHA256SUMS=/path/to/sums を設定してください。SECURITY.md を参照してください。

リリースバイナリのビルド元を確認するには、リリースページからダウンロードし、gh attestation verify sysknife-vX.Y.Z-linux-x86_64 --repo lacs-project/sysknife を実行してください。このコマンドが成功するのは、GitHub が release.yml によるこのリポジトリのビルドについて署名した来歴ステートメントとファイルが一致する場合のみです。各リリースには来歴が sysknife-vX.Y.Z-linux-<arch>.intoto.jsonl としても同梱されるため、--bundle を使って同じ検証を行えます。公開済みリリースの検証を参照してください。

クライアント書き込まれるファイル
Claude Code.mcp.json + .claude/hookify.*.local.md
Cursor.cursor/mcp.json + .cursor/rules/sysknife.mdc
Codex CLI~/.codex/config.toml(追記)+ AGENTS.md

チャットでは、実行したい内容を依頼し、リスク表示付きのプランを確認してください。ターミナルで sysknife approve <transaction-id> を実行して各トランザクションを承認し、ワンタイムレシートを返すと、実行の様子を確認できます。レシートの境界を強制するのはプロンプトではなくデーモンです。

スタンドアロン CLI を使いたい場合同じエンジンを IDE なしで利用できます。sysknife "..."、--dry-run、--json、承認プロンプト、監査ログの確認方法については、CLI ガイドを参照してください。

手動インストール — Ubuntu 20.04 以降

Rust stable と C コンパイラー(build-essential)が必要です。TLS と SQLite の依存関係はネイティブコードをビルドするため、rustup だけの環境では error: linker cc not found で停止します。cmake は不要です。約 400 個のクレートのビルドには 7〜12 分を見込んでください(Ubuntu 24.04 では 6 分 56 秒、22.04 では 11 分 43 秒)。

sudo apt-get install -y build-essential
git clone https://github.com/lacs-project/sysknife
cd sysknife
make build                            # builds sysknife (CLI) + sysknife-daemon
sudo make install                     # installs both; daemon runs as a system service
sudo systemctl enable --now sysknife-daemon

# Join the socket group and one role group, or every request is refused with
# "Permission denied" before any role check runs: /run/sysknife is 0750
# sysknife:sysknife, and a sudo admin is not in that group automatically.
# Role groups: sysknife-observer (read-only), sysknife-dev (medium risk),
# sysknife-admin (high risk). Members of wheel are treated as admin.
sudo usermod -aG sysknife,sysknife-admin "$USER"
newgrp sysknife                       # or log out and back in

# Then wire your IDE — --no-binary skips the download since you just built them
# (--daemon-mode=skip: make install already set the service up)
npx sysknife-setup --no-binary --daemon-mode=skip
### アンインストール

どの方法でインストールした場合でも、コマンドは1つです。

# Removes the user service, the binaries in ~/.local/bin, and the SysKnife
# entries in the MCP and agent config it wrote: Claude Code's in the current
# directory, .cursor/mcp.json and .cursor/rules/sysknife.mdc, the sysknife block
# in ~/.codex/config.toml, and the SysKnife block in AGENTS.md.
npx sysknife-setup --uninstall

# See exactly what that would touch, without touching it.
npx sysknife-setup --uninstall --dry-run

監査履歴はデフォルトで保持されます。 ソフトウェアを削除しても、その動作の記録は消去されません。そのため、監査データベース、安全監査ログ、~/.config/sysknife はそのまま残され、パスが表示されます。これらも削除する場合は、削除する意思があるときに限り、次を実行してください。

npx sysknife-setup --uninstall --purge   # names each file before deleting it

sudo make install でシステムサービスをインストールした場合は、sudoers の許可設定、polkit ルール、特権ヘルパーを管理する Makefile を使って削除してください。--uninstall は意図的にこれらに触れません。中途半端に権限境界を取り除くのは、何も取り除かないより危険だからです。

sudo make uninstall

Ubuntu の3つの LTS リリースすべてで、Ubuntu スイートの79ストーリー(その後90以上に増加)をライブ VM で実行した記録があり、それぞれの実行を再現するリプレイ版もあります。22.04、24.04、26.04はすべて79/79で、各リプレイ版はすべての呼び出しをミスゼロで処理します。実行記録は tests/evidence/story-runs/ にあります。Debian 専用の各アクションにストーリーを追加したため、スイートは50から増えました。最初に追加されたのは GetHostState です。 Fedora Atomic は rpm-ostree が対象です。rpm-ostree ではまだ make install が完了しません(#301)。リリースを検証済みとするには、最新の Silverblue 44 VM での実行が必要です。通常の Fedora Workstation と Server は、dnf アクションファミリーがリリースされるまで実験的な位置付けです。根拠と対象範囲については、ディストリビューションのサポートマトリックス を参照してください。

ドライラン — 計画のみで、何も実行しません
# Requires the sysknife binary (see manual install above, or `npx sysknife-setup`).
# Plans only: no daemon, no approval, no execution.
export ANTHROPIC_API_KEY=sk-ant-...
sysknife --dry-run "show disk usage and list services that ate cpu in the last hour"

ターミナルを使いたいですか?CLI は主要な利用方法の1つです

同じエンジンを使い、IDE も MCP クライアントも使わず、シェルから自然言語を型付きプランに変換し、そのまま実行できます。--dry-run、--json、リスクの上限を指定した --yes、sysknife audit verify も利用できます。SysKnife を実行するための、完全にサポートされた方法であり、付け足しではありません。CLI ガイドを参照してください。

sysknife CLI — ターミナルで計画、承認、実行

実際の計画・実行セッションを決定的に再現したもので、 demo-mock.sh によってオフラインで生成されています。ライブの LLM 呼び出しは非決定的であり、 デーモンやプロバイダーが設定されていなくても録画を表示できる必要があるため、録画は実際に撮影したものではなくスクリプトで作成されています。出力のスタイルは、実際の CLI と同じコードパスから生成されています。

デスクトップ GUI もあります — 開発は一時停止中です。 実験的な Tauri デスクトップ アプリ(sysknife-shell)では、同じ計画 → 承認 → 実行の流れをウィンドウ上で利用できます。 現在、開発は一時停止中で、その代わりにサポート対象バージョン全体にわたる Ubuntu への取り組みを進めています。コードはリポジトリに残っており、引き続きビルドできますが、レビュー、テスト、拡張は行われていません。そのため、グラフィカルな承認フローを特に必要とし、その制約を許容できる場合にのみ利用してください。保守されているのは MCP 統合と CLI です。

仕組み

sysknife-brain   →   approval gate    →   sysknife-daemon
  (planner)         (you, in a         (executor)
   talks to LLM      terminal)          only privileged
   never to OS       shows the plan,    process; signs
                     takes y/n          every action

承認ゲートはコンポーネントではなく、SysKnife へのアクセス方法によって異なります。

  • MCP: AI クライアントが作成したプランには、ターミナルに入力する sysknife approve <transaction-id> のレシートが必要です。そのため、クライアントが 自分のプランを承認することはできません。
  • スタンドアロン CLI: sysknife "<intent>" を実行すると、各ステップについて専用の プロンプトで確認するか、--yes を指定して --max-risk までの操作を承認します。 sysknife approve は実行しません。
  • アカウント上のシェルを持つエージェントは、CLI を単独で操作できます。その 場合、境界を保つのはデーモンのロールベースの制限です (SECURITY.md, layer 3)。

一時停止中の Tauri GUI(sysknife-shell)は、ゲートの第 3 の実装であり、 ほかの 2 つが経由するステップではありません。

  1. 自然言語でリクエストを入力します。
  2. ブレインがプランを提案します。各ステップはリスクレベル(Low・Medium・High) を持つ型付きアクションです。
  3. シェルが、プレビュー、副作用、ロールバックのメタデータとともにプランを表示します。
  4. 各ステップを明示的に承認します(または、リスク上限を設定して --yes を指定します)。
  5. デーモンが実行し、ライブ出力をストリーミングします。また、失敗時には atomic-host(rpm-ostree)の変更を自動でロールバックします。
  6. すべての実行がハッシュチェーンで連結された SQLite または Postgres の監査証跡に 記録され、sysknife audit verify で検証できます。

ブレインは提案するだけで、特権を持つのはデーモンだけです。デーモンはポリシーを 適用し、型付きアクションを実行し、署名付きチェーンを書き込み、失敗時には atomic-host(rpm-ostree)の変更をロールバックします。信頼境界は機械的に 確保されており、シェル文字列が通信経路を通ることはありません。

なぜ X ではないのか?

ツール不足している点
Open Interpreter任意の Python/Shell を実行します。正式なリスクモデルも監査チェーンもありません。
Goose / Continue汎用ツールです。確認は場当たり的で、型付きリスクレベルはありません。
Claude Computer Use制御されていないデスクトップ自動化であり、システム管理向けではありません。
AnsibleYAML を事前に記述します。会話形式ではなく、リスク分類もありません。
shell-gpt / Copilot生のシェルコマンドを提案します。実行するのは依然として生のシェルです。
AIShell-Gate最も近い同種のツールですが、プロプライエタリでクローズドです。監査には対称 HMAC を使用します(検証者が署名用シークレットを保持するため、証明しても第三者は納得できません)。ロールバックもありません。
手動監査証跡もロールバックもありません。タイプミス 1 つで作業が失われます。

SysKnife は設計そのものが異なります。型付きアクション、Ed25519 署名付き監査 チェーン、明示的な承認ゲート、atomic-host(rpm-ostree)の変更に対する自動 ロールバック、sudo と polkit をまたいでアクションごとに範囲を限定した特権境界を 備えています。AI がシェルを保持することはありません。 詳しくはSysKnife と代替ツールの比較をご覧ください (AIShell-Gate、gate-oc-audit、MCP ゲートウェイ、汎用 mcp-shell)。

ステータス

信頼チェーンは構築・テスト済みで、提供中です。現在のマイルストーンはマルチディストリビューション対応です。

コンポーネント状態
sysknife-brain — LLM プランナー、ツールループ、安全性フェンス✅
sysknife-daemon — 190 以上の型付きアクション、認証、プレビュー、トランザクション✅
ライブ IPC + ストリーミング + atomic-host ロールバック(rpm-ostree)✅
ターミナル承認ゲート — 1 回限り、TTL で有効期限を制限したレシート✅
MCP サーバー(Claude Code / Cursor / あらゆる MCP クライアント)✅
改ざんを検知できる Ed25519 署名付き監査チェーン✅
RFC 5424 syslog 転送(Splunk / Sentinel / QRadar)✅
Postgres バックエンド(RDS / Cloud SQL / Neon / Supabase)✅
Ubuntu 対応 — 稼働中の 22.04 VM で 79/79 のストーリーを達成し、tests/evidence/story-runs/ に記録✅
すべての Ubuntu LTS を検証済み — 22.04、24.04、26.04 のすべてで 79/79 を達成し、それぞれを再現するリプレイ用ツインも用意✅
Telegram 承認インターフェース📋 ロードマップ

Rust テスト 2,000 件以上、フロントエンドテスト 70 件以上が、現在の決定論的な リリース基準を構成しています。

LLM の設定

SysKnife は Ollama(キー不要。プライバシー重視/オフライン/ ホームラボにおすすめ)、または OpenAI、Anthropic、Gemini、Groq、DeepSeek、 Mistral、xAI と連携します。

# ~/.config/sysknife/config.toml
[llm]
provider     = "ollama"          # or anthropic / openai / gemini / groq / ...
model        = "qwen3:8b"        # provider-specific
ollama_url   = "http://localhost:11434"
max_turns    = 10

[daemon]
socket   = "/run/sysknife/daemon.sock"
database = "/var/lib/sysknife/daemon.sqlite"

[storage]                         # production-recommended
backend = "postgres"
url     = "postgres://sysknife:${PG_PASSWORD}@db.example.com/audit?sslmode=verify-full"

環境変数は常に設定ファイルより優先されます。詳細なリファレンスは docs/configuration.md をご覧ください。

MCP プロトコル

SysKnife は Model Context Protocol を実装し、承認を必須とする計画・実行ツールを公開します。sysknife_plan は各ステップに対してデーモンが発行するトランザクション ID を返します。計画を確認した後、 ユーザーは実際のターミナルで sysknife approve <transaction-id> を実行し、 一度限りのレシートをエージェントに渡します。sysknife_execute は、レシートが存在しない場合、 期限切れの場合、一致しない場合、または再利用された場合に拒否します。MCP サーバー自体が承認 レシートを発行することはできません。

セットアップウィザード(上記)を使って、Claude Code、Cursor、または Codex CLI に接続してください。 API キーを含む可能性のある設定ファイルはすべて、chmod 0600 で作成されます。

ロードマップ

マイルストーンの詳細は ROADMAP.md をご覧ください。

  • ✅ Ubuntu 22.04 — 実稼働 VM で 79/79 のストーリーを検証済み(tests/evidence/story-runs/ に記録)
  • ✅ Ubuntu 24.04 および 26.04 — 実稼働 VM でそれぞれ 79/79 を達成。すべての LTS 実行には、同じ結果を再現するリプレイ用の実行もあります
  • ✅ sysknife audit export — 保存済みの署名付きチェーン行を、--since / --limit を指定して JSON として出力
  • 📋 Telegram のインラインボタンによる承認
  • 📋 SIEM 取り込み向けの CEF / NDJSON 出力モード
  • 📋 フリートの計画/実行(1 つの計画、N 個のターゲット、並列承認)

プロトコル

SysKnife は LACS(Linux Agent Control Standard) プロトコルのリファレンス実装です。型付きアクション、リスク分類、承認ゲート、 監査要件を定めています。仕様は CC0(パブリックドメイン)です。

→ lacs-project/specification

他のディストリビューションや言語向けの実装も、明示的に歓迎します。

貢献

ご協力をお待ちしています。今、最も大きな効果が期待できる分野は マルチディストリビューション対応 です。 ロードマップの一覧は docs/distro-support.md、 ワークフローは CONTRIBUTING.md をご覧ください。

good first issue のラベルが付いた Issue は、明確な受け入れ基準を設けたうえで範囲を限定しています。

謝辞

これまでにパッチを提供してくださった方々: @ITSMERNB、 @QinXi-ai、@Osheun、 @danial-razi、 @vsolano9、@Georgefifth。 各リリースでは、CHANGELOG.md に修正内容と担当者を記載しています。

パッチを送ったら、リリースをウォッチするのが、 公開されたことを確認し、新たに追加された good first issue を見つける最も早い方法です。スターを付けると、 他の人がこのプロジェクトを見つけやすくなります。

ドキュメント

SysKnife の入手先

チャネルインストール備考
npmnpx sysknife-setupnpmjs.com/package/sysknife-setup — セットアップウィザードです。Node 22 以降が必要で、コンパイルは不要です
crates.iocargo install sysknife-cli / cargo install sysknife-daemonbuild-essential が必要です。ビルドには約 7〜12 分かかります。レビュー済みのバージョンタグから公開されています。docs/release.md をご覧ください
MCP Registryio.github.lacs-project/syskniferegistry.modelcontextprotocol.io — 上記の crates.io インストール先に解決されます。サーバーをサンドボックス化するディレクトリのページにはすべてのツールが一覧表示されますが、デーモンが必要なツールは呼び出せません。その違いについては docs/mcp-registry.md で説明しています
GitHub ReleasesReleases からダウンロード各タグに、SHA-256 チェックサム付きのビルド済み x86_64 および aarch64 バイナリがあります

ライセンス

MIT です。制限なく、独自の製品で自由に使用、変更、配布、組み込みができます。

LACS 仕様 は CC0 1.0 に基づくパブリックドメインです。


Vladimir Rotariu が開発しました。 · 問題、アイデア、体験談などは、お気軽にお寄せください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。