mcpField
T
Twin Me Up

Twin Me Up

ローカル
github.comメモリ・ナレッジ12 週間前に更新

Twin Me Up について

Twin Me Upは、複数のAIエージェントを使う人向けのローカルなオープンソースサービスです。確認済みの指針を共有し、行動の許可を判定し、修正から得た教訓は本人の承認後に反映します。

主な機能

  1. 01確認済みの指針をエージェント間で共有
  2. 02ワークフローと範囲ごとの行動許可
  3. 03未許可の行動に承認を要求
  4. 04判断や修正から教訓を提案
  5. 05保留した判断データで評価

活用シーン

  1. 01反復ワークフローの要点をエージェントに共有
  2. 02重要な行動を承認制にする
  3. 03修正から得た教訓を確認
  4. 04指針が判断に役立つか検証

MCP 対応

MCPサーバーは、エージェントへの指針提示、権限確認、承認依頼、判断の記録、教訓の提案を行うツールを提供します。ネイティブなpi拡張機能、CLIブリッジ、関数呼び出し用スキーマもあります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"gitdakky-twin-me-up": {
"command": "uvx",
"args": [
"twin-me-up"
],
"env": {
"TWINMEUP_HOME": "<TWINMEUP_HOME>"
}
}
}
}
起動コマンドuvx twin-me-up
設定が必要な環境変数
TWINMEUP_HOMEDirectory holding your twin. Defaults to ~/.twinmeup. Run `twinmeup init` there first.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypitwin-me-up0.2.1

ツール

12

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
actionsarrayいいえ必要になると予想されるアクション。例:email.send。
workflowstringはいワークフローの slug。例:quote-review。
objectivestringはいこれから行うことを一文で記述します。
include_hypothesesbooleanいいえ未確認の提案も、明確にラベルを付けて列挙します。

詳細

Twin Me Up:すべての AI エージェントのための、あなたの仕事の分身

PyPI Python versions CI OpenSSF Scorecard ライセンス:Apache-2.0 Model Context Protocol

一度教えれば、使うすべてのエージェントがあなたらしく仕事をし、行動する前に確認します。

クイックスタート · プロンプトひとつでインストール · 仕組み · 対応環境 · 研究内容 · 安全性

Twin Me Up をインストールし、エージェントが説明を受け、メール送信前に確認し、許可されていないコードのプッシュを阻止される様子

理由

おそらく、複数の AI エージェントを使っているでしょう。どのエージェントも毎回ゼロから始まります。あなたが何を大切にしているか、決して妥協しない点は何か、どの判断を自分でしたいのかを知りません。そのため、同じことを何度も伝え、同じ間違いを繰り返し修正し、確認する前に重大なことが起きないよう願うことになります。

Twin Me Up は、小規模なローカルのオープンソースサービスです。すべてのエージェントに、次の3つの質問への共通の答えを提供します。

  1. この人は、この種の作業をどのように進めたいのか? 確認済みの指針、基準、例外、譲れない一線を、作業開始時にエージェントへ伝えます。
  2. これを実行してよいのか? ワークフローとアクションの範囲を定めた明示的な許可を設定でき、有効期限も指定できます。許可されていない操作には ask が返されます。オプションのフックを使えば、モデルの外側でこれを強制できます。
  3. 今、何を学んだのか? あなたの判断や修正が、教訓の候補になります。確定できるのはあなただけです。

これは、あなたを模したチャットボットでも、性格のクローンでも、あなたに代わって自律的に行動するものでもありません。そうした主張を裏付ける証拠はなく、その理由は研究内容で説明しています。

特徴

あなたが承認する学習エージェントが教訓を提案します。確認、修正、却下、または廃止するのはあなただけです。各教訓には、その由来、情報源、履歴が保持されます。
あなたが付与する権限エージェントは、ワークフローと指定したアクションに対する明示的な許可に基づいて動作し、必要に応じて有効期限を設定できます。予約済みの 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
ループ
  1. 状況を把握する。 作業の開始時に、エージェントは twin_brief を呼び出します。ワークフローに関する確認済みの指針を受け取ります。そこには常に境界とエスカレーションルールが含まれ、許可されている操作の一覧も示されます。
  2. 確認する。 重大な操作を行う前に、エージェントは twin_authorise を呼び出します。実行中の許可がその操作を対象としている場合に限り、回答は allow になります。それ以外の場合は ask となり、エージェントは下書きを用意してあなたに承認を求め、判断を待ちます。
  3. 学習する。 あなたが判断を下したり、エージェントを修正したりすると、エージェントはその判断または修正を記録し、そこから得られる教訓を提案します。
  4. 承認する。 キューを確認し、それぞれの教訓を承認、修正、または却下します。承認された教訓だけが、今後の概要に反映されます。
  5. 検証する。 留保した判断を固定し、ツインを2つのベースラインと比較してテストしてから、より多くのことを任せます。
