ditto について
ditto(プロジェクト名は Emulo)は、コーディングエージェントのセッションログからユーザーが入力したメッセージを抽出し、you.md プロファイルにまとめるローカルツールです。各ルールには元メッセージの日付付き引用が付きます。エージェントが作業を始める前にプロファイルを読めるよう配置できます。
主な機能
- 01Claude Code、Codex などのセッションログを読み取り
- 02日付付きの原文引用を含む you.md を生成
- 03作業、デザイン、執筆、動画ごとにファイルを分離
- 04繰り返しの依頼や訂正を集計する利用レポート
- 05ローカルモデルで全処理を完結可能
活用シーン
- 01コーディング作業の前に個人の作業ルールを読み込ませる
- 02複数セッションで繰り返し伝えた指示の確認
- 03作業種別に合わせたプロファイルの読み込み
MCP 対応
本プロジェクトは emulo mcp コマンドで MCP サーバーを起動できますが、MCP クライアントに公開されるツールの詳細は README に記載がありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| domain | enum | いいえ | 読み込むプロファイルです。既定値は work です。design | work | write |
詳細

Emulo
コーディングエージェントに入力したメッセージを掘り起こし、日付付きの根拠を添えた各ルールを you.md プロファイルにまとめ、エージェントが読める場所にインストールします。
実際のコーディングエージェントとのセッションには、まだ書き留めていないルールがすでに含まれています。「完了」の意味、見た瞬間に却下するもの、デバッグの方法、UI の設計方法、そして実際に作業しているときの文章の書き方です。
Emulo は、これらのセッション(標準で Claude Code、Codex、Copilot CLI、OpenCode、Google Antigravity のログに対応)から選んだ根拠を掘り起こし、非公開の作業プロファイルにまとめます。各ルールには自分のメッセージから抜き出した日付付きの引用が添えられ、エージェントが読める場所にインストールされます。エージェントによる抽出フローでは、作業、デザイン、文章、動画ごとにファイルを分けるため、ホストはタスクに合ったファイルだけを読み込めます。
目指すのは、最初のメッセージから自分らしい方法で動くエージェントです。これは目標であり、達成したということではありません。現時点でのテスト内容を以下に記載しています。うまくいかなかった点も含まれています。
プロファイルをインストールすることと、エージェントが実際にそれを読むことは別です。2026-09-25 にホストごとにテストしたところ、Codex ではプロジェクトの AGENTS.md を介してプロファイルがモデルに届き(--target agents --repo . を指定し、1 回のテストでエンドツーエンドに検証済み)、OpenCode では指示として読み込まれました。Claude Code では you スキルはインストールされますが、自動で開かれるとは限りません。/you と入力すると読み込まれます。Cursor、Gemini、OpenClaw、Hermes Agent では、各ホストが参照する場所にファイルが配置されますが、そこで読み込まれることは検証されていません。対応状況一覧をご覧ください。
Emulo Proof v1 の方法論は、別途承認されたエビデンスの公開が行われるまでは、実施されていない方法論です。
動画レイヤーとその由来

