プロジェクトメモリ

プロジェクトメモリは、Claude Code・Codex・Gemini CLI などのエージェントが作業中に覚えた事実・決定・好みを、Nolto に保存する機能です。次のセッションや、同じプロジェクトで働くチームのエージェントに引き継げます。

CLAUDE.md / AGENTS.md に書くほどではない情報を、エージェントがエントリ単位で書き足していきます。リポジトリや Git の履歴、CLAUDE.md / AGENTS.md にすでにある情報は重ねて残しません。メモリは背景情報であり、ユーザーの指示より優先されるものではありません。

CLI 0.18.0 以降で利用できます。

しくみ

メモリの正本は Nolto のサーバーにあります。ローカルの ~/.config/nolto/projects/<id>/memory/ は読み取り専用のキャッシュで、索引の MEMORY.md とエントリごとのファイルが入ります。キャッシュを直接編集せず、書き込みには nolto memory put <file> を使います。

セッションの開始時に hook がメモリを取得し、名前と説明の索引をエージェントに渡します。エージェントは索引から必要なものを選び、nolto memory show <name> で本文を読みます。手動で最新のメモリを取得するには nolto memory pull、取得済みの索引を見るには nolto memory context を実行します。

スコープで共有する範囲を決める

スコープ残すもの・読む人書ける人
projectチームの決定や制約。プロジェクトの全員が読めます。課題を書けるメンバー以上
user本人の好みや役割。本人だけが読めます。課題を書けるメンバー以上の本人
branchリポジトリ・ブランチごとの作業中の事実。プロジェクトの全員が読めますが、索引に載るのはそのブランチで作業しているときだけです。課題を書けるメンバー以上

機能を制限したメンバー(外部メンバー)には、どのスコープも見えません。branch は作業ブランチで使い、merge 後にチームへ残すものを project に昇格するか、不要なものを破棄します。

導入する

  1. CLI ガイドに沿って CLI 0.18.0 以降をインストールします。
  2. リポジトリ内で nolto init を実行し、認証とプロジェクトの設定をします。メモリの読み書きの手順を持つ project-memory スキルも入ります。
  3. 同じリポジトリで nolto memory hook install を実行します。SessionStart の hook が設定され、セッション開始時に索引を読み込むようになります。
  4. Codex では、信頼済みのリポジトリで対話セッションを開き、/hooks からリポジトリの hook を承認します。初回だけ必要です。
  5. 次のセッションを開始すると、索引がエージェントに渡されます。
エージェント設定ファイル注意
Claude Code.claude/settings.jsonSessionStart で索引を読み込みます。
Codex.codex/hooks.json/hooks での承認が必要です。Codex 0.157.0 では hooks は既定で有効です。
Gemini CLI.gemini/settings.jsonSessionStart で索引を読み込みます。

--agent を省略すると、リポジトリ内の .claude / .codex / .gemini から対象を判定します。どれもなければ Claude Code を選びます。対象を明示する場合は --agent claude、--agent codex、--agent gemini を付けます。--agent all は省略時と同じ動きです。

nolto memory hook install --agent codex
nolto memory hook install --write-agents-md

--write-agents-md は、既存の AGENTS.md に nolto memory instructions の手順を追加します。AGENTS.md がなければ追加を省略します。Codex で hooks を無効にしている場合は、config.toml の [features] に hooks = true を設定してください。

既存のメモリを移行する

既存のメモリが入ったディレクトリを import に渡します。チームで共有する内容には --scope project、自分だけの内容には --scope user を指定します。

nolto memory import ./memory --scope project
nolto memory import ./personal-memory --scope user

ディレクトリ直下の Markdown ファイルを取り込みます。索引の MEMORY.md は対象外です。同名のエントリは上書きせずにスキップします。統合したい場合は nolto memory show <name> --fresh で最新の内容を確認し、下書きにまとめて nolto memory put <file> で保存してください。更新では、取得した revision を残します。

import は既定では AI 整理をしません。Pro+ で AI 整理を使う場合だけ、--ai を付けます。

nolto memory import ./memory --scope project --ai

画面で確かめる・直す

