記憶を失うClaude Codeに、Obsidianで外部の脳を持たせる

Claude Codeを使っていて一番もったいないと感じるのが、セッションをまたぐと記憶が消えることだ。前回ハマったポイントも、好みも、プロジェクトの前提も、新しい会話を始めると全部最初から説明し直しになる。優秀なんだけど、毎回初対面のコールセンターに電話している感覚に近い。

これをObsidianを外部記憶にして解決する、という手法を動画で見かけた。面白そうだったので、自分の環境に合わせて組んでみた。半信半疑だったけど、思った以上にちゃんと回っている。なにせ今これを書いているClaude Code自身が、Obsidianの中を読んでから書いている。

やりたいこと

公式のメモリ機能もあるにはあるが、いくつか不満がある。

  • 何を覚えているか中身が見えない
  • 記憶する基準がAI任せで、自分でルールを決められない
  • Claudeの中に閉じていて、他のツールに持ち出せない
  • 全部が一つの記憶に混ざって、プロジェクトごとに分けられない

やりたいのはこの逆だ。中身が全部見えて、ルールを自分で決められて、ただのMarkdownだからどこにでも持ち出せて、フォルダで領域を分けられる。Obsidianのvaultはローカルのテキストファイルの集まりなので、この条件に全部当てはまる。

仕組み

特別なものは使っていない。ObsidianのvaultフォルダとClaude Codeの設定ファイル一枚だけだ。設定ファイルにvaultとの連携ルールを書く。やることは大きく二つ、読み取りと書き込みだ。

ObsidianをClaude Codeの外部記憶にするループ図: セッション開始→vault読み取り→作業→vault書き込み→次セッションへ引き継ぎ。vaultはKnowledge/Decisions/Projects/Preferencesに分かれ、gitで30分ごとにバックアップ

読み取り(セッション開始時)

新しい会話の最初に、必ずvaultを見に行かせる。

  1. 過去に指摘されたミスをまとめた mistakes.md(後述)とユーザープロファイルを最初に読む
  2. 質問に関連するキーワードでvaultを検索する
  3. ヒットしたノートを読む
  4. それを踏まえて回答する

これで「前提を毎回説明し直す」がなくなる。明らかにvaultと無関係な単発質問(「今何時?」みたいなもの)はスキップしてよい、という例外も入れてある。

書き込み(その場で記録)

「後で書く」は機能しない。会話の流れの中で、条件に当てはまったらその場で書かせる。記録先はフォルダで分けている。

フォルダ書くもの
Knowledge/バグの原因と解決策、ツールの新発見、ハマって解決したこと
Decisions/複数の選択肢から一つを選んだ判断と、その理由
Projects/プロジェクトの状態・バージョン・概要の変化
Preferences/新しく分かったユーザーの好み・作業スタイル

ノートには必ずYAMLフロントマター(日付・タグ・プロジェクト・関連ノート)を付け、関連するノートには [[wiki link]] でリンクを張らせる。こうしておくと、後でObsidianのグラフビューで知識のつながりが見えるようになる。

サイレントにしない

地味だが手放せないのが、読み書きしたら必ずユーザーに報告させるルールだ。「Obsidian: Knowledge/xxx.md を読みました」「書き込みました」と毎回明示する。裏で勝手にファイルを触られると何が蓄積されているか分からなくなるので、透明性は最初から条件に入れた。

mistakes.md で同じミスを繰り返さない

一番気に入っているのが、ミスを記録する Knowledge/mistakes.md だ。これだけは特別扱いで、上の読み取りルールで毎セッションの最初に必ず読ませている。セッション中に間違いを指摘されたら、それをルールの形でここに書き残させる。

ただし何でもかんでも書くと表が膨らんで使い物にならなくなるので、追記する条件を三つに絞っている。

  1. ユーザーからの明示的な訂正である(自分で勝手に気づいた、ではない)
  2. 繰り返し起こりうるパターンである(一度きりの偶発ではない)
  3. 具体的な「する/しない」で書ける

