ObsidianとClaude Codeをつなぐ全体像|知識ベースをAIの相棒に変える入口
散らかったObsidianのメモをClaude Codeの相棒に変える全体像。何が起きるか、つなぎ方の地図、毎日の回し方、安全の境界線を、入口の1枚として実体験でまとめます。
夜中の0時、僕はObsidianの検索窓に「あのコマンド、なんだっけ」と打ち込んでいました。
2年前にメモした、たった3行のシェルコマンド。あるのは確かなんです。でも800個を超えたノートのどこに埋まっているのか、まったく思い出せない。結局その日は探すのを諦めて、もう一度ググりました。
これ、僕だけじゃないと思うんです。
Obsidian(自分のPCにMarkdownで貯めるメモアプリ)は、使えば使うほど便利になる。でも同時に、確実に散らかる。日次ログ、読書メモ、コード断片、記事ネタ、会議メモ。半年もすると「自分専用の、検索しづらいゴミ屋敷」になります。そこで効くのが、この知識のかたまりをClaude Codeという作業係のAIにつなぐことでした。この記事は、その全体像を1枚にまとめた入口です。細かい配線や毎日の手順は、別記事へ案内します。
この記事の要点
- ObsidianとClaude Codeをつなぐと、メモが「読むだけの倉庫」から「AIが整理・要約・リンク付けする生きた知識ベース」に変わる。
- 効く場面は主に3つ。日次ログの引き継ぎ、コード断片の救出、記事ネタの内部リンク発掘。
- つなぎ方の地図は3パターン。symlinkで直結/同期スクリプトで必要分だけコピー/
@importで該当ファイルだけ参照。仕組みの比較はつなぎ方の記事へ。 - 回し方は「毎朝メモを抜き出してAIの文脈に流す」日課。手順は毎日の運用記事へ。
- 鉄則は「読み取りは広く、書き込みは狭く」。Vault全体に編集権限を渡すと事故る。
つなぐと、メモの何が変わるのか
普通のメモは、書いた瞬間がピークです。あとは忘れられていくだけ。
でもObsidianには [[ノート名]] でノート同士を繋ぐ機能があって(Wikilinkといいます)、繋げば繋ぐほど一枚の地図みたいになっていく。「TypeScriptの型エラー」のメモから「あの日ハマったDockerの話」へ飛べて、そこから「先月の障害対応の振り返り」へ繋がる。点が線になり、線が面になる感覚です。
問題は、この繋ぎ込みを人間がやると面倒すぎて続かないこと。ここをAIに肩代わりさせる。Claude Codeはコードを書くためのAIですが、中身は「Markdownファイルが詰まったフォルダを、安全に読み書きできる作業係」です。Obsidianのローカルファースト(ファイルが手元にある)な良さはそのまま、整理の手間だけ渡す。これがつなぐ意味です。
具体的に何が変わるかを、僕の体感で並べます。
| つなぐ前 | つないだ後 |
|---|---|
| メモは書いたら埋もれる | AIが関連ノートへのリンクを足し、後から辿れる |
| 裸のコマンドだけが残る | 「何のための一行か」の説明が付く |
| 記事の内部リンクを毎回手で探す | 過去記事を候補として拾ってくれる |
| 前日の続きを思い出すのに時間がかかる | 朝イチで前日の要約が出てくる |
こんな場面で効く(3つ)
抽象論だと伝わらないので、僕が実際に「お、効くな」と感じた瞬間を3つ。
1つ目は、朝の日次ログ。 毎朝、前日のノートをAIに読ませて「終わってないタスクだけ今日に移して、昨日の学びを3行に圧縮して」と頼みます。昨日の自分が散らかしたメモが、今日の自分が動ける形に整って出てくる。引き継ぎの相手が、未来の自分なんです。
2つ目は、コード断片の救出。 冒頭の「2年前のコマンド」問題。snippets/ に動いたコマンドを放り込んでおくと、AIが「これ何のため?」という説明と、関連メモへのリンクを勝手に足してくれる。裸のコマンドが、検索で見つかる“ちゃんとしたメモ”に化けます。
3つ目は、記事ネタの仕込み。 ブログを書く日、ネタ帳のフォルダを見せて「この記事、どの過去記事に内部リンクできそう?」と聞く。自分でも忘れていた半年前の記事を引っ張ってくることがあって、これが地味に効く。
つなぎ方の地図:3つのアプローチ
つなぐ、と一口に言っても、やり方は大きく3つに分かれます。ここでは地図だけ示します。どれを選ぶかの基準と、Windows対応のコードはObsidianとつなぐ3つの方法に詳しくまとめたので、配線を組むときはそちらを開いてください。
| アプローチ | やること | 向いている人 |
|---|---|---|
| symlink(直結) | VaultのメモをそのままCLAUDE.mdの位置に一本道でつなぐ | 常に最新を反映したい人。WindowsはAdmin/開発者モードが必要 |
| 同期スクリプト | 渡したいメモだけ定期的にコピーする | 渡す範囲を自分で絞りたい人。最も安全 |
@import | CLAUDE.mdから該当ファイルだけ @path で参照する | 1〜2枚の設計メモだけ渡したい人。手軽 |
どれを選ぶにせよ、土台の発想は同じです。Claude Codeは起動時に、プロジェクトのルールを書いた CLAUDE.md という紙を読みます(公式のHow Claude remembers your projectに載っています)。Obsidianのメモは、放っておくとこの紙に含まれません。だから「渡したい中身を、Claude Codeが読む場所に届ける」必要がある。その届け方が3通りある、という話です。
毎日どう回すか(運用は別記事へ)
つなぐ仕組みを作っても、流し込む中身がなければ意味がありません。
僕のやり方はシンプルで、Obsidianのデイリーノートに ## → CLAUDE.md という見出しを1つ置き、その日Claudeに教えたいことだけそこに書く。翌朝それを抜き出してAIの文脈に流すだけ。渡すのは「決定事項・ハマり・規約」の3種に絞ります。何でも渡すと、半年前に却下した案と今週の方針が同じ重みで混ざって、AIが古い判断を真に受けます。
この日課の中身——何をメモして、どう抜き出して、いつ棚卸しするか——はObsidianのメモを記憶に変える運用術に分けました。この記事はあくまで全体像の入口なので、運用の詳細はそちらに譲ります。
最初に引く境界線:読みは広く、書きは狭く
ひとつだけ、つなぐ前に必ず釘を刺させてください。Vault全体にAIの編集権限を渡すのは、絶対にやめたほうがいい。
.obsidian/(設定フォルダ)も、契約書みたいな個人メモも、APIキーも、AIに編集させる理由はありません。これは前に書いたAIに仕事を任せる“足場”の作り方の考え方そのままで、補助輪をつけてから走らせる、という話です。
入口として最低限やることは2つだけ。第一に、フォルダを役割で分ける。日次・プロジェクト・コード断片・公開作業・保護領域。最初から細かくしすぎると破綻するので、ざっくりで十分です。
# Vaultの直下で実行。毎日使う場所・プロジェクト・公開作業・保護領域だけ分ける
mkdir -p inbox daily projects content-ops snippets templates archive private
第二に、private/ のような保護領域はAIに読ませない、と決めておく。具体的な権限設定(.claude/settings.json の allow/deny)は配線とセットなのでつなぎ方の記事に置きました。ここでは「読みは広く、書きは狭く」という方針だけ頭に入れてもらえれば十分です。
まず現状を見える化する:Vault健診スクリプト
つなぐ前に、自分のVaultがいまどれだけ散らかっているかを数字で見ておくと、効果が分かりやすくなります。Node.jsだけで動く、依存ゼロの健診スクリプトを置いておきます。vault-stats.mjs として保存して、Vaultの直下で実行してください。
#!/usr/bin/env node
// Vaultの散らかり具合を数字で出す健診スクリプト(依存ゼロ)
import { readdirSync, readFileSync, statSync } from "node:fs";
import { join, extname } from "node:path";
const root = process.argv[2] || ".";
const skip = new Set([".git", ".obsidian", ".trash", "node_modules"]);
let total = 0; // Markdownファイル数
let empty = 0; // ほぼ空(30字未満)のメモ
let orphan = 0; // 内部リンクが1本もない孤立メモ
let links = 0; // [[...]] の総数
const stale = []; // 1年以上更新されていないメモ
const oneYearAgo = Date.now() - 365 * 24 * 60 * 60 * 1000;
function walk(dir) {
for (const name of readdirSync(dir)) {
if (skip.has(name)) continue;
const full = join(dir, name);
const s = statSync(full);
if (s.isDirectory()) { walk(full); continue; }
if (extname(name).toLowerCase() !== ".md") continue;
total++;
const text = readFileSync(full, "utf8");
if (text.trim().length < 30) empty++;
const found = text.match(/\[\[[^\]]+\]\]/g) || [];
links += found.length;
if (found.length === 0) orphan++;
if (s.mtimeMs < oneYearAgo) stale.push(full);
}
}
walk(root);
console.log(`Markdownノート: ${total} 件`);
console.log(`ほぼ空のメモ: ${empty} 件`);
console.log(`孤立メモ(リンク0): ${orphan} 件 (${total ? Math.round((orphan / total) * 100) : 0}%)`);
console.log(`内部リンク総数: ${links} 本 (1ノート平均 ${total ? (links / total).toFixed(1) : 0} 本)`);
console.log(`1年以上未更新: ${stale.length} 件`);
if (stale.length) {
console.log("--- 棚卸し候補(先頭10件) ---");
for (const f of stale.slice(0, 10)) console.log(` ${f}`);
}
実行はこれだけです。
node vault-stats.mjs .
僕が初めて回したときは、孤立メモが全体の60%を超えていて、正直ぞっとしました。「リンク0が6割」という数字が出ると、AIに繋ぎ込みを手伝わせる動機がはっきりします。つないだ1ヶ月後にもう一度回すと、孤立率が下がっているのが見えて、これが続けるモチベーションになりました。Obsidian側の正確な仕様(Wikilink、Daily notes、Properties)はObsidian公式ヘルプに当たってください。
よくある質問
Q. Obsidian PublishやSyncの有料プランは必要ですか? いりません。Claude Codeは手元のMarkdownファイルを直接読み書きするだけなので、無料のObsidianとローカルのVaultがあれば十分です。
Q. Vaultが数千ノートあっても大丈夫ですか? 全部を一度に渡そうとすると破綻します。コツは「対象を1フォルダに絞る」こと。日次ログだけ、プロジェクトメモだけ、と範囲を切れば規模は問題になりません。
Q. AIにノート名を勝手に変えられてリンクが切れませんか? そのリスクは実在します。だから僕は「リネームは必ず人間に確認」をルール化し、編集後にリンク切れを機械チェックしています。チェックの仕組みはつなぎ方の記事に置きました。
Q. WindowsでもmacOSと同じようにできますか?
できます。ただしsymlinkは管理者権限か開発者モードが必要なので、普通の利用なら同期スクリプトか @import が安全です。
Q. まず何から始めればいいですか?
この記事のVault健診スクリプトで現状を測り、daily/ フォルダひとつだけをAIに任せるところから。範囲が狭いほど失敗しても戻せます。
実際に試した結果
3ヶ月、この仕組みで自分のVaultを回してみました。
一番効いたのは「日次ログの引き継ぎ」でした。朝イチでAIに前日を要約させると、エンジンのかかりが明らかに速い。「昨日の自分、ここで止まってたのか」が一目で分かるから、コーヒーを淹れている間に頭が今日のモードに切り替わる。健診スクリプトの数字でいうと、孤立メモ率は最初の60%超から、3ヶ月で40%を切るところまで下がりました。AIがコツコツ貼ってくれたリンクのおかげです。
思わぬ副産物もありました。AIに毎日触らせる前提ができたことで、僕自身のメモの書き方が変わったんです。後で機械に読ませると思うと、自然と status: を付けたり、雑なメモでも一行だけ文脈を足したりするようになる。AIのために整えていたつもりが、いちばん読みやすくなったのは人間の自分でした。
面白いのは、半年前なら絶対に思い出せなかった2年前のあのコマンドに、今は5秒で辿り着けることです。メモが、ちゃんと脳になってきました。
全体像はこれで十分です。次は手を動かす番。つなぐ配線そのものはObsidianとつなぐ3つの方法、毎日の回し方はObsidianのメモを記憶に変える運用術へ。手を動かすテンプレートやチーム導入の相談先は教材一覧にまとめてあります。今日はまず、健診スクリプトで自分のVaultの数字を見るところから始めてみてください。
無料PDF: Claude Code はじめてのチートシート
まずは無料PDFで基本コマンドと最初の使い方をまとめて確認してください。登録後はそのままテンプレート集や導入相談にも進めます。
スパムは送りません。登録情報は厳重に管理します。
Claude Codeを仕事で使える形にしませんか?
まず無料PDFで基本を固め、繰り返し使う作業はGumroad教材へ、チーム導入や権限設計は導入相談へ進めます。
この記事を書いた人
Masa
Claude Codeの実務活用、導入設計、収益導線改善を検証しているエンジニア。10言語の技術メディアを運営中。
関連書籍・参考図書
この記事のテーマに関連する書籍を楽天ブックスで探せます。
※ 当サイトは楽天市場のアフィリエイトプログラムに参加しています。上記リンクから商品をご購入いただくと、運営者に紹介料が支払われる場合があります。
関連記事
Claude Codeに1ファイルだけ直させる指示文のつくり方
「もっと良くして」で40行も変えられた失敗から学んだ、触る範囲・検証・戻し方をセットにしたClaude Code用の依頼文テンプレートを紹介します。
Claude Code の権限拒否から復旧する: 止まった理由を次の安全手順に変える
Claude Code のコマンドが拒否されたとき、焦って許可を広げずに、拒否理由、代替手順、証拠コマンド、再試行条件へ分解する方法。
Claude Codeにビルド→スモークテスト→自動修正を回させる足場の作り方
最小スモークテストの選び方、失敗ログを食わせて直させるループ、回数上限と確認ゲートで暴走を止める方法を、コピペで動くコード付きで紹介します。