Claude Design で制作した広告案です。After Effects もモーションソフトウェアも使っていません。 全体をコンポジションとして作成し、動画にレンダリングしています。
これは自主制作です。Vercel から依頼されたものでも、Vercel のために制作したものでもありません。モーション表現の可能性を試すために、あるブランドを選びました。
これを掲載しているのは、この制作物を生み出したセッションのようなセッションから emulo:video が抽出されるためです。他のレイヤーも同じです。プロファイルはテンプレートではなく、実際の作業を通じて残ったものです。
インストール
Claude Code 内で:
/plugin marketplace add ohad6k/emulo
/plugin install emulo@emulo
Codex 内で:
codex plugin marketplace add ohad6k/emulo --ref v0.6.7 --json
codex plugin add emulo@emulo --json
次に emulo:mine を実行し、セッション履歴を指定します。以下では、そこで生成されるものとその理由を説明します。プラグインではなく CLI を使いたい場合は、クイックスタートをご覧ください。
オープンソースとプライバシー
Emulo は MIT ライセンスのもとで提供され、無料で、アカウントやサインインなしで利用できます。ツール自体に購入が必要なものはありません。これとは別に、サイト では任意の有料サービスを 1 つ提供しています。すでにマイニングしたプロファイルを手作業で編集するサービスですが、Emulo の利用に必要なものではありません。
セッションの抽出、マスキング、キャッシュ、プロファイル自体、エージェントアダプターはすべてお使いのマシン上にとどまります。例外はマイニングです。ホスト型モデルを指定した場合、選択されたエビデンスがそのプロバイダーに送信されます。ローカルモデルを指定すれば、処理全体がお使いのマシン上で行われます。
メモリーではありません
メモリーとは、モデルに明示的に伝えたことです。
Emulo は、ご自身のセッションで繰り返し現れるものをマイニングします。何を却下するのか、「完了」とは何を意味するのか、いつ証拠を求めるのか、実際に作業しているときにどのように話すのか、そしてタスクを中断させるエージェントの振る舞いなどです。
そのため、CLAUDE.md やルールファイルではなく、生のセッションログを読み取ります。
これまでにテストされていること
Emulo は 3 つの異なる処理を行い、それぞれ異なる基準で評価されます。
- 使用状況レポートと
emulo verifyは、ご自身のメッセージに対するテキストマッチです。数を数え、引用を追跡します。何かが起きた理由は判断できません。 - 読み込みとは、ホストがプロファイルをモデルの前に提示することです。その動作が確認されたホストは、サポートマトリックスに記載されています。
- 読み込まれたプロファイルによってエージェントの作業が改善するかどうかは、まだ示されていません。それは目標であり、実証された結果ではありません。
公開済みのテストで示されていること:
- マイニングしたプロファイルを追加すると、プロファイルがない場合と比べて、モデルの出力が変化しました。
- 予測をすべて事前に記録した 60 回の実験(2026 年 8 月)では、9 項目の比較のいずれにおいても、マイニングしたプロファイルは同じ長さの創作プロファイルと区別できませんでした。emulo.vercel.app/placebo
- 2026 年 9 月に、2026 年 7 月の後発プロファイル(2026-07-30 付)と新たに作成したプロファイルを使って再実験したところ、Fable 5.1 では 9 項目中 5 項目、Opus 5 では 9 項目中 1 項目の比較で、マイニングしたプロファイルは創作プロファイルと区別されました。emulo.vercel.app/fable
- どちらのテストも、出力が変化したか(角の丸み、色の彩度、カードコンテナー、長さ)を測定するものであり、改善したかどうかは測定していません。
1つの例であり、テストではありません
あるときの話です。同じエージェントに同じ一文を2回伝えました。「reddit に emulo を投稿するのを手伝って」。一度目は何も読み込ませず、二度目は Emulo プロファイルを読み込ませました。どちらも1回ずつ実行し、比較条件もプラセボもないため、分かるのは2つの返信がどのようなものだったかであり、プロファイルが何をもたらすかではありません。どちらの返信も、冒頭の計画とタイトルだけに絞っています。
| 🡒 エージェント | 🡒 エージェント + emulo |
|---|---|
|
こんな感じで進めます。 サブレディット: 中心となる読者層は r/ClaudeAI と r/ChatGPTCoding です。ローカルの切り口なら r/LocalLLaMA も合います。リーチを広げるなら r/cursor、r/SideProject、r/opensource です。一度にすべてへ投稿するのはやめましょう。まず1つに投稿し、タイトルを調整して、数日かけて再投稿します。 タイトル: AI コーディングのログを読み取り、エージェントが毎回のタスクの前に読む「you.md」を書くローカルツールを作りました |
まずは洞察から:分析で見つけた数が、投稿全体の軸です。「自分のセッションを1,656件読んだ」は売り込みではなく告白です。告白を読み飛ばす人はいません。仕組みではなく、自分を映すものから始めましょう。 サブレディットは5つではなく1つ。こうした情報を求めて人が集まり、議論をしに来るわけではないスキル系のサブレディットです。 タイトル: 8か月分の自分の Claude Code セッションから Claude スキルを作りました |
タイトルはエージェントが書いたものです。読み込ませたプロファイルは、筆者が2026年7月上旬に分析して作成したものです(1,656件のセッション)。
読み込ませたバージョンを r/ClaudeSkills に投稿しました。以下の数値はスクリーンショットに表示されたもので、投票バーのみが写っており、投稿本文や日付は写っていません。

