Twin Me Up について
Twin Me Upは、複数のAIエージェントを使う人向けのローカルなオープンソースサービスです。確認済みの指針を共有し、行動の許可を判定し、修正から得た教訓は本人の承認後に反映します。
主な機能
- 01確認済みの指針をエージェント間で共有
- 02ワークフローと範囲ごとの行動許可
- 03未許可の行動に承認を要求
- 04判断や修正から教訓を提案
- 05保留した判断データで評価
活用シーン
- 01反復ワークフローの要点をエージェントに共有
- 02重要な行動を承認制にする
- 03修正から得た教訓を確認
- 04指針が判断に役立つか検証
MCP 対応
MCPサーバーは、エージェントへの指針提示、権限確認、承認依頼、判断の記録、教訓の提案を行うツールを提供します。ネイティブなpi拡張機能、CLIブリッジ、関数呼び出し用スキーマもあります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
12掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| actions | array | いいえ | 必要になると予想されるアクション。例:email.send。 |
| workflow | string | はい | ワークフローの slug。例:quote-review。 |
| objective | string | はい | これから行うことを一文で記述します。 |
| include_hypotheses | boolean | いいえ | 未確認の提案も、明確にラベルを付けて列挙します。 |
詳細
一度教えれば、使うすべてのエージェントがあなたらしく仕事をし、行動する前に確認します。
クイックスタート · プロンプトひとつでインストール · 仕組み · 対応環境 · 研究内容 · 安全性
理由
おそらく、複数の AI エージェントを使っているでしょう。どのエージェントも毎回ゼロから始まります。あなたが何を大切にしているか、決して妥協しない点は何か、どの判断を自分でしたいのかを知りません。そのため、同じことを何度も伝え、同じ間違いを繰り返し修正し、確認する前に重大なことが起きないよう願うことになります。
Twin Me Up は、小規模なローカルのオープンソースサービスです。すべてのエージェントに、次の3つの質問への共通の答えを提供します。
- この人は、この種の作業をどのように進めたいのか? 確認済みの指針、基準、例外、譲れない一線を、作業開始時にエージェントへ伝えます。
- これを実行してよいのか? ワークフローとアクションの範囲を定めた明示的な許可を設定でき、有効期限も指定できます。許可されていない操作には
askが返されます。オプションのフックを使えば、モデルの外側でこれを強制できます。 - 今、何を学んだのか? あなたの判断や修正が、教訓の候補になります。確定できるのはあなただけです。
これは、あなたを模したチャットボットでも、性格のクローンでも、あなたに代わって自律的に行動するものでもありません。そうした主張を裏付ける証拠はなく、その理由は研究内容で説明しています。
特徴
| あなたが承認する学習 | エージェントが教訓を提案します。確認、修正、却下、または廃止するのはあなただけです。各教訓には、その由来、情報源、履歴が保持されます。 |
| あなたが付与する権限 | エージェントは、ワークフローと指定したアクションに対する明示的な許可に基づいて動作し、必要に応じて有効期限を設定できます。予約済みの twin. 名前空間にあるアクションは、誰にも許可できません。 |
| モデルの外部での強制 | Hermes、Claude Code、pi のアクション前フックが、許可されていないツール呼び出しをブロックするか、エスカレーションします。フェイルクローズで動作します。 |
| 雰囲気ではなく証拠 | 保留しておいた判断を固定し、汎用アシスタントやルールのみのベースラインとツインを比較します。結果にはサンプルサイズに関する警告が付属します。 |
| 1つのツインを、あらゆるエージェントで | 1つの MCP サーバー、ネイティブな pi 拡張機能、CLI ブリッジ、関数呼び出しスキーマに対応しています。13のエージェントシステムとフレームワークについて手順を記載し、そのうち10は実環境で検証済みです。 |
| あなたのもの | 所有者のみがアクセスできるファイルを備えたローカル SQLite、改ざん検知可能な監査ログ、ポータブルなエクスポート、記録から派生したすべての情報を削除する消去機能を備えています。テレメトリはありません。 |
現在お使いかもしれないものとの比較
| ルールファイルまたはシステムプロンプト | エージェントに組み込まれたメモリ | Twin Me Up | |
|---|---|---|---|
| 使用するすべてのエージェントで動作する | それぞれにコピー | 1つの製品内 | MCP 経由で、1つのツイン |
| あなたの修正から学習する | いいえ | 多くの場合、自動的に | はい。提案として学習します |
| 学習内容をあなたが承認する | すべて自分で書く | 通常は事後 | 常に、反映される前に |
| 許可していないアクションを止める | いいえ | いいえ | はい。許可、ask、フックで制御します |
| 実際に役立つかどうかを示す | いいえ | いいえ | ベースラインとの保留テスト |
| データの保存場所 | あなたのファイル | ベンダー | あなたのマシン |
クイックスタート
Python 3.11 以降と uv(または pipx)が必要です。macOS と Linux でテスト済みです。Windows でも動作するはずですが、テストされていません。
uv tool install twin-me-up # or: pipx install twin-me-up
twinmeup init # your name and a passphrase, in your own terminal
twinmeup connect --list # every supported agent system
twinmeup connect claude-code # the exact steps for one of them, with your paths
twinmeup doctor # check everything, including a live MCP handshake
twinmeup init を実行すると、名前とパスフレーズの入力を求められます。パスフレーズは、教訓の承認、権限の付与、エクスポート、消去など、あなたのみが実行すべきすべての操作を保護します。エージェントにパスフレーズが渡されることはなく、これらのコマンドはパスフレーズなしでは実行できません。
MCP サーバーだけが必要ですか?twinmeup init の後、あらゆる MCP クライアントから uvx twin-me-up を使って起動できます。最新のコードを使いたい場合は、uv tool install git+https://github.com/GitDakky/twin-me-up を実行してください。
アップグレードする場合は、uv tool upgrade twin-me-up(または pipx upgrade twin-me-up)を実行してから、twinmeup doctor を実行してください。アップグレードによってツインにどのような変更が加わるかについては、FAQをご覧ください。
Claude Desktop をお使いですか?twinmeup init の後、最新リリースから .mcpb デスクトップ拡張機能をダウンロードして開いてください。1つのバンドルで macOS、Windows、Linux に対応します。
1つのプロンプトでインストール
すでにエージェント内で作業していますか?以下を貼り付けてください。
コピー&ペースト用インストールプロンプト
Install Twin Me Up for me and connect it to yourself. Twin Me Up is a local, open-source
work twin: it learns how I make decisions, briefs you at the start of work and tells you when
you need my approval. Repository: https://github.com/GitDakky/twin-me-up
Work step by step and show me each command you run.
1. Install it. Prefer uv:
uv tool install twin-me-up
If uv is not available, use pipx:
pipx install twin-me-up
If PyPI cannot be reached, install from GitHub instead:
uv tool install git+https://github.com/GitDakky/twin-me-up
Then check with: twinmeup version
2. Ask me to run `twinmeup init` myself, in my own terminal, and wait until I say it is done.
It sets my name and a passphrase that only I know. Do not run it for me, do not ask me for
the passphrase, and never type a passphrase anywhere.
3. Run `twinmeup connect --list`, pick the entry that matches you (or `generic`), then run
`twinmeup connect <entry>` and carry out the steps it prints to register the MCP server and
install the skill. If it offers optional enforcement hooks, show me the action map and the
hook configuration first, and install them only if I agree.
4. Run `twinmeup doctor` and report the result.
5. If your system needs a new session to load MCP tools, tell me. Otherwise call twin_brief
for workflow "general" and summarise what it says.
While you work with my twin:
- Call twin_brief at the start of a piece of work.
- Call twin_authorise before anything consequential: sending, paying, publishing, deleting or
committing on my behalf. If the answer is "ask", prepare a draft, request my approval with
twin_request_approval, and act only once twin_approval_status says it is approved.
- Give every write a request_id, so a retry never records anything twice.
- When I correct you, record it with twin_record_correction.
- Never try to confirm lessons, approve requests, grant authority, export or erase. Those are
mine, and the twin will refuse you anyway.
エージェントがパッケージをインストールし、自身を接続して、結果を確認します。重要な2つの手順はあなた自身が行います。パスフレーズを選ぶことと、強制フックを承認することです。このプロンプトは docs/install-prompt.mdにもあります。
仕組み
flowchart LR
you([You])
twin[("Your twin<br/>local store")]
agent["Any agent"]
hook{{"Pre-action hook"}}
you -- "confirm lessons<br/>grant and approve" --> twin
twin -- "candidate lessons<br/>to review" --> you
agent -- "twin_brief<br/>twin_authorise<br/>request approval" --> twin
agent -- "record decisions<br/>and corrections" --> twin
agent -. "every governed tool call" .-> hook
hook -- "ungranted: block or ask" --> agent
hook -- "checks grants" --> twin
ループ
- 状況を把握する。 作業の開始時に、エージェントは
twin_briefを呼び出します。ワークフローに関する確認済みの指針を受け取ります。そこには常に境界とエスカレーションルールが含まれ、許可されている操作の一覧も示されます。 - 確認する。 重大な操作を行う前に、エージェントは
twin_authoriseを呼び出します。実行中の許可がその操作を対象としている場合に限り、回答はallowになります。それ以外の場合はaskとなり、エージェントは下書きを用意してあなたに承認を求め、判断を待ちます。 - 学習する。 あなたが判断を下したり、エージェントを修正したりすると、エージェントはその判断または修正を記録し、そこから得られる教訓を提案します。
- 承認する。 キューを確認し、それぞれの教訓を承認、修正、または却下します。承認された教訓だけが、今後の概要に反映されます。
- 検証する。 留保した判断を固定し、ツインを2つのベースラインと比較してテストしてから、より多くのことを任せます。
エージェントが使用できるツール
| ツール | 機能 |
|---|---|
twin_brief | ワークフローに関する確認済みの指針と現在の権限を取得します。作業の開始時に呼び出してください。 |
twin_authorise | 今、この操作を実行してもよいですか?適用される許可があれば allow を返し、なければ ask を返します。 |
twin_request_approval | 1つの操作について承認を求めます。あなたは自分のターミナルで判断します。 |
twin_approval_status | リクエストは承認、却下されていますか。それとも、まだ判断されていませんか? |
twin_search | 質問に関連する確認済みの指針を検索します。 |
twin_review_queue | 確認待ちの教訓を表示します。 |
twin_track_record | ワークフローの証拠と段階を表示します。学習、修正、評価、許可が含まれます。 |
twin_next_questions | 記録された判断について、回答が得られていない質問のうち、最も重要なものを表示します。 |
twin_record_decision | 実際の判断を記録します。状況、選択肢、選択、理由を含めます。 |
twin_amend_decision | 追加質問へのあなたの回答を、記録済みの判断に統合します。 |
twin_record_correction | エージェントの作業を編集、上書き、または却下したときに記録します。 |
twin_propose_lesson | 教訓を提案します。あなたが承認するまで、権限は付与されません。 |
あなただけが実行できる操作
これらのコマンドにはパスフレーズが必要なため、エージェントは実行できません。
| コマンド | 目的 |
|---|---|
twinmeup init | 名前とパスフレーズを設定します |
twinmeup lesson confirm、reject、revise、retire | ツインが学習した内容を決定します |
twinmeup grant add、revoke | 権限を付与または取り消します |
twinmeup approvals approve、decline | エージェントからの操作リクエストに対する判断を下します |
twinmeup eval create、add-case、from-episode、freeze | 留保評価セットを作成します |
twinmeup export | ツインの持ち運び可能なバンドルを書き出します |
twinmeup erase episode | 判断と、そこから派生したすべての内容を消去します |
承認
許可されていない操作が必要なエージェントは、その操作の承認を求めて待機します。
twin_authoriseがaskを返します。エージェントは下書きを用意し、何を行うのか、またその理由を1行でまとめてtwin_request_approvalを呼び出します。twinmeup approvals listでリクエストを確認し、自分のターミナルで判断します。twinmeup approvals approve <id>またはtwinmeup approvals decline <id> --note "why"を実行します。- エージェントは
twin_approval_statusを確認し、approvedと表示された場合に限り操作を実行します。
特に指定がない限り(--uses 3、--for 1d)、承認によって、リクエストされた操作を1回、1時間だけ実行できます。フックによって適用される場合、その操作を行うツール呼び出しで承認が消費されるため、再度試すには新たなリクエストが必要です。すべての承認と却下は判断としても記録されるため、ツインはあなたの許容範囲を学習します。リクエストは再起動後も保持され、エージェントが同じリクエストを2回送ると、最初のリクエストが返されます。
書き込みツールでは、任意の request_id も指定できます。接続の切断やクラッシュ後に同じIDで再試行すると、二重に記録する代わりに、最初の結果が返されます。
対応システム
twinmeup connect <system> を実行すると、これらの各システムについて、お使いのマシン上のパスを使った正確な手順が表示されます。すべてのガイドはdocs/integrations.mdにもあります。
| システム | 接続方法 | 実環境での検証 |
|---|---|---|
| Hermes Agent | MCP サーバー、スキル、pre_tool_call フック | 接続済み、すべてのツールを検出 |
| pi | ネイティブ拡張機能:概要の注入、ツール、実行制御 | 概要を注入、ツールを呼び出し、git push をブロック |
| Claude Code | MCP サーバー、スキル、PreToolUse フック | 接続済み |
| OpenAI Codex CLI | MCP サーバー | 設定を受け付け |
| Gemini CLI | MCP サーバー | 接続済み |
| Cursor and Cursor Agent | MCP サーバー | すべてのツールを一覧表示 |
| OpenCode | MCP サーバー | 接続済み |
| Pi Durable 1.2.0 | 拡張機能(実験的) | 許可されていない push をブロック。1回の承認で push をちょうど1回許可。待機中にクラッシュして再起動しても処理が維持されることを確認 |
| VS Code (Copilot agent mode) | MCP サーバー | ドキュメントあり、未実行 |
| Goose | MCP 拡張機能 | ドキュメントあり、未実行 |
| Microsoft Agent Framework | MCP stdio ツール | ツールを一覧表示して呼び出し |
| OpenAI Agents SDK | MCP stdio サーバー | ツールを一覧表示して呼び出し |
| LangChain and LangGraph | langchain-mcp-adapters | ツールを一覧表示して呼び出し |
| その他 | MCP、または CLI ブリッジ経由の OpenAI および Anthropic の関数スキーマ |
2026年10月に、各システムの最新リリースを対象に確認しました。ホストの確認は 0.1.0 で実行しました。0.2.0 では同じ MCP サーバーに2つのツールが追加され、Pi Durable の確認は 0.2.0 で実行しました。フレームワークの確認はscripts/interop/frameworks.pyで再現できます。「未実行」と記されたシステムで動作させられましたか?方法をお知らせください。
MCP を使わない場合は、関数呼び出しスキーマをエクスポートし、CLI 経由で呼び出しを実行します。
twinmeup tools schema --format openai > twin-tools.json
twinmeup --actor agent:my-bot tools call twin_authorise '{"workflow": "general", "action": "email.send"}'
自分の分身を育てる
まずは、見積もりの確認や問い合わせのトリアージなど、よく繰り返すワークフローを1つ選んで始めましょう。
1. 絶対に譲れない条件を書き出します。 これらはすべての概要に引き継がれ、優先順位付けによって除外されることはありません。
twinmeup probes onboarding # questions worth answering for a new workflow
twinmeup lesson propose --workflow quote-review --kind boundary \
--statement "Never instruct a contractor without my written approval." \
--origin written_rule --confirm
2. 実際の判断を記録します。 エージェントは作業中に twin_record_decision を使って記録します。examples/を参照して、JSON から自分で追加することもできます。自分で追加した記録にはあなたの名前が付くため、パスフレーズの入力が求められます。
twinmeup episode add examples/episode.quote-review.json
twinmeup episode gaps <episode-id> # what the record does not yet explain
3. 提案内容を確認します。 あなたが承認するまでは、エージェントの提案に権限はありません。
twinmeup lesson list --status candidate
twinmeup lesson confirm <lesson-id> --note "Yes, always"
twinmeup lesson revise <lesson-id> --statement "Only for quotes over budget"
4. 権限は必要最小限に付与し、有効期限を設けます。
twinmeup grant add --workflow quote-review --action draft.prepare --expires 2026-12-31
twinmeup grant list
学びには fact、criterion、exception、escalation、procedure、boundary、preference の7種類があります。それぞれに、明文化されたルールなのか、あなたから聞き取った内容なのか、モデルが推論したのか、修正から学んだのかが記録されます。
効果を測定する
自分に似た話し方をするからといって、分身を信頼してはいけません。まだ見ていない判断を使ってテストしてください。
twinmeup eval create --name holdout --workflow quote-review
twinmeup eval from-episode <set-id> <episode-id> # or: eval add-case <set-id> case.json
twinmeup eval freeze <set-id>
export OPENROUTER_API_KEY=... # or use endpoint: with a local model
for arm in generic rules twin; do
twinmeup --actor agent:eval eval run <set-id> --arm $arm --responder openrouter:<model>
done
twinmeup eval report <run-id>
それぞれのケースには、同じモデルを使って3通りの回答を作成します。
| 条件 | モデルに与える情報 |
|---|---|
generic | タスクと選択肢 |
rules | さらに、明示的に書き出したルール |
twin | さらに、保留したケースを除き、あなたが確認したすべての情報と過去の判断 |
分身が役に立つと言えるのは、rules 条件を上回った場合だけです。レポートには、あなたの選択との一致度と、分身が適切にエスカレーションした頻度が表示されます。また、サンプル数が少なすぎて有意な判断ができない場合には警告が表示されます。証拠が蓄積されるにつれて、twin_track_record はワークフローを observe から draft、さらに supervised へと進めます。段階はあくまで助言であり、権限ではありません。自律性をさらに高めるには、あなたからの明示的な許可が必要です。
docs/pilot-guide.mdでは、1つのワークフローを対象にした6週間のパイロットについて説明しています。
セキュリティモデル
- 人間のみが行える操作には、パスフレーズが必要です。 パスフレーズはソルト付きの scrypt ハッシュとして保存され、エージェントの引数からではなく、ターミナルから読み取られます。
- エージェントが自分をあなたとして設定することはできません。 保護されていない複製の設定は、実際のターミナルから行う必要があります。
- 予約済みのアクション。
twin.配下のアクションは許可できないため、エージェントにツイン自体の操作権限を与えることはできません。 - 承認は、1つのアクションに対して1回限りです。 承認または却下できるのは、パスフレーズを使うあなただけです。承認で許可されるのは、要求されたアクションそのものに限られ、あなたが別途指定しない限り、1回、かつ1時間有効です。フックが適用される環境では、ツール呼び出しごとに新たな試行となるため、ホストが再利用した ID が使用済みの承認を再利用することはできません。
- 適用に失敗した場合は、常に拒否されます。 フックが判定に到達できない場合、ツール呼び出しはブロックされます。サンプルのアクションマップでは、人間のみが行えるコマンドの実行、ツインのストアへの書き込み、フックを登録するホスト設定の編集も、エージェントには許可されません。
- 改ざんを検知できる監査ログ。 書き込みはすべてハッシュチェーンに追加されます。
twinmeup audit verifyで検証できます。 - 署名済みで再現可能なリリース。 パッケージは GitHub Actions でビルドされ、信頼された公開とアテステーションを使って PyPI に公開されます。長期間有効なトークンはありません。
- 制限を正直に説明します。 Twin Me Up はあなたとして実行されます。あなたのユーザーとして動作するプログラムは、どれもあなたのファイルを読み取ることができます。パスフレーズによって、エージェントがツイン独自のコマンドを使ってあなたとして操作することを防ぎ、フックによって管理対象のツール呼び出しを停止できますが、どちらもサンドボックスではありません。強力に隔離するには、エージェントを別のユーザーとして実行するか、コンテナ内で実行してください。
脅威モデルと脆弱性の報告方法については、SECURITY.md をご覧ください。
それでも問題が起こりうるケース
Twin Me Up は、エージェントが実行できることを制限します。それだけでエージェントが安全になるわけではありません。
- フックがなければ、ツインは助言をするだけです。 MCP のみを使う場合、ツインはエージェントに可能な操作を伝えますが、それを無視するエージェントを止めるものはありません。適用には、アクション前フック(Hermes、Claude Code、Cursor、pi または Pi Durable)が必要です。
- フックが管理するのは、マッピングされた呼び出しだけです。 アクションマップに一致しないツールやコマンドは、ホスト独自の権限設定に従います。
- フックがなければ、承認には有効期限がありますが、1回限りではありません。 承認を消費するのはフックであるため、MCP のみを使う場合、承認されたアクションは期限切れになるまで許可されます。
- 許可はサンドボックスではありません。 許可されたアクションは、エージェントのすべての権限で実行されます。
- 再試行が安全なのは、
request_idがある場合だけです。 これを指定せずに書き込みを再試行すると、記録が重複することがあります。 - あなたのパスフレーズが境界です。 パスフレーズとあなたのターミナルにアクセスできる人は、教訓を確定し、要求を承認できます。エージェントにパスフレーズが渡ることはなく、侵害されたマシンは対象外です。
- ファイルは非公開ですが、暗号化されていません。 ストアと設定を読み取れるのは、あなたのユーザーアカウントだけです。保存データの暗号化はまだ組み込まれていません。
- 予測は同意ではありません。 ツインはあなたの判断方法を学習しますが、あなたの回答の予測を承認として扱うことはありません。
あなたのデータ
- すべてのデータは
~/.twinmeupに保存されます(移動するにはTWINMEUP_HOMEを設定してください)。ファイルを読み取れるのはあなただけです。 twinmeup export twin.bundle.jsonは、持ち運び可能なバンドルを書き出します。保留評価の回答は、あなたが要求しない限り封印されたままです。twinmeup erase episode <id> --reason "..."は、判断と、そこから派生したすべての教訓、引き継ぎ、評価ケースを削除し、チェーンの有効性を保ちながら監査ログからその情報を墨消しします。- ツイン自体がモデルを呼び出したり、データを外部に送信したりすることはありません。ネットワーク呼び出しが発生するのは、あなたが設定する評価応答器のみです。
研究
コードを書く前に、人間のデジタルツイン、専門知識の移転、AI による支援に関する主要な研究を確認しました。主な結果は次のとおりです。
| 知見 | 出典 |
|---|---|
| インタビューに基づくエージェントは、未使用のアンケート項目で生の正解率 65.67% を達成しました。一方、本人たちの一貫性は 79.53% でした | Park et al., arXiv:2411.10109v3 |
| 個人が新しい質問にどう答えるかを予測するのははるかに困難です。同じ人が 2 回回答した場合の 0.446 に対し、完全一致の正解率は 0.300 でした | arXiv:2603.29890v1 |
| 専門家は、手順のステップの 44% を促されずに説明し、促された場合は 66% を説明しました | PubMed 24667500 |
| AI による支援は生産性を平均 15% 向上させましたが、労働者間で大きな差がありました | arXiv:2304.11771v2 |
| 制限のない AI 支援を取り除いたところ、学生の成績は対照群を 17% 下回りました | PNAS, Bastani et al. |
だからこそ、ツインは権限を推測せず、学習にはあなたの確認が必要です。また、省略された理由について追加質問を行い、印象を頼りにせずベースラインと比較して評価します。すべての出典と、規制上の指針(職場での感情推定を禁じる EU AI Act の規定を含む)を記載したレビュー全文は、docs/research.md にあります。
コマンドリファレンス
すべてのコマンド
| コマンド | 目的 |
|---|---|
twinmeup init | ツインを設定します。名前とパスフレーズを登録します |
twinmeup doctor | 設定、パスフレーズ、ストア、監査チェーン、ライブ MCP ハンドシェイクを確認します |
twinmeup version | インストール済みバージョンを表示します |
twinmeup status | 記録数と監査チェーンの状態を表示します |
twinmeup connect <system> | エージェントシステムへの接続手順を表示します(すべて表示するには --list) |
twinmeup brief | エージェントがプロンプトに埋め込む運用手順を表示します |
twinmeup handoff | 引き継ぎ先のエージェントまたは同僚向けの引き継ぎパケットを作成します |
twinmeup authorise | 権限を確認します。許可されている場合は 0、承認が必要な場合は 3 で終了します |
twinmeup episode add, amend, list, show, gaps | 記録された意思決定 |
twinmeup lesson propose, list, confirm, reject, revise, retire, history | 学習したガイダンス |
twinmeup grant add, list, revoke | 権限 |
twinmeup approvals list, show, approve, decline | エージェントからのリクエスト。承認と却下は人間のみが行えます |
twinmeup eval create, add-case, from-episode, freeze, list, run, report | 未使用データによる評価 |
twinmeup probes onboarding | 新しいワークフローのインタビュー質問 |
twinmeup tools list, schema, call | MCP を使わないエージェントプロトコル |
twinmeup hook pre-tool-call | ホストフック向けの強制適用 |
twinmeup action-map example, matcher, check | 強制適用マップの作成とテスト |
twinmeup skill export, show | ループの手順を説明するエージェントスキル |
twinmeup extension export pi, pi-durable | pi および Pi Durable 向けのネイティブ拡張機能(実験的) |
twinmeup audit verify, log | 改ざんを検知できる監査ログ |
twinmeup export | ポータブルバンドル(人間のみ) |
twinmeup erase episode | 関連する派生記録も含む消去(人間のみ) |
twin-me-up | uvx twin-me-up 用の MCP サーバー。コマンドを指定すると、twinmeup と同じ動作をします |
すべてのコマンドで --help を使用できます。グローバルオプションは --home、--actor、--principal、--passphrase-stdin です(自分で実行するスクリプト用)。
Twin Me Up に LLM は必要ですか?
いいえ。ツインは決定論的に動作します。保存、検索、権限管理、監査を担います。モデルはエージェント側で用意します。モデルを使うのは、モデルレスポンダーを指定した eval run の場合だけです。
これは自分のクローンですか?
いいえ。確認済みのガイダンスと記録した決定を保持し、エージェントに許可される操作を伝えます。あなたの話し方や性格を模倣したり、感情をモデル化したりするものではありません。
エージェントがツインを無視したらどうなりますか?
フックがない場合、ツインは助言を行うだけです。適切に動作するエージェントはスキルに従いますが、強制するものはありません。フック(Hermes、Claude Code、pi)または Pi Durable 拡張機能を使うと、許可されたツール呼び出しはモデルの外部でチェックされ、許可されていない呼び出しはブロックされるか、あなたの承認待ちになります。
仕事で使えますか?
はい。ご自身のツールとして使えます。組織が従業員向けにツインを導入する場合は、適法な根拠、通知、データ保持について独自に評価し、それぞれのツインの所有者と、取り消し権限を持つ人を明確にする必要があります。職場のモニタリングにおいて、同意が妥当な根拠となることはほとんどありません。docs/research.md をご覧ください。
twinmeup と twin-me-up のどちらを入力すればよいですか?
どちらでもかまいません。twinmeup は CLI です。twin-me-up はパッケージ本来の名前です。twin-me-up doctor のようなコマンドを指定すると、twinmeup と同じ動作をします。コマンドを指定しない場合は MCP サーバーが起動します。エージェントホストと uvx twin-me-up はこの方法で実行します。
アップグレードするにはどうすればよいですか?
uv tool upgrade twin-me-up または pipx upgrade twin-me-up を実行します。リリース直後に uv がアップグレード対象はないと表示する場合は、インデックスのキャッシュを参照しています。uv cache clean twin-me-up を実行してから、もう一度試してください。新しいバージョンを初めて開くと、ツインはそのストア形式に移行します。移行後は古いバージョンで開けなくなります。twinmeup version と twinmeup doctor で確認してください。
複数の人で1台のマシンを共有できますか?
各人にそれぞれ独自の TWINMEUP_HOME を割り当ててください。1つのツインを使うのは1人です。
ロードマップ
- 各ホストのフックインターフェースが対応可能になり次第、対応するホストを増やして強制適用フックを提供
- ストアの保存データの暗号化
- ツインをマシン間で移動するための署名付きバンドル
- レッスンと承認を扱う小規模なローカルレビューアプリ
- VS Code、Goose、Windows 向けの検証済みガイド
- Pi Durable 拡張機能を実験段階から脱却させ、pi のコーディングツール向けの検証済みマップを提供
issues と discussions で進捗を確認したり、作業に参加したりできます。
コントリビューション
誤字の修正から新しいエージェント連携まで、コントリビューションを歓迎します。 Good first issues は取り組みやすい内容です。CONTRIBUTING.md では、セットアップ、1コマンドでのチェック、レビューの進め方について説明しています。セキュリティ上の問題は、SECURITY.md に記載の方法で非公開に報告してください。
クレジットとライセンス
Twin Me Up は GitDakky が作成し、 Apache License 2.0 のもとで公開されています。再配布または改変して利用する場合は、元の作者を記載した NOTICE ファイルを保持する必要があります。研究で使用する場合は、GitHub の「Cite this repository」ボタンから引用文をすぐに作成できます。
Twin Me Up が役に立った場合は、スターを付けると、ほかの人にも見つけてもらいやすくなります。
Model Context Protocol 上に構築されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。