Codex
CodexデスクトップアプリとCLIは同じメモリ設定を共有するため、Codexは過去の決定を記憶し、コンテキストを見つけ、すべてのセッションから学習します。
エージェント向け
この行をエージェントに渡してください。 まずユニバーサルインストールスキルを使用する必要があります。 このページは動作とトラブルシューティングのリファレンスとして残ります:
Read https://mem.nowledge.co/SKILL.md and follow the instructions to install or update Nowledge Mem for Codex. Verify with nmem status and the Context Bundle or Working Memory check, then summarize what changed.ハイブリッド Codex セットアップ
最新のCodexで最良の結果を得るには:プラグインをインストールし、同梱のNowledge Mem MCPサーバーを有効にしたまま、フックセットアップを一度実行します。 SessionStartは現在のNowledgeコンテキストを注入し、プロンプトルーティングは過去の作業をクロスツールのソースに向け、MCPはCodexに低摩擦の検索および書き込みツールを提供し、Stopフックは実際のトランスクリプトをキャプチャします。
コンテキストを失うことなく、Codex、Claude Code、Gemini、Cursorを切り替えられます。 Codexパッケージは起動時にContext Bundle / Working Memoryを注入し、ローカルMCPサーバーを同梱し、継続作業を検索に向け、スレッドを自動的にキャプチャします。 Codexは依然として対象を絞った検索が有用かどうかを判断しますが、スキルの説明だけからNowledgeを選択する必要はなくなりました。 だからこそ、推奨されるセットアップはハイブリッドです:プラグイン + MCP + フック。
CodexデスクトップアプリとCodex CLIは、同じ~/.codex設定、プラグインキャッシュ、フック、MCP設定を使用します。
このガイドではcodexコマンドを使用します。
セットアップはCLIで管理されますが、インストールされたコネクタは両方に適用されます。
動作しているかどうかの確認方法
セッションを開始し、「What was I working on?」と尋ねてください。
最近のフォーカス領域と優先事項が表示されるはずです。
次に、「What did we decide before about this release?」のような継続スタイルの質問をしてください。
正常なセットアップでは、Codexはブリーフィングで止まらず、Working Memoryから検索に移行するはずです。
短いターンの後、nmem t search "phrase from that turn" --source codexがキャプチャされたCodexスレッドを見つけるはずです。
始める前に
- Nowledge Memがローカルで実行されている(インストール)か、到達可能なリモートMemサーバー
- CodexデスクトップアプリまたはCodex CLIがインストールされている
nmemCLIがPATHにある
セットアップ
nmemをインストールする
# Option 1: uvx
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx --from nmem-cli nmem --version
# Option 2: pip
pip install nmem-cliNowledge Memが同じマシンでデスクトップアプリを通じてすでに実行されている場合、最もクリーンなセットアップはSettings → Preferences → Developer Tools → Install CLIです。
プラグインをインストールする
マーケットプレイス優先のセットアップを使用する
~/.codex/plugins/cache/local/...にファイルをコピーする古い手順に遭遇した場合は、それをレガシーフォールバックとしてのみ扱ってください。
主要なパスは:マーケットプレイスを追加し、そのマーケットプレイスからプラグインをインストールし、設定で有効にします。
codex plugin marketplace add nowledge-co/community --sparse .agents --sparse nowledge-mem-codex-plugin
codex plugin add nowledge-mem@nowledge-communityCodexビルドがレガシーのトップレベルサブコマンドのみをサポートしている場合:
codex marketplace add nowledge-co/communityCodex /pluginsを開き、そこからnowledge-mem@nowledge-communityをインストールすることもできます。
Codexビルドがサポートしている場合は、スパースマーケットプレイスコマンドを優先してください。 Codexはコミュニティリポジトリ全体をクローンするのではなく、マーケットプレイスのメタデータとCodexプラグインパッケージのみを取得するため、低速なネットワークでの30秒のクローンタイムアウトを回避できます。
プラグインを有効にする
~/.codex/config.tomlに以下を記述します:
[features]
plugins = true
hooks = true
[plugins."nowledge-mem@nowledge-community"]
enabled = trueインストール後にCodexを再起動します。
プラグインに含まれるもの
現在のパッケージには、http://127.0.0.1:14242/mcp/にあるローカルNowledge Mem MCPサーバーが含まれています。
独自のmcp_servers.nowledge-memを定義した場合、Codexユーザー設定が優先されるため、リモートMemとカスタムローカルポートは明示的に保たれます。
ライフサイクルコンテキストとスレッドキャプチャを有効にする
Codexは自動起動コンテキスト、メモリルーティング、スレッドキャプチャにフックを使用します。
現在のCodexビルドは有効なプラグインからフックを自動的に読み込みます。
古いビルドでは別のplugin_hooks機能ゲートを使用していました。
セットアップスクリプトはそのホスト機能を検出し、まだ必要な場合にのみ互換性フラグを追加します。
インストールまたは更新後に、プラグインのフックセットアップを一度実行します:
HOOK_SETUP="$(find ~/.codex/plugins/cache -path '*/nowledge-mem/*/scripts/install_hooks.py' -print 2>/dev/null | sort | tail -1)"
if [ -z "$HOOK_SETUP" ]; then
echo "Hook setup was not found. Open Codex, run /plugins, install nowledge-mem@nowledge-community, then retry."
else
python3 "$HOOK_SETUP"
fiセットアップ後にCodexを再起動します。 Codexが変更されたフックのレビューを求めたら、Nowledge MemのSessionStart、UserPromptSubmit、Stopフックを信頼してください。 フックの有効化とそのコマンドの信頼は別々の安全策です。
SessionStartフックはContext Bundleを注入し、必要に応じてWorking Memoryにフォールバックします。
短いUserPromptSubmitフックは、継続、レビュー、リグレッション、リリース、コネクタ、過去の決定、正確な履歴の作業をNowledge検索にルーティングし続けます。
Stopフックはnmem t save --from codexを呼び出し、ローカルトランスクリプトを読み取り、通常のnmemクライアント設定を通じてアップロードします。
ローカルとリモートのMemは同じセットアップを使用します。
CodexがプラグインのStopフックとホストレベルのフォールバックの両方を認識した場合、フックは同じトランスクリプト状態に対する重複保存をスキップします。
同じセットアップはnmemクライアント設定も確認します。
nmemに保存されたAPIキーまたは非デフォルトのエンドポイントがある場合、~/.codex/config.tomlに管理されたCodex MCPブロックを書き込み、CodexがCLIと同じMemサーバーを使用するようにします。
Windows PowerShellでは、インストールされたセットアップスクリプトをPythonランチャーで実行します:
$HookSetup = Get-ChildItem "$env:USERPROFILE\.codex\plugins\cache" -Recurse -Filter install_hooks.py |
Where-Object { $_.FullName -like "*nowledge-mem*" } |
Sort-Object FullName |
Select-Object -Last 1
if ($null -eq $HookSetup) {
Write-Host "Hook setup was not found. Open Codex, run /plugins, install nowledge-mem@nowledge-community, then retry."
} else {
py -3 $HookSetup.FullName
}Codex Memoryも使用する場合
CodexローカルMemoryとNowledge Memは一緒に実行できますが、同じストアではありません。
Codex MemoryはローカルCODEX_HOME配下の生成された状態です。
Nowledge Memは現在のWorking Memory、正確な会話、出典付きの決定、Spaces、および接続されたすべてのAIツール間の知識を保持します。
重複学習を防ぐ
Codex Settings → Personalizationで、Allow memory generation from tool-assisted tasksをオフにします。 これにより、Nowledge MCP、Web検索、またはツール検索を使用したタスクがCodexの別のメモリジェネレーターに入らないようにします。 Codexのローカルリコールレイヤーをまだ使用したい場合は、Enable memoriesをオンのままにしてもかまいません。
同等の~/.codex/config.toml設定は次のとおりです:
[memories]
disable_on_external_context = trueこの分離がないと、CodexはNowledgeコンテキストを取得したばかりのタスクからローカルサマリーを生成する可能性があります。
その後のタスクは、現在のクロスツールソースを参照せずに、その古いローカルサマリーから回答する可能性があります。
プラグイン0.1.26以降は明示的なルーティング境界も注入しますが、分離トグルは書き込み側の重複学習ループを閉じます。
セットアップスクリプトは必要に応じてこの推奨事項を報告しますが、Codex Memory設定を勝手に変更することはありません。
CodexローカルMemoryをオフのままにすることも完全なセットアップです。 Nowledgeの起動コンテキスト、検索、蒸留、トランスクリプトキャプチャは通常どおり機能し続けます。
オプションでプロジェクトレベルのガイダンスを追加する
より強力なデフォルトメモリ動作のために、プラグインのAGENTS.mdをプロジェクトルートにコピーまたはマージします:
git clone https://github.com/nowledge-co/community.git /tmp/nowledge-community
cp /tmp/nowledge-community/nowledge-mem-codex-plugin/AGENTS.md ./AGENTS.md
rm -rf /tmp/nowledge-communityプロジェクトにすでにAGENTS.mdがある場合は、上書きせずにNowledgeセクションをマージしてください。
これは、継続の多いリポジトリでCodexに基本的な起動コンテキストチェック以上のことをさせるクリーンな方法です。
インストールされたプラグインファイルを編集しない
リポジトリ独自のAGENTS.mdをオーバーライドレイヤーとして使用してください。
パッケージのAGENTS.mdは、Codexプラグインインストールディレクトリ内でパッチを当てるファイルではなく、コピーまたはマージするソーステキストとして扱ってください。
必要に応じてリモートMemを設定する
nmem config client set url https://mem.example.com
nmem config client set api-key nmem_your_keynmemは接続設定を次の順序で解決します:
--api-url/--api-keyフラグNMEM_API_URL/NMEM_API_KEY~/.nowledge-mem/config.json- デフォルト
Memがリモートの場合、~/.codex/config.tomlの同梱ローカルMCPサーバーも上書きします:
nmem config mcp show --host codex生成されたTOMLを~/.codex/config.tomlに貼り付けるか、インストールされたプラグインが0.1.11以降の場合はフックセットアップを再実行します。
直接MCPクライアントは~/.nowledge-mem/config.jsonを自動的に読み取りません。
これによりCodex MCPとnmemが同じMemサーバーを指すようになります。
MCPはCodexに直接ツールを提供します。
nmemは依然としてプラグイン側のフォールバックフローと実際のsave-threadを支えます。
リポジトリレベルのインストール(代替)
共有マーケットプレイスソースの代わりに、ローカルCodexマーケットプレイスファイルを使用してプロジェクトリポジトリにプラグインをバンドルできます。 これにより、リポジトリをクローンした誰でもプラグインを利用できるようになります。
git clone https://github.com/nowledge-co/community.git /tmp/nowledge-community
mkdir -p .agents
cp -r /tmp/nowledge-community/nowledge-mem-codex-plugin ./.agents/nowledge-mem
rm -rf /tmp/nowledge-community
mkdir -p .agents/plugins.agents/plugins/marketplace.jsonを作成します:
{
"name": "local",
"plugins": [
{
"name": "nowledge-mem",
"source": {
"source": "local",
"path": "./.agents/nowledge-mem"
},
"policy": {
"installation": "INSTALLED_BY_DEFAULT",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}pathはマーケットプレイスファイルではなく、リポジトリルートからの相対パスです。
このローカルセットアップでは、次を使用します:
[plugins."nowledge-mem@local"]
enabled = true次に、リポジトリローカルのプラグインからフックセットアップを実行します:
python3 ./.agents/nowledge-mem/scripts/install_hooks.py更新
0.1.14より前にCodexパッケージをインストールした場合は、まずマーケットプレイスを更新してください。
現在のCodexビルドは、すでにインストールされているパッケージキャッシュを再インストールせずにマーケットプレイスのチェックアウトを更新する場合があるため、パッケージ自体が更新されるまでフックセットアップファイルや同梱フックの変更がまだ欠けている可能性があります。
(codex plugin marketplace remove nowledge-community || codex marketplace remove nowledge-community || true)
codex plugin marketplace add nowledge-co/community --sparse .agents --sparse nowledge-mem-codex-plugin
codex plugin add nowledge-mem@nowledge-communityこれは意図的にCodexスパースチェックアウトでマーケットプレイスを再追加します。
古いインストールではコミュニティリポジトリの完全クローンを使用していました。
Codexがgit clone marketplace source timed out after 30sまたはearly EOFを報告する場合、これが復旧パスです。
Codex /pluginsからnowledge-mem@nowledge-communityを更新または再インストールすることもできます。
パッケージ更新後にCodexを再起動します。
パッケージ自体が更新された後、フックランタイムを更新します:
HOOK_SETUP="$(find ~/.codex/plugins/cache -path '*/nowledge-mem/*/scripts/install_hooks.py' -print 2>/dev/null | sort | tail -1)"
if [ -z "$HOOK_SETUP" ]; then
echo "Hook setup is still missing. Reinstall nowledge-mem@nowledge-community from Codex /plugins, then retry."
else
python3 "$HOOK_SETUP"
fiマーケットプレイスがまだ登録されていない場合は、次を実行します:
codex plugin marketplace add nowledge-co/community --sparse .agents --sparse nowledge-mem-codex-plugin || codex marketplace add nowledge-co/community次にCodexを再起動します。
リポジトリローカルの@localソースを使用している場合は、代わりにそのローカルソースパスを更新してください。
スキル
プラグインスキルはハイブリッドセットアップでも重要です。 これらはCodexにメモリをいつ使用するかを教え、MCPはCodexが行動を決定した後の低摩擦の実行パスを提供します。
| スキル | トリガー | 機能 |
|---|---|---|
$nowledge-mem:working-memory | セッション開始、「what am I working on」 | 毎日のWorking Memoryブリーフィングを読み込み、利用可能な場合はMCP read_working_memoryを優先します |
$nowledge-mem:search-memory | 過去の作業、過去の決定、「why did we...」 | 段階的な検査でメモリとスレッドを検索し、利用可能な場合はMCP検索を優先します |
$nowledge-mem:save-thread | 手動保存リクエスト、またはフックセットアップが利用できない場合 | nmem t save --from codexによる実際のCodexトランスクリプトインポート |
$nowledge-mem:distill-memory | 決定、学習、手順が浮上 | 永続的な洞察をメモリに積極的に保存し、利用可能な場合はMCP書き込みを優先します |
$nowledge-mem:status | 「Is Mem working?」、エラー | サーバー接続と設定を確認します |
Codex用Nowledge FS
Nowledge FSはKnowledge Treeの背後にある共有のパス優先レイヤーです。
これはCodex専用の機能ではありません。
CodexはMCPサーバーを通じて同じレイヤーをmem_fsで使用できます。
これはメモリ、スレッド、wikiページ、ワーキングメモリ、アクティビティ、ソース、アーティファクトにわたるパス優先ビューです。
mem_fs: recall "why did we change token refresh?" --in /memories -k 5
mem_fs: cat /memories/by-id/<id>.memory.md
mem_fs: ls /memories/by-label/authMCPが利用できない場合は、CLIを使用します:
nmem fs recall "session token strategy" --in /memories -k 5
nmem fs grep "JWT rotation" /memories
nmem fs cat /memories/by-id/<id>.memory.mdファジーな意図にはrecall、メタデータ制約にはfind、正確な文字列にはgrep、大きな本文を読み込む前にstat、有用なパスが見つかった後にcatを使用します。
grepはデフォルトで大文字と小文字を区別しません。
正確な大文字と小文字には--case-sensitiveを、正規表現には-Eを追加します。
このプレビューリリースはAPIベースで、デスクトップ、Web、リモートセットアップで動作します。
実際のフォルダとしてマウントすることは後のフェーズで計画されています。
nmemの直接使用
nmemはユニバーサルフォールバックであり、実際のCodexスレッドインポートパスであり続けます。
Stopフックは同じコマンドを自動的に使用します:
nmem --json wm read
nmem --json m search "auth token rotation" --mode deep
nmem --json t save --from codex -p . -s "Finished the auth refactor."
nmem --json m add "JWT refresh failures came from clock skew." --title "JWT refresh failures traced to clock skew" --importance 0.9 --unit-type learning -l auth -s codexデフォルトでは、nmem t save --from codexは~/.codexからセッションを読み取ります。
Codexホームが別の場所にある場合は、CODEX_HOMEを設定すると、保存パスが自動的に従います。
古いCodexセッションをインポートするには、まずプレビューします:
nmem t sync --from codex --all-projects --limit 20次にインポートします:
nmem t sync --from codex --all-projects --apply1つのプロジェクトだけが必要な場合は、--all-projectsの代わりに-p /path/to/projectを使用します。
このコマンドはローカルCodexトランスクリプトファイルを読み取り、nmemで設定されたMemサーバーに書き込みます。
カスタムプロンプトからの移行
以前にnowledge-mem-codex-promptsを使用していた場合、プラグインはプロンプトが行っていたすべてをカバーします:
- プラグインをインストールします(上記のセットアップを参照)。
- 古いプロンプトを削除します:
rm ~/.codex/prompts/{read_working_memory,search_memory,save_session,distill}.md - プラグインスキルがプロンプトを1対1で置き換えます。
| 古いプロンプト | 新しいスキル |
|---|---|
/prompts:read_working_memory | $nowledge-mem:working-memory |
/prompts:search_memory | $nowledge-mem:search-memory |
/prompts:save_session | $nowledge-mem:save-thread |
/prompts:distill | $nowledge-mem:distill-memory |
| (なし) | $nowledge-mem:status |
トラブルシューティング
「Command not found: nmem」
pip install nmem-cliでインストールするか、uvx --from nmem-cli nmemを使用します。
Getting Startedを参照してください。
「Cannot connect to server」
nmem statusを実行し、リモートセットアップの場合はnmem config client showを実行します。
Remote Accessを参照してください。
スキルが表示されない
プラグインのインストール後にCodexを再起動します。
3つのことを確認します:マーケットプレイスが追加されたこと、nowledge-mem@nowledge-communityがcodex plugin addで、または/pluginsからインストールされたこと、~/.codex/config.tomlに[features] plugins = true、hooks = true、[plugins."nowledge-mem@nowledge-community"] enabled = trueがあること。
古いホストではplugin_hooks = trueも必要になる場合があります。
手動でフラグを追加するのではなく、セットアップを再実行してその要件を検出させてください。
意図的にリポジトリローカルソースを使用する場合は、[plugins."nowledge-mem@local"]を使用します。
Codexがunknown field description, expected hooksと言う
プラグインパッケージを0.1.19以降に更新し、Codexを再起動します:
(codex plugin marketplace remove nowledge-community || codex marketplace remove nowledge-community || true)
codex plugin marketplace add nowledge-co/community --sparse .agents --sparse nowledge-mem-codex-plugin
codex plugin add nowledge-mem@nowledge-communityこの警告は、hooks/hooks.jsonの余分なメタデータを拒否する厳格なCodexフックパーサーから発生しました。
現在のパッケージはそのファイルをスキーマのみに保っています。
WSL内でCodexを使用する
Codexを実行するのと同じWSLディストリビューションからCodexプラグインをインストールおよび更新してください。
WindowsデスクトップアプリはWSL Codexプラグインが古いことを表示できますが、Windowsで更新を安全に実行することはできません。
それは間違ったシェル、プラグインキャッシュ、Python、~/.codexホームを使用することになるからです。
Memから更新コマンドをコピーし、WSL内で実行してから、そこでCodexを再起動します。
起動コンテキストまたはCodexスレッドが自動的に表示されない
フックセットアップを再度実行し、Codexを再起動します:
HOOK_SETUP="$(find ~/.codex/plugins/cache -path '*/nowledge-mem/*/scripts/install_hooks.py' -print 2>/dev/null | sort | tail -1)"
test -n "$HOOK_SETUP" && python3 "$HOOK_SETUP"セットアップは現在のフック機能を有効にし、まだそれを公開しているホストにのみレガシープラグインフックゲートを追加し、まだ~/.codex/hooks.jsonを必要とするCodexビルドのためにホストレベルのStopフォールバックを維持します。
/hooksを開き、Nowledge MemのSessionStart、UserPromptSubmit、Stopフックが両方とも有効で信頼されていることを確認します。
信頼は意図的にユーザーが所有するため、セットアップはそれをバイパスしません。
codex mcp listがNot logged inを表示する
nmemをMemアプリ/サーバーに一致するように更新し、ローカルデスクトップMemを使用する場合はデスクトップアプリからCLI設定をインストールしてから、フックセットアップを再実行します:
pip install -U nmem-cli
nmem status
HOOK_SETUP="$(find ~/.codex/plugins/cache -path '*/nowledge-mem/*/scripts/install_hooks.py' -print 2>/dev/null | sort | tail -1)"
test -n "$HOOK_SETUP" && python3 "$HOOK_SETUP"codex mcp login nowledge-memを実行しないでください。
そのコマンドはOAuth MCPサーバー用です。
Nowledge Memはnmem config mcp show --host codexによって生成されたURLとヘッダーを使用します。
「plugin is not installed」
codex plugin marketplace add nowledge-co/community --sparse .agents --sparse nowledge-mem-codex-plugin(またはレガシーCodexではcodex marketplace add nowledge-co/community)を実行し、codex plugin add nowledge-mem@nowledge-communityで、または/pluginsからインストールしてから、~/.codex/config.tomlのプラグインキーを確認します。
Working Memoryを読み取るだけで、検索や蒸留をしない
パッケージを0.1.26以降に更新し、フックセットアップを再実行し、同梱のnowledge-mem MCPサーバーとUserPromptSubmitフックがCodexで表示されることを確認します。
CodexローカルMemoryが有効な場合は、Allow memory generation from tool-assisted tasksをオフにします。
より強力なリポジトリ固有の動作には、パッケージのAGENTS.mdをプロジェクトルートにマージします。
Memがリモートまたはデフォルトのローカルポートにない場合は、~/.codex/config.tomlにmcp_servers.nowledge-memを追加して同梱エンドポイントを上書きします。