200 の賛成票 · 32 件のコメント · 102K 回の表示
投稿は1件だけなので、これらの結果のどれかをプロファイルのおかげだとは言えません。
管理されたテストは emulo.vercel.app/placebo と emulo.vercel.app/fable で確認できます。概要は 現時点でテスト済みの内容 にまとめています。
見つかるもの
分析で見つかるルールの例です。それぞれ、実際のセッションから抜き出した日付入りの原文記録が裏付けています。
完了とは、実際に動くこと。 コードを編集しただけで「完了」と判断してはいけません。まず動作を見せましょう。
直すのは問題のある箇所だけ。 問題ではないコードを書き直したり「整理」したりすると、毎回却下されます。
作ったものを理解するより先に作り上げてしまい、その後、エージェントに自分たちのシステムを説明し返すよう求めます。
エスカレートするのではなく、同じ依頼を繰り返し、意図どおりになるまで続けることに苛立ちを覚えます。
こうしたルールを誰かが書き留めたわけではありません。記録付きで、ある人自身の履歴から見つかったものです。
これは一例です。あなたのものはあなたのログから抽出され、これとはまったく異なる内容になります。
使用状況レポート
マイニングでは「この人は誰か」に答えます。使用状況レポートでは、別の問いに答えます。つまり、モデルに何度も同じことを伝えているのはどこか、です。
python emulo.py --coach # every source it can find
python emulo.py --coach --source claude # Claude Code only
または、あなたが作業方法を何度も忘れると不満を伝えたときに、エージェントに実行させることもできます。npx skills add ohad6k/emulo@agent-profile-from-sessions を実行すると、この無料レポートから始まり、根拠を確認した後にのみマイニングを提案するスキルがインストールされます。
これはマイニングの前に実行され、モデルへの呼び出しは行いません。履歴が大きい場合は約1分かかります。ある Windows マシンで3回実行したところ、約1,400件のセッションで54〜71秒でした。
各チェックは、あなた自身のメッセージに対するテキスト照合です。変更せずに3回以上連続で送った依頼、「先ほど言ったように」や「伝えたとおり」といった表現を含むメッセージ、連続したほぼ同一の依頼、「違います」「それは間違っています」のような訂正で始まるメッセージの頻度を数えます。引用または貼り付けられたテキスト(フェンス付きコードブロック、> で始まる行、または二重引用符で囲まれた範囲)内の表現は数えないため、返信中のメールは、あなたが同じことを繰り返しているとは判定されません。照合だけでは、なぜ同じことを繰り返したのか、エージェントが何かを忘れていたのかは分からないため、レポートでは診断ではなく、可能性として改善策を提案します。
各検出結果には、根拠となる日付付きメッセージが表示されるため、自分で一つずつ判断できます。基準に満たないチェックについても、件数を添えて表示されるため、結果が問題なしの場合も、何も表示されないのではなく、結果として確認できます。
読み取るのはあなたが入力したメッセージだけで、Emulo が保持している情報もそれだけです。コスト、トークン、ツール呼び出し、エージェントが正しかったかどうかは確認できず、それらを評価することもありません。
カード
エージェントによるマイニングのフロー(run emulo または emulo:mine)では、card.json も書き出します。emulo --card <card_path> を実行すると、共有可能なカードが生成されます。カードには、アーキタイプ、異なるセッションの根拠数で順位付けされた主要な法則、カバレッジ統計、そして鋭い真実が1つ含まれます。emulo plugin status を実行すると、card_path が表示されます。RUN_ME.md のパスでは you.md のみが書き出されるため、表示できるカードはありません。

