プロジェクトメモリ
プロジェクトメモリは、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 に昇格するか、不要なものを破棄します。
導入する
- CLI ガイドに沿って CLI 0.18.0 以降をインストールします。
- リポジトリ内で
nolto initを実行し、認証とプロジェクトの設定をします。メモリの読み書きの手順を持つproject-memoryスキルも入ります。 - 同じリポジトリで
nolto memory hook installを実行します。SessionStart の hook が設定され、セッション開始時に索引を読み込むようになります。 - Codex では、信頼済みのリポジトリで対話セッションを開き、
/hooksからリポジトリの hook を承認します。初回だけ必要です。 - 次のセッションを開始すると、索引がエージェントに渡されます。
| エージェント | 設定ファイル | 注意 |
|---|---|---|
| Claude Code | .claude/settings.json | SessionStart で索引を読み込みます。 |
| Codex | .codex/hooks.json | /hooks での承認が必要です。Codex 0.157.0 では hooks は既定で有効です。 |
| Gemini CLI | .gemini/settings.json | SessionStart で索引を読み込みます。 |
--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 整理の対象外です。詳しくはプライバシーポリシーをご覧ください。