Obsidian×Claude Codeの連携とは、Markdownのノートを置くObsidianの保管庫(vault)を、Claude Codeが読み書きできる場所として一緒に使うことです。うまく回すコツは、Claudeが動く元になる「正本」をどちらに置くかを先に決め、置き場ごとに役割を分けることです。
「Obsidianを第二の脳にして、Claude Codeに全部読ませる」という使い方はよく紹介されています。ところが、Claudeのルールやメモリまで保管庫に移すと、同期の衝突やスマホでの書き換えで、Claudeの動きの元が知らないうちに変わるおそれがあります。
この記事では、2026年11月3日に実際に組んだ構成をもとに、正本を ~/.claude に残し、Obsidianを「人が素材を入れる場所」と「人が読む写し」に使う役割分担を説明します。場面ごとの使い分け、正本を移さなかった理由、シンボリックリンクで起動したときのメモリの置き場所の実測、学びを書き戻す流れまでをまとめます。検証はmacOS上のClaude Code 2.1.317とObsidian 1.15.0で行い、公式ドキュメントも同じ日に確認しました。
結論:正本は~/.claudeに残し、Obsidianは人の置き場にする
Claude Codeの正本(CLAUDE.md・ルール・自動メモリ)は ~/.claude に置いたままにし、Obsidianは「人が素材を入れる受け箱」と「Claudeの状態を人が読む写し」の2つに使うのがおすすめです。Claudeが書くものと人が書くものを同じ場所に混ぜないことで、どちらの都合でもう一方が壊れることを防げます。
| 置き場 | 書く人 | 読む人 | 役割 |
|---|---|---|---|
~/.claude(正本) | Claude(人は会話で指示する) | Claude | ルール・メモリ・作業記録。Claudeが動く元 |
Obsidianの受け箱(例: 00_inbox/) | 人(スマホ・Mac) | 人とClaude | 外出先のメモ、記事のネタ、思いついた指示の下書き |
Obsidianの写し(例: 80_claude/) | 自動の写し(一方通行) | 人 | スマホでClaudeのメモリや作業記録を読む |
言い換えると、Obsidianは「Claudeの脳」ではなく、人とClaudeのあいだの窓口です。この分担にしておけば、Obsidian側で何が起きても、Claudeの動きの元は変わりません。
Claude Codeが読むメモの仕組み
役割を決める前に、Claude Codeが何をどこから読むのかを押さえておきます。公式ドキュメント(How Claude remembers your project)によると、セッションをまたいで引き継がれるメモは2種類です。
| 種類 | 書く人 | 置き場所 | 読み込まれ方 |
|---|---|---|---|
| CLAUDE.md | 人 | ~/.claude/CLAUDE.md(全プロジェクト共通)、プロジェクト直下の CLAUDE.md など | 起動時に毎回読む |
| 自動メモリ | Claude | ~/.claude/projects/<project>/memory/ | 索引の MEMORY.md の先頭200行か25KBまでを毎回読む。個別のファイルは必要なときに読む |
押さえておきたい点が2つあります。1つ目は、自動メモリはそのマシンの中だけにあり、ほかのマシンやクラウドとは共有されないことです(公式ドキュメントに明記)。スマホからClaudeの状態を見たいなら、何らかの方法で外に出す必要があります。2つ目は、自動メモリの <project> の部分が、gitリポジトリ(gitでなければプロジェクトのルート)から決まることです。これは後半のシンボリックリンクの話につながります。
CLAUDE.mdの書き方や @ での読み込みの文法はClaude Code上級編|MCP・Hooks・Skills・サブエージェント実践ガイド、ルールをグローバルとプロジェクトのどちらに置くかの判断はClaude Codeのルール・エージェント設計術で詳しく扱っています。
3つの置き場の役割分担
実際の構成では、置き場を3つに分けました。それぞれ「誰が書き、誰が読むか」を1つに絞っているのがポイントです。
正本:~/.claude(Claudeが書き、Claudeが読む)
ルール(~/.claude/rules/)、全体の指示(~/.claude/CLAUDE.md)、プロジェクトごとの自動メモリと作業記録は、すべてここに残します。人が直したいときも、ファイルを直接いじるのではなく、Claudeに会話で頼んで直してもらいます。正本を書き換える経路を「会話」に1本化しておくと、いつ・なぜ変わったかを追えます。
受け箱:Obsidianの00_inbox(人が書き、Claudeが読む)
外出先で思いついた記事のネタ、Claudeに頼みたいことの下書き、読んだ記事のメモを、スマホのObsidianから放り込む場所です。Claudeは頼まれたときにここを読み、必要なものを正本側へ取り込みます。新しいノートは受け箱にだけ作る、と決めておくと、既存のノートが勝手に増えたり書き換わったりしません。
写し:Obsidianの80_claude(自動で写し、人が読む)
~/.claude のメモリと作業記録を、毎朝決まった時刻に保管庫へ一方通行で写す場所です。人はスマホでここを開き、「いま何が開いているか」「Claudeが何を覚えているか」を確かめます。写しは読むためだけのもので、ここを書き換えても正本には戻りません。次の写しで上書きされます。
正本をObsidianに移さない理由
公式ドキュメントには、自動メモリの置き場所を変える autoMemoryDirectory という設定もあります。これを保管庫の中に向ければ、メモリを最初からObsidianで見られます。それでも今回は使わず、正本を ~/.claude に残しました。理由は3つです。
| 理由 | 起きうること | 写しにした場合 |
|---|---|---|
| 同期の衝突 | iPhoneとMacで同じファイルを書くと、どちらの内容が残るかを人が見ていない。Claudeが読むルールが知らないうちに変わる | 写しの内容が食い違っても正本は無事。次の写しで元に戻る |
| スマホでの誤った編集 | 移動中に指が触れてルールの一文が消えても、気づかないままClaudeがそれに従う | 写しを触っても正本は変わらない |
| 伏せ字が使えない | プロフィールの住所・電話番号などを、正本の中で伏せるとClaudeが使えなくなる | 写すときだけ伏せればよい |
同期そのものについては、Obsidianの公式ヘルプ(Sync your notes across devices)も、iCloudはiOSとmacOSのあいだの同期に使えるとしたうえで、同じ保管庫を複数の同期サービスで同期しないよう勧めています。今回、保管庫の同期をgitではなくiCloudにしたのもこのためです。iCloudの中にgitのリポジトリを置くと、iCloudとgitという2つの仕組みが同じファイルを動かすことになり、.git の中身が壊れたときに直すのが大変です。
構成:iCloudの保管庫と一方通行の写し
組んだ構成は次のとおりです。手順そのものより、どこに何を置いたかを見てください。
- Obsidianの保管庫は、iPhoneと共有するためにiCloud Driveの中のObsidianフォルダに作る(公式ヘルプが、モバイルでは保管庫をこのフォルダに置くよう案内している)
- Macでは
~/vaultからその保管庫へシンボリックリンクを張り、短いパスで開けるようにする - Claude Codeの正本は
~/.claudeのまま動かさない - 毎朝6時にmacOSのlaunchdから写しのスクリプトを動かし、
~/.claudeのメモリ・作業記録・ルールを保管庫の写し用フォルダへ写す
シンボリックリンクは次の1行で張れます。保管庫のパスは環境によって違うので、Obsidianで保管庫を作ったあとにFinderで場所を確かめてから実行してください。
ln -s "$HOME/Library/Mobile Documents/iCloud~md~obsidian/Documents/vault" "$HOME/vault"これで、iPhone・Mac・Claude Codeの3か所から同じノートを読み書きできることを確かめました。Obsidian本体は brew install --cask obsidian で入れています。
写しを作るときに守ること
写しは便利な一方で、正本にある情報をiCloudへ出すことになります。今回の写しのスクリプトでは、次の点を決めてから動かしました。
| 決めたこと | 理由 |
|---|---|
向きは ~/.claude → 保管庫の一方通行。保管庫側の変更は戻さない | 写しから正本へ書き戻す経路があると、スマホの誤操作が正本に入る |
| 中身が変わったファイルだけ書き、正本で消えたファイルは写しからも消す | 古い写しが残ると、終わった作業を「まだ開いている」と読み違える |
| 住所・電話番号・メールアドレスは伏せ字にする。伏せる元の行が決まった書式で読めなければ、写し全体を中止する | 書式が崩れたときに、伏せ字が外れたまま写るのを防ぐ |
| 書いたあとに、伏せたはずの値が残っていないかを確かめる | 伏せ方の漏れを、写したあとで見つけるため |
| お金に関わるプロジェクト、テスト用・一時フォルダのメモリは写さない | 外に出す必要がなく、出したときの損が大きい |
| 10分で打ち切り、結果をメールで知らせる | 止まったままの写しに気づけるようにする |
写しで一番大事なのは「何を写さないか」です。全部写せば見られる量は増えますが、スマホとクラウドに置く情報も増えます。読みたいのはメモリと作業記録だけ、と絞ってから写す範囲を決めると、伏せ字や除外の判断が楽になります。
シンボリックリンクで起動したときのメモリの置き場所(実測)
cd ~/vault && claude のようにシンボリックリンクを通って起動しても、自動メモリの置き場所はリンク先の実体のパスから決まりました。リンクを張る前に ~/vault で使っていたメモリは、リンクを張ったあとの会話では自動では読まれませんでした。
~/.claude/projects/ の中を見ると、同じ保管庫に対してフォルダが2つできています。
ls ~/.claude/projects | grep vault
# -Users-<ユーザー名>-vault ← リンクを張る前の会話のメモリ
# -Users-<ユーザー名>-Library-Mobile-Documents-iCloud-md-obsidian-Documents-vault ← リンクを張ったあとの会話のメモリ公式ドキュメントでは、自動メモリの <project> はgitリポジトリから、gitでなければプロジェクトのルートから決まるとされています。保管庫はgitではないので、起動したフォルダの実体のパスが使われた、という結果です。保管庫を途中でiCloudへ移した場合は、前のフォルダの memory/ の中身を新しいフォルダへ移しておかないと、それまでのメモリが読まれません。今回は手で移しました。
場面ごとの使い分け
組んで実際に動かしてみた結論は、Macの前ではClaudeに直接話すほうが早いということです。Obsidianが役に立つのは、Macから離れているときです。
| 場面 | 使うもの | やること |
|---|---|---|
| Macの前で作業している | Claude Code | 会話で頼む。ルールやメモリの変更もClaudeに頼む |
| 外出先で思いついた | スマホのObsidian(受け箱) | 記事のネタや頼みたいことを1行で残す。あとでClaudeに「受け箱を見て」と頼む |
| スマホでClaudeの状態を見たい | スマホのObsidian(写し) | 開いている作業、最近のメモリの更新を読む |
| ルールを直したい | Claude Code | 写しではなく会話で頼む。写しを直しても次の朝に戻る |
Claudeとの連携先としてはNotionも候補になります。Notionは公式のMCPでページやデータベースをClaudeに渡す形で、使い方はNotionとClaude Codeを連携する方法で紹介しています。ObsidianはただのMarkdownのフォルダなので、MCPを使わずにClaude Codeがそのまま読める、という違いがあります。
「賢くなるのはメモ」— 学びを書き戻す流れ
Obsidianを使うとAIが賢くなる、と紹介されることがあります。正確に言うと、賢くなるのはモデルではなく、モデルに読ませるメモのほうです。そしてメモは、整理しないと逆に間違いを増やします。古い数字や終わった作業が残っていると、Claudeはそれを今の事実として読みます。
そこで、Obsidianを入れたのと同じ日に、自動で動かしている作業(記事のネタ選びなど)に共通のルールを1つ足しました。
- 毎回の最初に、そのジョブの「学びの台帳」を読み、今回の判断に使う
- 前回以降に出た結果(表示回数・クリック・採否など)を確かめる
- 結果が出た分だけを、「何をしたか・結果・次にどうするか」の1行で台帳に書く(推測は書かない)
- 報告に「使った学び」と「足した学び」を1行ずつ入れる
- 月に1回、結果で否定された学びや古くなった学びを要約から外す
この台帳も正本側(~/.claude)に置き、写しでスマホから読めるようにしています。Obsidianは学びを溜める場所ではなく、溜まった学びを人が確かめる場所です。決まった手順を定期的に回す方法そのものは、Claude Codeのスキル・ループ・ワークフローの使い分けも参考になります。状態の正本を1か所に決める考え方は、Claude Codeで複数プロジェクトを管理するでも詳しく書いています。
保管庫の一部をClaudeから守る(補足)
保管庫に人だけが使うフォルダがある場合は、プロジェクトの .claude/settings.json の permissions.deny で、そのフォルダの読み取りや写し用フォルダの編集を禁止できます。ReadやEditのdenyは、cat や head のようにClaude Codeが見分けられるBashのコマンドにも効きます。ただし、python3 -c などスクリプトの中で開く読み取りや、grep -r のようにファイル名を書かない読み方までは止まりません。Bashの中で起きることまで確実に止めるには、sandboxを有効にします。
また、プロジェクトの設定はそのフォルダで始めた会話にしか効かないため、保管庫の外から始めた会話にも効かせたい場合は、グローバルの設定にも同じdenyを入れます。denyとsandboxの違いと実測はClaude Codeのsandbox設定|denyで止まらない操作を実測にまとめています。
よくある質問
ObsidianとClaude Codeの使い分けについて、よくある質問をまとめました。
Q. Claude CodeのメモリをObsidianの保管庫に直接置いてもいいですか?
置くこと自体は autoMemoryDirectory の設定でできますが、おすすめしません。同期の衝突やスマホでの誤った編集が、そのままClaudeの動きの元に入るためです。正本は ~/.claude に残し、読みたい分だけ一方通行で写すほうが安全です。
Q. ObsidianとClaude Codeの連携にMCPやプラグインは必要ですか?
必須ではありません。保管庫はMarkdownファイルの入ったただのフォルダなので、そのフォルダでClaude Codeを起動すれば、追加の仕組みなしで読み書きできます。Obsidianの検索やリンクの更新までClaudeに使わせたい場合に、MCPやプラグインを検討します。
Q. 保管庫の同期はiCloudとgitのどちらがいいですか?
iPhoneとMacだけで使うならiCloudが手軽です。Obsidianの公式ヘルプは同じ保管庫を複数の同期サービスで同期しないよう勧めているため、iCloudの中にgitのリポジトリを重ねる構成は避けたほうが無難です。履歴を残したいものは、正本側(~/.claude)でgitを使います。
Q. シンボリックリンク経由で起動したら、前のメモリが読まれなくなりました。なぜですか?
自動メモリの置き場所が、リンクではなく実体のパスから決まるためです。~/.claude/projects/ に同じ保管庫のフォルダが2つできていないかを確かめ、前のフォルダの memory/ の中身を新しいフォルダへ移してください。
Q. Mac以外の端末でもClaude Codeのメモリを使えますか?
公式ドキュメントでは、自動メモリはそのマシンの中だけにあり、ほかのマシンやクラウドとは共有されないとされています。ほかの端末で読みたい場合は、この記事のように写しを作るか、自分で同期する必要があります。
まとめ
Obsidian×Claude Codeは、正本を ~/.claude に残し、Obsidianを「人が素材を入れる受け箱」と「人が読む写し」に使う役割分担にすると、壊れにくく続けやすくなります。
- Claudeが書くものと人が書くものを、同じ場所に混ぜない
- 正本をObsidianに移さない(同期の衝突・スマホでの誤った編集・伏せ字の3つの理由)
- 写しは一方通行にし、何を写さないかを先に決める
- シンボリックリンクで起動すると、自動メモリは実体のパス側に作られる
- 賢くなるのはメモのほう。結果を台帳に書き戻し、月に1回整理する
Claude Codeを毎日の運用に組み込んだ例はClaude Codeの運用実例|自分専用ダッシュボードで26プロジェクトを回す、/memory を含むコマンドの一覧はClaude Codeコマンド一覧&実践ガイドにまとめています。