このカードは、この README の別の箇所で引用されている2026年7月上旬のプロフィールとは異なるマイナー実行によるものです。そのため、セッション数とトークン数は異なります。
カードまたは短い特性を1つだけ共有し、プロフィール全体は共有しないでください。
クイックスタート
各コマンドが読み取るものと書き込むもの、モデルに送られる情報、削除方法を含む手順については、docs/PROFILE-FLOW.md を参照してください。
エージェント横断のブートストラップをインストールします。Claude Code と Codex でマイニングのフローを実行します。
npx skills add ohad6k/emulo@emulo
次に、エージェントに伝えます。
run emulo
これにより、ブートストラップがインストールされ、全履歴を対象とする読み取り専用のマイニング計画が作成されます。エージェントは、モデルを使った作業を始める前にコストを提示し、承認を待つ必要があります。
プロフィールが作成されると、ブートストラップはネームスペース付きの emulo: スキルも利用できるよう、ネイティブプラグインを提案します。まず確認し、断っても問題ありません。Codex ではインストールを自動で実行できます。Claude Code では /plugin をあなた自身が入力するため、貼り付ける2行をそのまま提示します。
CLI をインストールする
エージェントを介さずに Emulo を自分で実行する場合:
pip install emulo
これにより、emulo がパスに追加されます。emulo --dry-run は何も書き込まず、見つかった内容(セッション、あなたのメッセージ、おおよそのトークン数、何らかの情報が秘匿されたメッセージの数、書き込み先のパス)を表示します。その後、emulo はコーパス、チャンク、RUN_ME.md をすぐに emulo-out/ に抽出して書き込みます。この方法ではモデル呼び出しがないため、計画や承認の手順はありません。モデルを使った処理は、RUN_ME.md をエージェントに渡したときに始まります。emulo mcp は以下の MCP サーバーを起動します。uv tool install emulo でも同じようにインストールでき、uvx emulo ならインストールせずに実行できます。
emulo はチャンクと同じ場所に RUN_ME.md を書き込みます。自己完結型なので、残りの手順はエージェントに一行送るだけです。
read emulo-out/RUN_ME.md and follow it
エージェントはチャンクごとに一度ずつ処理し、それらを統合して you.md を書き込み、インストールコマンドを表示します。貼り付けも、他にダウンロードするものもありません。
インストール先の選び方。Codex と OpenCode では、作業中のプロジェクトで emulo --install you.md --target agents --repo . を実行すると、そのプロファイルが AGENTS.md に追加されます。2026-09-25 のホスト別テストで、モデルに届くことが確認された方法です。セッションからの引用をそのまま含むプロファイル全体が、そのフォルダーの AGENTS.md に書き込まれます。このファイルは通常、コミットして共有されるため、バージョン管理の対象から外すか、コミットしない個人用フォルダーにインストールしてください。Claude Code では、emulo --install you.md --target claude を実行すると you という名前のスキルがインストールされます。Claude Code は自動で確実に開くとは限らないため、読み込むには /you(または /you <task>)と入力してください。その他の対象については、対応マトリックスを参照してください。you.md にフロントマターは不要です。スキルとしてインストールする claude と codex の対象では、ファイルにフロントマターがない場合、emulo --install がインストール先のコピーに name: you とデフォルトの説明を追加し、その旨を知らせます。フロントマターにすでに name と description があるファイルは、そのままインストールされます。どちらか一方でも欠けているフロントマターを持つファイルは拒否されます。
引用元を確認する
プロファイルを読み込む価値があるのは、その根拠が本物の場合だけです。問題となるのはルールが欠けていることではなく、実際には一度も言っていないことを自信たっぷりに引用したルールです。
emulo verify you.md
プロファイルからすべての引用を取り出し、採掘したセッション内で検索します。見つからない引用が報告され、採掘したコーパスに裏付けがないため、コマンドはゼロ以外の終了コードを返します。引用が見つからないのは、捏造されたもの、言い換えられたもの、または採掘されていない履歴に由来するものである可能性があります。単一のセッションだけを根拠とする引用は、別途フラグが付けられます。セッション一つは文脈であり、ルールではありません。機械で読み取り可能な出力にするには --json を追加します。各引用を裏付けるセッション ID も含まれます。
このチェックで確認できるのは、機械的に検証可能な内容です。ルールが曖昧か、一般的すぎるか、あるいは生きている開発者なら誰にでも当てはまるかは、依然として判断が必要であり、その判断はあなた自身に委ねられます。
ネイティブ Codex プラグイン
ネイティブプラグインは emulo:mine、emulo:work、emulo:design、emulo:write、emulo:video を追加します。
codex plugin marketplace add ohad6k/emulo --ref v0.6.7 --json
codex plugin add emulo@emulo --json
プラグインのインストールコマンド自体はログをスキャンせず、非公開のプロファイル状態を書き込まず、採掘のためのモデル呼び出しも一切スケジュールしません。エージェントに Emulo のインストール、実行、更新を依頼する場合でも、そのホストとのやり取りと、通常のシステムおよびツールのオーバーヘッドが発生します。
ネイティブ Claude Code プラグイン
Claude Code プラグインは、同じ 5 つのスキルを登録します。Claude Code 内からインストールしてください。
/plugin marketplace add ohad6k/emulo
/plugin install emulo@emulo
または、ターミナルから claude plugin marketplace add ohad6k/emulo、続けて claude plugin install emulo@emulo を実行します。2026-09-25 の時点では、どちらもヘッドレスで動作し、5 つのスキルが登録されました。他のスキルと同様に、Claude Code はいつスキルを開くかを判断します。このプラグインが提供するのは、エージェントの採掘フロー(emulo:mine または run emulo)によって有効化されたプロファイルだけです。手作業で作成した you.md や、RUN_ME.md の手順から作成されたプロファイルは対象外です。
MCP サーバー
Emulo には、任意の MCP クライアントが接続できる Model Context Protocol(MCP)サーバーも含まれています。2026-09-25 に、Claude Code が接続してツールを一覧表示し、Codex がツールを呼び出して「プロファイルがありません」というメッセージを受け取りました。ほかのクライアントではテストしていません。このサーバーは stdio 経由で MCP を実装し、load_emulo_profile という 1 つのツールを公開します。このツールは、Model Context Protocol を介して、抽出済みの作業、デザイン、執筆、または動画のプロファイルを返します。
公開パッケージからは uvx emulo mcp を、チェックアウトからは python emulo.py mcp を実行し、MCP クライアントを接続先として指定します。
{
"mcpServers": {
"emulo": { "command": "uvx", "args": ["emulo", "mcp"] }
}
}
MCP サーバーは標準ライブラリのみを使用し、独自にネットワーク接続を行うことはありません。エージェントによる抽出フロー(run emulo または emulo:mine)で有効化されたプロファイルを提供します。このプロファイルは ~/.emulo または EMULO_HOME の下にあります。RUN_ME.md のパスにある you.md はそこで有効化されないため、サーバーからは認識されません。そのファイルは代わりに emulo --install でインストールしてください。有効なプロファイルがない場合、ツールは復旧手順を返します。
実行時の動作
エージェントがあなたのために Emulo を実行すると(ブートストラップ経由の run emulo、または emulo:mine)、まず emulo plugin preflight から読み取り専用の計画を表示します。これは抜粋です。実際の出力には、選択されたセグメントとそのハッシュも一覧表示されます。
{
"valid_sessions": "--",
"post_dedupe_source_tokens": "--",
"mode": "full",
"profile_scope": "full_profile",
"quality_default": true,
"candidate_index": null,
"selected_source_tokens": "--",
"planned_worker_calls": "--",
"planned_reducer_calls": "--"
}
品質重視のデフォルト設定では、対象となる履歴をすべて読み込みます。エージェントは正確な計画を最初に表示し、ワーカーまたはリデューサーを実行する前に、あなたの承認を待ちます。CLI のインストールにある通常の emulo コマンドは別の経路であり、この計画ではなく件数を表示して、エージェントに自分で渡すためのチャンクを書き出します。キャッシュ済みのレポートは再利用されるため、表示される残りのコストは時間とともに減少する場合があります。
最初にコストを抑えて確認したい場合は、run emulo quick preview を依頼するか、--preview を使ってください。
python emulo.py plugin preflight --preview
クイックプレビューでは、履歴の一部を選択してスタータープロファイルを作成します。完全なプロファイルは作成されません。
クイックプレビューの段階は次のとおりです。
| 候補 | 新しいソーステキスト | 計画されるパスの最大数 |
|---|---|---|
| 4 × 25K | 100K トークン | 4 ワーカー + 1 リデューサー |
| 6 × 25K | 最大 150K トークン | 最大 6 ワーカー + 1 リデューサー |
| 8 × 25K | 160K トークンのハード上限 | 最大 8 ワーカー + 1 リデューサー |
凍結されたキャリブレーションでは、最も広い範囲に制限された候補でも、必須の特性 22 項目のうち 5 項目しか抽出できませんでした。そのため、今後の実行ですべての凍結済み要件 22 項目を満たさない限り、クイックプレビューを品質重視のデフォルトとは説明できません。恒久的な非プライベートのベースラインは tests/fixtures/bounded-calibration-baseline.json にあります。
最初の実際の全履歴リリースでの抽出では、同じ凍結済み要件 22 項目のうち 12 項目を抽出しました。内訳は、作業が 5/10、デザインが 5/5、執筆が 2/7 です。全履歴が品質重視のデフォルトであるのは、プレビューよりも再現率が大幅に向上するためであり、完全な個人モデルを保証するためではありません。検証済みのパックには、根拠によって裏付けられたルールのみが保持されます。不足している特性には、評価基準を緩めるのではなく、今後の抽出機能の改善が必要です。
更新時には、変更のないセグメントと証拠のハッシュが再利用されます。同一内容の更新では、Emulo の追加抽出パスは 0 件と計画されます。新しい履歴がある場合は、影響を受ける全履歴の処理と、1 件のリデューサーのみが計画されます。
これらは選択されたソースのトークン数と、計画されたワーカー/リデューサーのパス数であり、プロバイダーへの請求イベントではありません。Emulo は、プロバイダーのシステムプロンプト、ツールの通信量、オーケストレーションのオーバーヘッド、またはプロプライエタリなサブスクリプション枠の使用率を測定できません。
実験的な適応型リコール
レシートの重要度判定とスカウトのパイプラインは、明示的に --stage A を指定すれば開発者向けに引き続き利用できます。ただし、これは実験的な機能であり、Plugin リリース、品質重視のデフォルト設定、更新、キャリブレーションでは使用されません。
結果の信頼性を支えるもの
最初の箇条書きは、抽出機能によって必ず適用されるため、どの経路でも有効です。それ以外は、エージェントによるマイニングのフロー(run emulo または emulo:mine)でコード上、適用されます。RUN_ME.md の経路では、エージェントには日付入りの引用をそのまま使い、引用のないルールを削除し、一般的な埋め草を省くよう、文章で指示されるだけです。これらを強制する仕組みはなく、emulo verify you.md で確認するのも、各引用がコーパスに含まれているかどうかだけです。各経路の動作については、プロファイルのフローガイドを参照してください。
- 各ツール独自のセッションログから、あなたが入力したメッセージだけをマイニングします。Claude Code、Codex、Copilot CLI、Antigravity では JSONL を、OpenCode では SQLite データベースまたは JSON セッションファイルを読み込みます。
AGENTS.md、CLAUDE.md、メモリファイル、入力された自己紹介は、根拠となる情報源として受け付けません。 - 各制限付きワーカーは、作業、デザイン、執筆、動画を網羅した、検証済みのレポートを1つ作成します。
- 引用は短く、日付があり、既知のセッション ID に基づく原文そのままの証拠でなければなりません。
- 推論されたルールには、少なくとも2つの異なるセッションが必要です。また、利用可能な場合は、異なるソース/時間帯の組み合わせが2つ必要です。
- 矛盾のない明示的な指示が1つあれば、低頻度の根拠として残る場合があります。
- 一般的な埋め草、捏造された引用、未解決の矛盾、不完全なプロファイル一式、破損したキャッシュがある場合は、安全側に倒して処理を失敗させます。
ネイティブローダーは意図的に分離されています。
| スキル | 読み込む内容 |
|---|---|
emulo:work | コア作業プロファイル |
emulo:design | コア+デザインの好み |
emulo:write | コア+執筆スタイル |
emulo:video | コア+動画の好み |
emulo:mine | 明示的なセットアップ、更新、または詳細化のリクエストのみ |
プライバシー
Emulo の抽出機能、レダクション、キャッシュ、生成されたプロファイルはローカルに保持されます。選択したレダクション済みテキストは、選択したモデルプロバイダーによって処理されます。ローカルモデルを使えば、マイニングのフロー全体をローカルで完結できます。
emulo.py 自体は標準ライブラリのみを使う1つのファイルで、ネットワーク通信は行いません。skills.sh コマンドは、選択したブートストラップをダウンロードします。リポジトリをチェックアウトしていない場合、そのブートストラップは、SHA-256 検証後に、正確なリリースタグから emulo.py と MINING_PROMPT.md のみをダウンロードします。これらのダウンロードはログの検出前に行われ、セッションデータは読み取りません。
レダクションはベストエフォートで行われ、選択したテキストが Emulo のキャッシュに書き込まれる前に実行されます。非公開の出力は、共有する前に確認してください。共有するのはカードか短い特性を1つにとどめ、プロファイル全体や証拠の付録は共有しないでください。
厳密な境界については、SECURITY.md を参照してください。
生の単一ファイル CLI
従来の抽出機能も、引き続き利用でき、後方互換性があります。
curl -O https://raw.githubusercontent.com/ohad6k/emulo/v0.6.7/emulo.py
python emulo.py --dry-run
python emulo.py --chunks 4 --out emulo-out
手動アダプターも引き続き利用できます。
python emulo.py --install you.md --target codex
python emulo.py --install you.md --target claude
python emulo.py --install you.md --target cursor --repo .
python emulo.py --install you.md --target agents --repo .
python emulo.py --install you.md --target gemini --repo .
python emulo.py --install you.md --target opencode
agents、cursor、gemini の各ターゲットは、--repo で指定したフォルダーに書き込みます(AGENTS.md、.cursor/rules/you.mdc、GEMINI.md)。それぞれ、セッションからの原文そのままの引用を含むプロファイル全体を取得します。これらのファイルは通常、コミットされ、リポジトリで作業する全員と共有されます。バージョン管理の対象から外すか、コミットされないフォルダーにインストールしてください。
サポートマトリックス
読み込みの行は、2026-09-25 に各ホストでテストした結果に基づいています。PyPI の Emulo 0.6.6、canary プロファイル、各ホストで新規に開始したヘッドレスセッションを使用しています。ファイルのインストールと、ホストによるファイルの読み込みは別々に記載しています。
プロファイルの配置先
| サーフェス | このリリースでの状況 |
|---|---|
Codex、--target agents --repo .(プロジェクトの AGENTS.md) | 1 回のテストで、エンドツーエンドで検証済みです。実際のモデルはツール呼び出しなしで、プロファイルの canary に回答し、プロファイルなしの対照テストでは「Unknown」と回答しました。 |
OpenCode、--target opencode(グローバルの ~/.config/opencode/AGENTS.md)またはプロジェクトの AGENTS.md | OpenCode の指示に読み込まれます。プロファイルは、OpenCode がモデルに送るシステムプロンプトに含まれます。モデルが従うかどうかはテストしていません |
Claude Code、--target claude(~/.claude/skills/you/ のスキル) | インストールされます。確実な方法で自動的に読み込まれるわけではありません。多数のスキルがインストールされている場合、Claude Code はモデルに一部のスキルしか提示せず、you は含まれませんでした。/you または /you <task> と入力すると読み込まれます(検証済み) |
Codex、--target codex(スキル) | インストールされます。Codex はリクエストがスキルの説明に一致した場合にのみスキルを開きます。通常のプロンプトでは開かれませんでした。--target agents --repo . は、1 回のテストでエンドツーエンドの動作を検証済みの方法です |
| Claude Code ネイティブプラグイン | claude plugin marketplace add ohad6k/emulo と claude plugin install emulo@emulo はヘッドレスで動作し、5 つのスキルが登録されます(検証済み)。エージェントによるマイニングフローで有効化されたプロファイルのみを提供し、手動で作成したものや RUN_ME.md の you.md は提供しません |
| Codex ネイティブプラグイン | 5 つの名前空間付きスキル(emulo:mine、emulo:work、emulo:design、emulo:write、emulo:video)でローカル環境にて実証済みです。インストールして一覧表示できます。2026-09-25 には再テストしておらず、タスク中に Codex がスキルを開くかどうかもテストしていません |
MCP サーバー(emulo mcp) | プロトコルは動作します。Claude Code は接続してツールを一覧表示し、Codex は呼び出してプロファイルがない旨のメッセージを受け取りました。任意の MCP クライアントから接続できますが、ほかのクライアントはテストしていません。エージェントによるマイニングフローで有効化されたプロファイルのみを提供し、プロファイルがない場合はその旨を伝えます |
Cursor、--target cursor(.cursor/rules/you.mdc、alwaysApply) | Cursor がルールを探す場所にファイルを書き込みます。読み込みは未検証です |
Gemini、--target gemini(GEMINI.md) | Gemini がファイルを探す場所に書き込みます。読み込みは未検証です |
| OpenClaw / Hermes Agent | スキルの検出は2026年7月に以前のバージョンで確認しましたが、再検証していません。ガイド |
ログの取得元
| ソース | このリリースでの状況 |
|---|---|
| Claude Code、Codex、Copilot CLI | ローカルの JSONL セッションログからマイニングします。Copilot CLI は取得元のみで、適用先にはなりません |
| OpenCode | SQLite ストアと旧式の JSON レイアウトからセッションをマイニングします(--source opencode)。実環境で検証済みです |
| Google Antigravity | 取得元のみです。実際のローカルインストール環境でマイニングを実環境検証済みです(--source antigravity)。~/.gemini/antigravity/brain のトランスクリプトから入力プロンプトを抽出し、ハーネスのエンベロープを除去します。Antigravity がトランスクリプトを書き込むのは、プライバシー設定で操作ログが有効になっている場合のみです |
マイニングフローの実行
| サーフェス | このリリースでの状況 |
|---|---|
skills.sh ブートストラップ(npx skills add ohad6k/emulo@emulo、続いて run emulo) | Codex と Claude Code で実行できます |
更新と通知
update emulo を実行すると、安定したキャッシュを再利用し、変更された作業だけを計画します。
GitHub のスターはリポジトリをブックマークするものであり、リリースの通知登録ではありません。リリース通知を受け取るには、GitHub で Watch → Custom → Releases を選択してください。
制限事項
- Emulo は、あなたの仕事の進め方、デザイン、文章作成、動画制作の方法から抽出したルールを書き留めます。基盤となるモデル自体を賢くするものではありません。
- 履歴が少なかったり、内容が繰り返しばかりだったりすると、デザインや文章作成の項目が無効になることがあります。Emulo はペルソナをでっち上げるのではなく、対象を絞って深掘りするための指示を正確に報告します。
- プロバイダーのトークン使用量は、引き続き Emulo の正確な測定対象外です。
- これまでに公開されたテスト:emulo.vercel.app/placebo と emulo.vercel.app/fable。どちらも作業の質が向上したことを示していません。これまでにテストした内容をご覧ください。
FAQ
よく寄せられる反論のうち、3つにまとめて回答します。
「Claude にログを要約してもらえばいいのでは?」
一度の処理ではできません。規模の目安として、2026年7月初旬に筆者が抽出したプロファイル(1,656 セッション)は、主にツール出力、ファイルのダンプ、貼り付けられたエラーで構成される生ログから抽出したものです。要約を一度呼び出すだけで、そのノイズにコンテキストウィンドウが使い果たされます。Emulo はあなたが入力した言葉だけを残し、検証済みの各セグメントにそれぞれ証拠を確認する処理を行い、推定されたルールが残るには、異なる複数のセッションによる裏付けを必須とします。生成されるプロファイルには、時代遅れのワーカー数スコアではなく、セッションごとの記録が残ります。
「Claude にはすでにメモリがあるのに、なぜこれが必要なのですか?」
両方を使ってください。メモリは、モデルに伝えた内容です。厳選したメモや CLAUDE.md などで、1つのツール内にとどまります。Emulo は、Codex、Claude Code、Copilot CLI、OpenCode、Google Antigravity の対応する生セッションを読み取り、あなたが書き留めなかったこと、つまり何を拒むのか、「完了」があなたにとって何を意味するのか、どんなときに証拠を求めるのかを抽出します。出力はあなたが所有するプレーンなファイルで、サポートマトリックスには、それらのファイルの読み込みが確認されたエージェントが記載されています。
「Claude はログを30日分しか保存しないのに、なぜ9か月分もあるのですか?」
Claude Code の保持期間は設定項目(デフォルトは30日の cleanupPeriodDays)で、私の長期間の履歴には、Claude Code、Codex、Copilot CLI のセッションに加えてアーカイブも含まれています。保持期間をデフォルトのままにしている場合、古い Claude のセッションは Emulo が見る前に削除されることがあります。保持期間を延長してから、残っている履歴を抽出してください。
メンテナンス
Emulo はメンテナンスされていますが、今後の機能開発は行われません。対象は、セキュリティと編集機能の修正、告知済みのインストール方法や読み込み方法の不具合、再現可能なバグです。対象範囲と報告方法については、MAINTENANCE.mdをご覧ください。
ロードマップ
リリース済みの内容と、記録はされているものの計画されていないアイデアについては、ROADMAP.mdをご覧ください。
コミュニティ
ライセンス
MIT。Ohad Krispin(@ohad6k)が開発・メンテナンスしています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。