エージェントが使用できるツール
ツール機能
twin_briefワークフローに関する確認済みの指針と現在の権限を取得します。作業の開始時に呼び出してください。
twin_authorise今、この操作を実行してもよいですか?適用される許可があれば allow を返し、なければ ask を返します。
twin_request_approval1つの操作について承認を求めます。あなたは自分のターミナルで判断します。
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判断と、そこから派生したすべての内容を消去します
承認

許可されていない操作が必要なエージェントは、その操作の承認を求めて待機します。

  1. twin_authorise が ask を返します。エージェントは下書きを用意し、何を行うのか、またその理由を1行でまとめて twin_request_approval を呼び出します。
  2. twinmeup approvals list でリクエストを確認し、自分のターミナルで判断します。twinmeup approvals approve <id> または twinmeup approvals decline <id> --note "why" を実行します。
  3. エージェントは twin_approval_status を確認し、approved と表示された場合に限り操作を実行します。

特に指定がない限り(--uses 3、--for 1d)、承認によって、リクエストされた操作を1回、1時間だけ実行できます。フックによって適用される場合、その操作を行うツール呼び出しで承認が消費されるため、再度試すには新たなリクエストが必要です。すべての承認と却下は判断としても記録されるため、ツインはあなたの許容範囲を学習します。リクエストは再起動後も保持され、エージェントが同じリクエストを2回送ると、最初のリクエストが返されます。

書き込みツールでは、任意の request_id も指定できます。接続の切断やクラッシュ後に同じIDで再試行すると、二重に記録する代わりに、最初の結果が返されます。

対応システム

twinmeup connect <system> を実行すると、これらの各システムについて、お使いのマシン上のパスを使った正確な手順が表示されます。すべてのガイドはdocs/integrations.mdにもあります。

システム接続方法実環境での検証
Hermes AgentMCP サーバー、スキル、pre_tool_call フック接続済み、すべてのツールを検出
piネイティブ拡張機能:概要の注入、ツール、実行制御概要を注入、ツールを呼び出し、git push をブロック
Claude CodeMCP サーバー、スキル、PreToolUse フック接続済み
OpenAI Codex CLIMCP サーバー設定を受け付け
Gemini CLIMCP サーバー接続済み
Cursor and Cursor AgentMCP サーバーすべてのツールを一覧表示
OpenCodeMCP サーバー接続済み
Pi Durable 1.2.0拡張機能(実験的)許可されていない push をブロック。1回の承認で push をちょうど1回許可。待機中にクラッシュして再起動しても処理が維持されることを確認
VS Code (Copilot agent mode)MCP サーバードキュメントあり、未実行
GooseMCP 拡張機能ドキュメントあり、未実行
Microsoft Agent FrameworkMCP stdio ツールツールを一覧表示して呼び出し
OpenAI Agents SDKMCP stdio サーバーツールを一覧表示して呼び出し
LangChain and LangGraphlangchain-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, callMCP を使わないエージェントプロトコル
twinmeup hook pre-tool-callホストフック向けの強制適用
twinmeup action-map example, matcher, check強制適用マップの作成とテスト
twinmeup skill export, showループの手順を説明するエージェントスキル
twinmeup extension export pi, pi-durablepi および Pi Durable 向けのネイティブ拡張機能(実験的)
twinmeup audit verify, log改ざんを検知できる監査ログ
twinmeup exportポータブルバンドル(人間のみ)
twinmeup erase episode関連する派生記録も含む消去(人間のみ)
twin-me-upuvx twin-me-up 用の MCP サーバー。コマンドを指定すると、twinmeup と同じ動作をします

すべてのコマンドで --help を使用できます。グローバルオプションは --home、--actor、--principal、--passphrase-stdin です(自分で実行するスクリプト用)。

## FAQ
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 上に構築されています。

コメント

MCP は初めてですか?

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

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