プロジェクトの「AI メモリ」タブで、エントリをスコープ別に確認できます。名前や説明で絞り込み、エントリを開くと本文が読めます。編集権限があれば、説明・本文の編集や削除もできます。画面からの保存では AI 整理をしません。

「履歴」を押すと変更履歴が開き、各版の内容と差分を確認して以前の版に戻せます。戻した操作も新しい版として残るため、途中の履歴は消えません。CLI では nolto memory log <name> で履歴を確認し、nolto memory revert <name> <revision> で戻します。

ブランチのメモリは、merge 後に「project に昇格」または「破棄」を選びます。CLI では、まず候補を確認してから名前か --all を指定します。

nolto memory promote --branch task/example
nolto memory promote --branch task/example ci-runs-on

不要なエントリを破棄する場合は nolto memory promote --branch task/example --discard ci-runs-on を実行します。

重複と AI 整理

AI 整理を使わないとき(Pro+ 以外、設定が OFF、--no-ai を指定、AI 整理ができなかったとき)は、新規作成時に説明が似たエントリを見つけると、書き込みを止めて候補を示します。同じ話なら既存のエントリにまとめ、別の話として残す場合だけ nolto memory put <file> --new で保存します。

Pro+ で AI 整理が有効な場合は、似たエントリがあるとき、AI が統合・置き換え・別に残すのどれにするかを判断します。プロジェクトの「設定」→「一般」にある「使う機能」カードの「メモリの AI 整理」で ON / OFF を切り替えられます。既定は ON です。1 回だけ整理を避けたい場合は nolto memory put <file> --no-ai を使います。

整理した内容も版として残ります。画面の「AI 整理の履歴」で理由と変更を確認し、エントリごとに戻せます。CLI では AI が整理: の出力と、表示された 戻す: のコマンドを確認してください。

ℹ️

AI 整理の結果が意図と違う場合は、変更を確認してください。まとめて戻す操作はありません。影響したエントリを 1 件ずつ戻します。

CI でメモリを読む

「設定」→「API トークン」の「制限付き」で「メモリ」を「読み取り」にし、対象プロジェクトを選んでトークンを作ります。CI の secret に保存し、環境変数 NOLTO_TOKEN に渡して nolto memory pull --scope project,branch を実行してください。プロジェクトはリポジトリの nolto.json で指定できます。

nolto memory pull --scope project,branch
nolto memory context

CI からは読み取りだけを行い、書き込みはしません。トークンを作った人の user スコープはそのトークンでも読めるため、CI では --scope project,branch を付けて取得します。PR の CI などブランチ名が取れない環境では、branch のエントリは索引に載りません。secret の渡し方は CI/CD 連携をご覧ください。

上限と注意

  • メモリは 1 プロジェクトにつき 1,000 件までです。
  • AI 整理は 1 人 1 日 300 回までです。書き込む本文と、似たエントリのうち最長の本文を合わせて 4,000 字を超える場合も、AI 整理をせず通常の保存処理に進みます。CLI には AI 整理なし(今日の上限) や AI 整理なし(本文が長い) と表示されます。新規作成で説明が似たエントリがあれば、保存を止めて候補を示します。
  • 名前は英小文字・数字・ハイフンで 64 字まで、先頭は英数字です。説明は索引に載せる 1 行で 200 字まで、本文は 10,000 字までです。
  • 閲覧だけのメンバーは、メモリの編集・削除・版の戻し・ブランチの昇格や破棄はできません。user も本人以外は読み書きできません。
  • セッション中に他の人が更新した内容は、次のセッションの開始まで自動では届きません。途中で取り込むには nolto memory pull を実行します。
  • Codex の sandbox からネットワークに出られず network_unavailable になった場合は、sandbox の外でコマンドを実行する承認が必要です。

送るデータ

AI 整理のときは、書き込んだ内容と、似たエントリの本文(最大 5 件)を外部の AI サービス(OpenAI)に送ります。送信した内容は学習には使われません。Pro+ 以外、または「メモリの AI 整理」が OFF の場合は、この機能のために送信しません。画面からの保存と、--ai を付けない import も AI 整理の対象外です。詳しくはプライバシーポリシーをご覧ください。