形式も決めてある。実際に溜まっているものを一つ挙げるとこうだ。

2026-06-20: アプリのUI機能をうろ覚えで断言した
NG Action: 「Googleカレンダーにコピー」ボタンがある、と検証せず案内した(実在しなかった)
Correct Action: 機能の有無は、案内する前に公式ヘルプ等で現在の仕様を確認する
Trigger: 特定アプリの操作方法・機能の有無を説明するとき

これを入れてから、同じ種類のミスを繰り返す頻度が明らかに減った。注意したことが次のセッションに引き継がれるので、何度も同じ小言を言わなくて済む。地味だけど、これが一番ストレスが減ったポイントかもしれない。

しかもこの記録、ただ貯まるだけじゃない。別の作業をしている最中に、Claudeがこっちが何も言わないうちに「mistakes.mdの教訓に従って、複数行スクリプトは一度ファイルに書きます」と宣言して、自分でやり方を変えたことがあった。前に一度だけ叱った「入れ子ヒアドキュメントで出力を壊す」を、ちゃんと先回りして避けてきたわけだ。貯めた記憶が、次の手つきを変えている。ここまでくると外部記憶というより、過去の失敗から学ぶ同僚に近い。

実際に積み上がったもの

数日使っただけで、vaultにはこんなノートが溜まった。どれもClaude Codeとの作業中に自動で書かれたものだ。

  • Knowledge/obsidian-launchd-backup-tcc.md — vaultの自動バックアップがmacOSのTCC(プライバシー保護)で動かなかった件。原因はcronやlaunchdから起動したプロセスが ~/Documents 配下の権限を持たないこと。フルディスクアクセスにスクリプトではなく /bin/bash/usr/bin/git を追加して解決、という顛末がそのまま残っている
  • Knowledge/timetree-google-sync.md — TimeTreeの予定をGoogleカレンダーへ同期する仕組みの技術知見。公式APIが終了している話から、events.importiCalUID をキーにupsertとして機能するという肝の部分まで
  • Decisions/2026-06-20-timetree-sync-approach.md — その同期で複数案からどれを選んだかの判断

特にTCCの件は、次に同じ現象に出くわしたとき確実に役立つ。一度ハマって解決したことを、人間が覚えておく代わりにvaultに置いておける。

記憶そのものをバックアップする

外部脳が育つほど、それを失うのが怖くなる。なのでvault自体をgitで30分ごとに自動コミット&プッシュするようにした。これも作りながらTCCにハマったので、その知見が上の obsidian-launchd-backup-tcc.md というわけだ。記憶を貯める仕組みを作る過程で、また一つ記憶が増えた。

この記事自体がそうだ

一番の実例は、この記事だ。「ObsidianをClaude Codeのナレッジベースにした話を書いて」とだけ頼んだら、Claude Codeはまず mistakes.md とプロフィールを読み、関連するキーワードでvaultを検索し、着想元の動画ノートやTCCの知見ノートを引っ張ってきてから書き始めた。何を読んだかも逐一報告してくる。

設定した読み取りルールが、そのまま記事の素材集めとして動いた格好だ。外部記憶は、引き継ぐだけじゃなく、こうやって書くときの一次資料にもなる。

振り返り

やったことを並べると大したことはない。Markdownのフォルダをいくつか作って、設定ファイルに読み書きのルールを書いただけだ。MCPもプラグインも要らない。

それでも、毎回ゼロから説明していたAIが、前回の続きから話せる相棒に変わった。コツは最初から作り込みすぎないことだと思う。まずつないで回して、「これ覚えといて」「セッション開始時にvaultを見て」と足していくと、シナプスをつなぐみたいに少しずつ賢くなっていく。動画の受け売りだが、この「脳を育てる」感覚は実際にやってみると確かにある。