WireCat Memo について
WireCat Memoは、ノート、ドキュメント、メール、メッセージをエージェントに活用させたい人向けのローカル優先ナレッジストア兼コマンドラインツールです。情報を人物や出典に結び付け、キーワード検索とローカルモデル検索、回答用の根拠整理に対応します。
主な機能
- 01ノート、ドキュメント、メール、メッセージの取り込み
- 02出典参照付きの横断検索
- 03人物の身元や関連記録の整理
- 04エージェント向け根拠バンドルの作成
- 05ノート、タスク、タグ、リマインダーの管理
活用シーン
- 01通話前に人物の背景を確認
- 02話題をどこで議論したか検索
- 03引用付きの根拠をエージェントに渡す
MCP 対応
`memo mcp serve`はメッセージ、メール、ノートをMCPクライアントに公開し、保存済みの権限とレビュー設定に応じて、メモリー、事実、送信アクションの提案を扱います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | いいえ | タスクを説明する語句 |
詳細
memo
AI エージェントのためのローカルナレッジ。
メモ、ドキュメント、メール、メッセージをひとつのローカルストアにまとめます。人々と関連付け、タグを付け、すべてのソースへの参照とともに検索できます。
memo はコマンドラインツールです。Obsidian の Vault などのメモフォルダーと、その中のドキュメント、メールを取り込みます。また、tg-cli と max-cli が保存したメッセージを読み込みます。あとは、あなたや AI エージェントが「この人について何を知っているか」「どこでこの話をしたか」「何を約束したか」を尋ねるだけです。回答にはすべて、ソースへの参照が示されます。
例 — メモフォルダー内にある、架空のメモを2つ検索します。
$ memo search notes budget Friday
Searched by words only: e5-small is not downloaded — install it with a WireCat CLI that has `models download` (tg, max or wa); they share the model folder
Projects/Harbour budget.md
Review the Harbour budget by Friday.
people/Alice Example.md
Asked for the revised budget by Friday.
各検索結果にはファイル名と一致した抜粋が表示されます。診断メッセージは stderr に出力されます。ローカルモデルが見つからないため、この検索では単語だけを使いました。--json を指定すると、エージェントやスクリプト向けの構造化された結果が返されます。
クイックスタート
Node.js 22.16+ または 24+ が必要です(23 は対象外です)。memo は Linux でテスト済みです。macOS と Windows では、まだテストされていません。
npm install -g @wirecat/cli-memo
memo skill install --for all # puts memo's skill where your agents read it
memo folders add /path/to/notes # your notes folder; Obsidian format by default
memo sync --only notes # reads the notes, their links and tags; run again after edits
memo search notes "budget"
グローバルインストールではエージェントスキルはインストールされないため、上記の memo skill install --for all を実行してください。
npm 11.17 以降では、allowScripts で許可されていないインストールスクリプトについて警告が表示されます。npm 11 ではスクリプトは引き続き実行されますが、npm 12 ではブロックされます。警告の下に npm が表示する npm install -g --allow-scripts=… コマンドを実行してください。これにより、指定されたパッケージのみが一度だけ許可されます。Windows で memo が見つからない場合は、新しいターミナルを開いてください。
メモの準備はこれだけです。続いて、さらにコンテキストを追加しましょう。
- メッセージ: tg-cli または max-cli をインストールします。memo は同じローカルストアを読み込みます。
- 意味による検索: 約135 MBのローカルモデルが必要です。次のコマンドで一度ダウンロードします:
memo models download e5-small。モデルがない場合、memo は単語で検索します。 - メール: Himalaya をセットアップし、
memo mail add <account> <address>を実行してから、memo sync --only mailを実行します。 - 最新の状態を保つ:
memo jobs startを実行すると、5分ごとにmemo syncが実行されます(Linux、systemd)。 - エージェント:
memo skill install --for allを実行すると、Claude Code、Codex、Gemini CLI が読み込む場所に memo のスキルが配置されます。memo skill showを実行すると、スキルの内容が出力されます。
または、エージェントに次のように依頼できます:「npm install -g @wirecat/cli-memo と
memo skill install --for all を使って memo をインストールするのを手伝ってください。memo --help を読み、次に私が選ぶメモフォルダーを接続するのを手伝ってください。」
詳細:インストール · wirecat.dev で memo をインストール
何ができますか?
「電話の前に、Aliceについて知っておくべきことは何ですか?」
memo context telegram:"Alice Example" --json
彼女に関連付けられたすべてのID、それぞれの相手との最後のメッセージ、共通のチャット、関連するメール、彼女についてのメモ、未完了のタスクを、すべて元の情報源へのリンク付きで確認できます。
「Harbourの予算について、どこで話しましたか?」
memo search all 'harbour budget' --json
メッセージ、インポートしたメール、メモをまとめてランキングします。種類がわかっている場合は、search notes、search mail、search messagesですべてのフィールドを検索できます。
「今週、誰に何を約束しましたか?」
memo answers create 'What did I promise this week?' 'promised OR "by Friday"' --all --json
エージェント用の根拠資料一式です。該当する情報源とその参照、検索した内容、それらを引用するよう求める指示が含まれています。回答を書くのはエージェントです。memoがモデルを呼び出すのは、依頼された場合だけです。
詳細:検索 · 必要なコンテキストを尋ねる
AI エージェント向けに構築
- ターミナルを使えるあらゆるエージェント — Claude Code、Codex、Gemini CLIなどから
memoコマンドを実行できます。--jsonを指定すると、構造化された出力が得られます。 - 推測ではなく根拠 —
memo answers createは、参照付きの情報源と、検索できなかった内容を返します。 - MCP —
memo mcp serveを使うと、Claude DesktopやCursorなどのMCPアプリから、メッセージ、メール、メモを読み取ったり、メモリー、直接記録された事実、送信操作を提案したりできます。許可されている場合は、プロジェクトの提案についてエージェントに判断を委ねることもできます。代わりに、オーナーの判断を必須にすることもできます。ウェブやスマートフォンのアプリは、HTTPSトンネル経由の認証済みHTTP MCPを、同じ保存済み権限で使用します。
詳細:AI エージェントを接続する · メモリーと事実 · MCP サーバー
memoを選ぶ理由
- ローカル優先です。 すべてローカルストアに保存され、意味による検索にはローカルモデルを使用します。
- すべての回答に情報源があります。 検索結果には、あなたやエージェントが開ける参照が付いています。メモ、ファイルのページ、メール、メッセージなどです。
- 推測ではなくリンクでつなぎます。 メモは人や記録にリンクします。名前が一致しても、IDが統合されることはありません。
- インポートしても情報源は変更されません。 Gmailを整理するための別個のコマンドでは、選択したメールをごみ箱に移動したり、
--yesを指定した場合にのみ復元したりできます。タグと自分のメモはストアに保存されます。 - 確認と委任が記録されます。 エージェントが提案するメモリーや送信操作は、あなたの確認を待ちます。プロジェクトの判断は委任することも、オーナーに任せることもできます。Memoが何かを送信することはありません。
ステータス: 初期段階です。コンテキスト、メモとそのリンク、ドキュメントのインポート、GmailとIMAPからのインポート、タスク、手動での関連付け、根拠資料一式、ローカルリマインダーが利用できます。プロジェクト内のタスクには、まだリマインダーを設定できません。
詳細:セキュリティ · wirecat.devのセキュリティ情報
読み取れる情報
- メモのフォルダー: ObsidianまたはプレーンなMarkdown。リンク、別名、タグに対応しています。
- フォルダー内のドキュメント: TXT、CSV/TSV、テキストレイヤー付きPDF、DOCX、XLSX、ODT/ODS、PPTX、EPUBに対応しています。各文章の出典となったページ、行、セルも確認できます。
- メール: Gmailまたはその他のIMAPアカウント。添付ファイルを含め、Himalaya経由で読み取ります。
- メッセージ: tg、max、waのストア。メッセンジャーやメールをまたいで関連付けられた人も確認できます。
メッセージ、人、プロジェクトについての自分のメモ、タグ、タスク、リマインダー、組織、プロジェクトを追加できます。
詳細:メモ · memoが読み取れるファイル
タスク別コマンド
| タスク | コマンド |
|---|---|
| ノートのフォルダーを接続する | memo folders add · folders update · folders list |
| 変更内容を同期する | memo sync · sync --only notes · sync --only mail · jobs start / stop / status |
| ノートを読む | memo notes list · notes show · notes links show(人物に関するノートファイル) |
| 自分のノートを書く | memo notes add · notes edit · notes remove · notes export |
| 検索する | memo search all · search notes · search mail · search messages |
| 証拠をエージェントに渡す | memo answers create |
| 人物について把握する | memo context |
| アーカイブされた会議を準備・確認する | memo meetings prepare · search meetings · meetings passage · meetings actions add |
| 組織とプロジェクト | memo organizations add / list / context · projects add / list / context · projects key-documents add / remove / list · projects meetings list / link |
| プロジェクトとトピックの別名 | memo vocabulary list / show / check / inspect · vocabulary aliases add / remove · vocabulary create |
| 関係性 | memo relationships add / list / remove / confirm / suggest |
| ラベル | memo tags add · tags remove · tags list |
| 進行中の作業 | memo tasks add · tasks list · tasks agenda · tasks show · tasks update · tasks assign · tasks close · stats tasks show |
| タスクの依存関係 | memo tasks link / unlink / relations · tasks status · tasks list project:HRB ready:true |
| リマインダー | memo reminders add / list / poll / ack / update / cancel |
| エージェント | memo memories … · facts … · actions … · agents list · memo mcp serve |
すべてのコマンドで --help を使用でき、ほとんどのコマンドで --json を使用できます。memo guide にはシナリオが一覧表示されます。一般的なタスクを順番に実行するコマンドを確認できます。memo guide person-brief は、WireCat のすべてのツールから 1 人の人物に関する情報を集めます。
詳細:技術ドキュメント · wirecat.dev の memo
ファイルからのノートと、自分で書くノート
フォルダーから取り込む場合。 memo folders add は、ストアで使うフォルダー ID を割り当てます。パスはこのコンピューター上での場所にすぎないため、別のコンピューターにある同じフォルダーは memo folders update <id> <path> で関連付けます。memo sync --only notes は、各ファイルをパスを名前とするノートとして保存します。編集したファイルは以前のテキストが改訂履歴として残ります。移動したファイルは ID、リンク、タグを維持します。削除したファイルのテキストは、次回のインポート時に削除されます。obsidian 形式(デフォルト)は [[Note|label]] リンク、別名、tags:、#tags を読み込みます。markdown 形式は [label](path.md) リンクと tags: を読み込みます。[[Kai Sample]] リンクは、その名前の人物がストアに登録されている場合、その人物へのリンクになります。.obsidian などの隠しフォルダーはスキップされます。
memo で書いたノート。 自分で書いたノートはファイルではなくストアに保存され、--subject で指定した対象についてのノートになります。対象には、人物、メッセージ、チャット、プロジェクト、タスク、別のノートなどを指定できます。
memo notes add 'Prefers mornings' --subject telegram:'Alice Example'
memo notes edit NOTE_ID --revision 1 --text 'Prefers early mornings'
memo notes export --output-dir /path/to/vault/memo --format obsidian
編集では、変更対象の改訂を指定するため、その間に行われた編集が失われることはありません。export は自分のノートをファイルとして書き出します。これらのファイルはインポート時にスキップされ、編集したファイルが上書きされることもありません。
詳細:ノート · ノートを追加する · 自分のノートを作成する
検索と根拠
メモは、クエリ言語のメッセージ内にある単語と語幹(フレーズ、AND/OR/NOT、tag:、date:)で検索されます。ローカルモデルをダウンロードすると(memo models download e5-small)、意味に基づく検索も行われ、どちらの結果も合わせてランク付けされます。search allはメッセージ、インポートしたメール、メモ、gcalが保存したカレンダーの予定を検索し、それ以外は検索しません。種類が分かっている場合は、それぞれの検索ですべてのフィールドが検索されます。search mailでは、from:、to:、cc:、bcc:、subject:、mailbox:を指定できます。
memo search notes '"budget review" AND NOT cancelled' --limit 20
memo search mail 'from:[email protected] subject:budget'
memo notes show note:NOTE_ID --json
memo answers createにはスコープ(--all、または--source。例:--source telegram:1,notes)が必要で、デフォルトでは根拠を返します。代わりにモデルを呼び出すには、MEMO_MODELS_ANALYSIS_PROVIDERとMEMO_MODELS_ANALYSIS_MODELを設定し、--analyzeを渡します。リモートモデルには--allow-remoteも必要です。
詳細:検索 · wirecat.devでの検索
人物、組織、プロジェクト
memo contextは共有ストアから情報を返します。人物にリンクされたすべてのID、双方の直近のメッセージ、最近のメッセージ、共通のチャット、リンクされたメール、その人物のカレンダーの予定、その人物についてのメモ、未完了のタスクが含まれます。誰が誰かはメッセージングで決定します(tg personal contacts link <person> email:<address>)。名前が同じというだけでは決して同一人物とはみなしません。memo notes links add telegram:"Alice Example" /path/to/notes/people/Alice.mdは、その人物についてのメモを指定します。
組織とプロジェクトは特定のアカウントに属するのではなく、ユーザー自身のものです。関係(member-of、related-to)は手動で記述します。relationships scanは、共有ドメインに基づくリンクを提案するだけで、確定するにはユーザーの確認が必要です。プロジェクトには会議を紐付けることができ(projects meetings link)、memo vocabularyでは、プロジェクトとトピックに確認済みの別名を設定して、同じ名前が常に同じプロジェクトを指すようにできます。
新しいタグやトピックを追加する前に、memo vocabulary check <name> --jsonを実行してください。標準ラベルを再利用するか、同じ意味なら別名を追加してください。意図的に異なるラベルの場合は、memo vocabulary create <name> --fingerprint <creation_fingerprint> --jsonを実行します。トピックを作成する場合は、両方のコマンドで--kind topicを指定してください。この確認を承認するのは所有者です。MCPにはvocabulary_checkがありますが、ラベルを作成するツールはありません。その間にラベルや別名が変更された場合は、改めて確認が必要です。memo vocabulary check --jsonは、カタログ内にすでにある可能性の高い同義語を見つけます。completeフラグは、範囲を限定した比較が完了したかどうかを示します。候補は確認が必要で、自動的に統合されることはありません。確認対象を絞るには、--kind tag、--kind topic、または--kind projectを使用してください。
memo organizations add 'Synthetic Studio' --kind company
memo projects add 'Synthetic Harbour' --organization organization:ORGANIZATION_ID
memo projects key-documents add PROJECT_ID document:DOCUMENT_ID --reason 'read this first'
memo projects context PROJECT_ID --json # start project work here: key documents come first
詳細:人物とプロジェクト · wirecat.devの人物情報
メール
memoは、事前に設定するコマンドラインメールクライアントHimalayaを通じてメールを読み取ります。デフォルトはGmailです。別のIMAPプロバイダーを使う場合は、読み取るフォルダーとともにmode: "imap"を指定します。メールボックスは読み取り専用で開かれ、--limit(デフォルトは200)で1回の実行あたりの新着メール数が制限され、次回の実行は続きから行われます。Gmailのラベルはメールボックスになり、添付ファイル内のテキストもメールとともに検索されます。元の場所で削除されたメールのテキストはストアから削除されます。各アカウントはmail.accountsで指定します。memo syncとタイマーはすべてのアカウントを読み取り、レポートでは各アカウント名を表示します。対象を絞るには--source email:<name>を指定します。
memo sync --source email:work --since-time 2026-09-01 # work: the account's name in mail.accounts
memo search mail 'mailbox:important budget'
詳細:メール · wirecat.devのメール
タグ、タスク、リマインダー
タグは、ノート、メール、メッセージ、チャット、人物、組織、プロジェクト、タスク、会議、またはフォルダー内のすべてのノートに付けるラベルです。タグはストアに保存され、ファイル、Gmail のラベル、メールボックスのフラグは一切変更されません。タスクは、その元になったメッセージやノートを参照するか、プロジェクト内で独自に作成できます(--project RES --title …)。また、別のタスクが完了するまでブロックされることもあります。memo tasks agenda は、指定したアカウントで今日確認すべきことを示します。ノートフォルダーも指定できます(--source notes)。リマインダーはローカルで管理されます。選択した呼び出し元がリマインダーをポーリングし、メッセンジャーやメールボックスには配信されません。
memo tags add follow-up --note note:NOTE_ID
memo tasks add 'msg:telegram/1/77/42' --type request
memo reminders add TASK_ID --at-time 2026-10-09T09:00:00+02:00 --account telegram:1
詳細:タグ · タスクとリマインダー · ソースにタグを付ける
エージェントと MCP
ターミナルを使うエージェントは、--json を指定して memo を実行します。MCP アプリは、標準入力と標準出力で memo mcp serve を起動します。これを通じて、アプリは Memo のコマンドを使用できます。書き込みも可能ですが、保存済みの権限と読み取りロックによる制限があります。検索結果の参照は、notes_show と messages_show で開けます。既存のツール名も引き続き使用できます。
{ "mcpServers": { "memo": { "command": "memo", "args": ["mcp", "serve"] } } }
エージェントが新たに作成するメモリ、直接記録する事実、外部へのアクション提案は、すべて proposed として開始されます。権限キーで読み取り、編集、判断を制限します。保存済みのレベルが設定されていない書き込みには ask が適用されます。この場合、MCP 経由で実行され、ターミナル上で確認を求めることはありません。ソースフォルダーとメールルールの変更には mcp.authority が必要で、デフォルトでは無効です。プロジェクトの提案には別のフローがあります。デフォルトでは、エージェントは記録された理由を添えて提案を判断でき、承認済みの事実や番号付きタスクを作成したり、重要なドキュメントを確認したりできます。プロジェクトの提案についてオーナーの判断を必須にするには、agent_decisions: false を設定します。会議での判断と注釈の復元には、明示的な権限が必要です。Memo がメッセージやメールを送信することはありません。memo agents list では、引数を除き、各呼び出し、その結果、実行時刻が表示されます。
詳細:メモリと事実 · MCP サーバー · wirecat.dev の MCP
最新の状態を保つ
memo sync はノートとメールを最新の状態にし、変更があったものだけを読み込みます。memo jobs start --every 5m を実行すると、systemd のユーザータイマーで同期が実行されます。jobs status では次回と前回の実行が確認できます。タイマーの実行に失敗すると、すべての memo コマンドが標準エラー出力の1行でその旨を示します。ロックによって2つのインポートが同時に実行されるのを防ぎます。同期の実行中にタイマーが起動した場合は、その実行をスキップして終了コード 0 で終了します。1つのソースでエラーが起きても、ほかのソースの処理は止まりません。
詳細:memo を最新の状態に保つ · wirecat.dev でフォルダーをインポートする
設定
memo folders add と memo jobs start は、~/.config/cli-memo/config.json に設定を書き込みます。手動では、スキップする対象とエクスポートしたノートの保存先を設定できます。また、memo mail add で Himalaya アカウントを明示的に追加できます。
{
"notes": { "ignore": ["Journal/Private.md", "Archive"], "export": { "dir": "/path/to/vault/memo" } },
"mail": { "accounts": [{ "name": "work", "address": "[email protected]" }] }
}
詳細:設定 · wirecat.dev の設定
セキュリティ
- インポートではノートフォルダーやメールボックスを読み取りますが、内容を変更したり、メールを既読にしたりすることはありません。Memo がメールを送信することはありません。
- Gmail のクリーンアップ用コマンドを実行すると、選択したメールをゴミ箱に移動したり、復元したりできます。実行には
--yesが必要です。タイマーから実行されることはありません。 - Memo が追加するもの — ノート、リンク、タグ、タスク、メモリー — はローカルストアに保存されます。
- 元の場所で削除されたノートやメールは、次回のインポート時にストアから本文が削除されます。削除された割合が異常に高いことを検出した場合、実行では何も削除せず、その旨を知らせます。
- 証拠がモデルに渡されるのは
--analyzeを指定した場合のみで、リモートモデルに渡されるのは--allow-remoteを指定した場合のみです。 - エージェントは提案を行います。メモリーを確定し、アクションを承認するのはあなたです。
詳細:セキュリティ · wirecat.dev のセキュリティ情報
制限事項
- ファイルは最大 50 MiB、保存されるテキストは 1 ファイルあたり最大 200,000 文字です。スキャンされた PDF、旧式の
.xlsファイル、およびこれより大きなファイルは、読み取らずに報告します。 - 意味による検索では、1 回の実行で最大 600 チャンクを埋め込みます。次回の実行で続きが処理されます。
memo sync --only mailは、デフォルトでアカウントごとに 1 回の実行につき新着メッセージを 200 件読み取ります(--limit)。本文は最大 1,000,000 文字、添付ファイルのテキストは最大 200,000 文字まで保持します(mail.max_body_chars、mail.max_attachment_chars)。- 検索結果は最大 100 件です。
tags listは、--limitで増やさない限り、ラベルを 100 件表示します。 - タグは a〜z の英字、数字、ハイフンで構成される 1〜32 文字です。
詳細:Memo が読み取れるファイル · Memo が読み取れるファイル
見つからない場合
-
単語だけで検索される: ローカルの意味モデルがダウンロードされていません。tg、max、wa のいずれかからインストールしてください。これらは同じモデルフォルダーを共有します。モデルがなくても単語検索は利用できます(意味による検索)。
-
インポート時にフォルダーが拒否される: まだ ID がありません —
memo folders add <path>を実行してください。 -
名前が拒否される: 同じ名前の人が 2 人います。表示された ID のいずれかを使ってください。
-
memo answers createでスコープを求められる:--allまたは--sourceを追加してください。 -
検索結果が空: 一致するものがストアにありません — それが一度も起きていない証拠ではありません。その種類専用の検索を試すか、より広い語句を使うか、まずそのソースをインポートしてください。
-
コマンドが失敗し、理由を確認したい:
memo runs list status:failedを実行し、続けてmemo runs show <run-id>を実行してください。 失敗した実行は 30 日間、成功した実行は 7 日間保持されます (実行)。
WireCat の一部
WireCat は、AI エージェント向けのオープンソースかつローカルファーストのコンテキストレイヤーです。Telegram 用の tg、MAX 用の max、WhatsApp 用の wa、アーカイブ済み Zoom 録画用の zm、Google Drive と Docs 用の drive、そしてノートとメール用の memo があります。インポートしたコンテキストはローカルで検索できます。まずノートから始め、必要なソースを追加してください。
技術ドキュメント
| ページ | 内容 |
|---|---|
| 概要 | memo の機能と仕組みの簡単な説明 |
| インストール | 要件、インストール、ファイルの保存先、更新 |
| memo の使い方 | 普段の使い方:インポート、検索、コンテキスト、メモ、レビュー |
| memo の仕組み | ローカルストア、インポート、リンク、参照、レビュー |
| メモとフォルダー | Markdown と Obsidian のフォルダー、ドキュメント、自分のメモ、エクスポート |
| タグ | あらゆるソースに付けるラベル |
| 検索 | 単語の検索、search all、answers create |
| 人物とプロジェクト | 人物のコンテキスト、リンク、組織、関係 |
| メール | Himalaya 経由の Gmail と IMAP |
| タスクとリマインダー | タスク、依存関係、ローカルリマインダー |
| 記憶と事実 | エージェントとあなたが記録する内容、および提案されるアクション |
| MCP サーバー | ターミナルを使わないアプリ、エージェントログ |
| リモート接続 | ブラウザーとスマートフォンのアプリ、アクセスコードによるログインと取り消し |
| memo を最新の状態に保つ | memo sync とタイマー |
| レシピ | エージェントに任せられる一連のタスク |
| すべてのコマンド | すべてのコマンドとオプション(自動生成) |
| 設定 | すべての設定項目と変数 |
| トラブルシューティング | 画面に表示される内容と対処方法 |
| セキュリティ | 読み取り、書き込み、送信される内容 |
| 他のツールとの比較 · ウェブ | memo は Hindsight、mem0、Graphiti、Cognee、basic-memory、Obsidian、Screenpipe とどう違うのでしょうか? |
| 変更履歴 | すべてのリリース |
利用者向けガイドは wirecat.dev にあります。
開発
pnpm install
pnpm lint && pnpm typecheck && pnpm test
プルリクエストを歓迎します。例とテストでは、架空の人物のみを使用しています。
詳細:インストール
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。