Obsidian VaultをClaude Codeの作業場にする連携は、プラグインではなくフォルダ構成・ルールファイル・除外設定・権限の4点で成立します。自社Vaultの設定ファイルをもとに、手順とつまずきどころを示します。

01Obsidian VaultをClaude Codeの作業場にする連携|4つの設定で決まる

Obsidianはフォルダとマークダウンファイルの集まりで、専用データベースを必要としません(出典: Obsidian公式ドキュメント)。Claude Codeは起動したディレクトリをそのまま作業範囲にするため、Vaultフォルダで起動すれば連携の土台ができます。決めるのは次の4点です。

観点決めること実体
フォルダ構成作業ディレクトリをVaultルートに合わせる起動時のcwd・.claude/フォルダ
ルールファイルClaude CodeとObsidianの両方から見える指示書を1箇所に置くCLAUDE.md
除外設定個人環境ファイルと機密をgit・Claudeの視界から外す.gitignorepermissions.deny
権限Vaultへの書き込みをallow・ask・denyで管理する.claude/settings.json
Obsidian連携の4層構造|どこがgitの外側で、どこが3方向に分岐するか Obsidian VaultをClaude Codeの作業場にする連携を4層の積み上げで示す図。土台のフォルダ構成から、ルールファイル、除外設定、権限の順に積み上がる。フォルダ構成とルールファイルは、Claude CodeとObsidianが同じ実体を対で読み書きする。除外設定だけは.gitignoreによってgitリポジトリの管理範囲の外側に置かれる。最上位の権限層はObsidian側に対応する仕組みがなく、deny・ask・allowの3方向に分岐し、遮断・承認待ち・信頼後有効という異なる結果になる。 LAYER Obsidian VaultをClaude Codeの作業場にする4層構造 Claude Codeが読み書き Obsidianが読み書き 下から積み上げ ④ 権限 Vaultへの書き込みリクエストを3方向に判定 deny 破壊的操作を遮断 ask 承認ダイアログで確認 allow 承認後のみ有効 Obsidian 対象外:権限概念なし ③ 除外設定(git管理の外側) Claude: settings.local.json(自動除外) Obsidian: workspace.json 等(除外推奨) ② ルールファイル Claude: 起動のたびに読み込む指示書(CLAUDE.md) Obsidian: 隠しファイルではなく通常ノート ① フォルダ構成 Claude: 起動時のcwdがそのまま作業範囲 Obsidian: .obsidian フォルダ(Vault直下) 権限だけはObsidianと対にならず3方向に分岐し、除外設定だけがgit管理の外側に置かれる。
Obsidian VaultとClaude Codeの連携構造図

前提は3つ、Vaultがgitリポジトリ・Claude Codeインストール済み・Obsidianのコミュニティプラグイン不要(理由はFAQ)です。検証環境:claude-sonnet-5・Claude Code v2.1.x系・Obsidianデスクトップ版・macOS 15(2026-07-28検証)。

02手順1|Vaultのフォルダ構成を連携の作業ディレクトリに合わせる

Claude Codeはデフォルトで起動したディレクトリのファイルだけにアクセスします(出典: Claude Code公式ドキュメント)。連携の第一歩はObsidian Vaultのルートフォルダで起動することだけです。

自社Vaultでは.obsidian.claudeが同じ階層の兄弟フォルダとして存在し、Vaultルートは次のとおりです。

.claude/       ← Claude Codeの設定・hooks・skills
.obsidian/     ← Obsidianの設定・プラグイン・ワークスペース
.git/          ← gitリポジトリ本体
CLAUDE.md      ← ルールファイル(手順2)
MEMORY.md      ← Claude Codeのauto memoryの索引

03手順2|ルールファイルで連携時の読み込み順を固定する

CLAUDE.mdはプロジェクト向けの指示ファイルです。置き場所は./CLAUDE.md./.claude/CLAUDE.mdです(出典: Claude Code公式ドキュメント)。Vaultのルートに置けば、起動のたびに読み込まれます。

CLAUDE.mdは拡張子が.mdの普通のファイルなので、Obsidianからも1つのノートとして開け、検索の対象になります(出典: Obsidian公式ドキュメント)。ルールファイルが隠しファイルではなく通常のノートとして見えるのは、連携ならではの挙動です。

自社のCLAUDE.mdは15章構成(§0〜§14)でVaultのルートに置いています。編集にはaskルールをかけているため、Claude Codeが無断で書き換えることはありません(2026-07-28時点の設定ファイルを確認)。

04手順3|除外設定でつなぐ範囲から個人環境ファイルと機密を外す

.obsidianフォルダには端末ごとに変わるファイルと、Vault全体で共有すべきファイルが混在します(出典: Obsidian公式ドキュメント)。分けずにgit管理すると、端末ごとに差分が発生します。

Obsidian公式はworkspace.jsonworkspaces.jsonを個人環境ファイルと位置づけています。「.gitignoreへの追加を検討すべき」と明記されています(出典: Obsidian公式ドキュメント)。自社の.gitignoreはこれに連携で気づいた項目を加え、次を除外しています。

パターン対象除外する理由
.obsidian/workspace.json .obsidian/workspace-mobile.jsonワークスペースのレイアウト(PC・モバイル)Obsidian公式が.gitignoreを推奨・端末ごとに変わる
.obsidian/cache/Obsidianのインデックスキャッシュ再生成できる・差分ノイズになる
.trash/Obsidianのゴミ箱削除済みファイルの残骸が残る
.smart-env/ .smtcmp_json_db/プラグインのローカルDBバイナリで差分が読めない
一部プラグインの設定ファイル(例:data.jsonプラグインが保持する認証情報OAuth・APIキーを保持し得る
# --- Obsidian: 端末ごとの作業状態・ゴミ箱 ---
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/cache/
.trash/

# --- Obsidianプラグインのローカルデータベース ---
.smart-env/
.smtcmp_json_db/

git check-ignoreを実行すると、除外の効き目をその場で確認できます。

$ git check-ignore -v .obsidian/workspace.json
.gitignore:41:.obsidian/workspace.json	.obsidian/workspace.json

個人の上書き用.claude/settings.local.jsonは作成時に自動でgit管理から外れます(出典: Claude Code公式ドキュメント)。自分で先に作った場合だけ.gitignoreへ手動追加し、除外設定は両側で1回ずつ確認します。

05手順4|権限でつなぐ範囲への書き込みをallow・ask・denyで管理する

Claude Codeの権限ルールはdenyaskallowの3種類です。評価順序は常にdenyaskallowの固定順で、ルールの詳しさで変わりません(出典: Claude Code公式ドキュメント)。

自社の.claude/settings.jsonには2026-07-28時点でdenyが19件、askが26件、allowが11件登録されています。保護する代表例は次のとおりです。

区分ルール例連携で守っているもの
denyBash(rm -rf*) Read(**/.env)破壊的操作と機密ファイルの読み取り
denyEdit(**/*.skill) Write(**/*.plugin)パッケージ済みスキル・プラグインの改変
askEdit(CLAUDE.md) Write(CLAUDE.md)ルールファイルの無断書き換え
askBash(git push*)Vaultの履歴を外部へ送る操作

Vaultを初めて開いたときはワークスペースの信頼ダイアログが表示されます。allowルールとadditionalDirectoriesは承認するまで適用されません(出典: Claude Code公式ドキュメント)。denyaskは承認前から効くため、危険な操作を止める力は働きます。

deny→ask→allowの一本道評価、承認前に無効なのは何か Claude Codeの権限評価をdeny→ask→allowの順に一本道で示す図。Bash/Write操作はdenyに一致すれば即ブロックし、denyに一致しなければaskに一致するかを見て、一致すればユーザーの承認待ちになる。どちらにも一致しなければallowと照合し、一致すれば実行される。右側はVaultを開いた直後の時間軸で、信頼ダイアログの承認前はdenyとaskが常に有効な一方、allowとadditionalDirectoriesだけ無効化され、承認後に有効へ切り替わる。 BRANCH deny→ask→allowの一本道評価、承認前に無効なのは何か 評価順(上から下へ一本道) 承認前後で何が変わるか(時間軸) Bash/Write操作 ①deny一致? はい 即ブロック 実行されない いいえ ②ask一致? はい 承認待ち 確認まで停止 いいえ ③allow一致? はい 実行 コマンドが実際に動く deny・askは常に有効(変化なし) Vaultを開いた直後(未承認) allow:無効 時間の経過 信頼ダイアログ承認後 allow:有効 承認前でも有効なのはdenyとaskだけ。allowとadditionalDirectoriesは承認後に有効になる。
Claude Codeの権限評価フロー図

権限はチーム共有分と個人分で分けます。全員に効かせるルールは.claude/settings.jsonにgitで共有し、個人の上書きは.claude/settings.local.jsonに置きます。複数人で開いても書き直しは発生しません。

06つまずきポイント|連携でつまずく3つの落とし穴

  1. プラグインの認証情報をgitに含めてしまう.obsidian/plugins/配下にAPIキーやOAuthトークンが保存されることがあります。自社Vaultでは一部プラグインの設定ファイルをこの理由で.gitignoreに登録していますが、2026-07-28時点で該当パスにファイル自体は生成されておらず、シンボリックリンクも未設置です(実測)。除外を忘れると、将来ファイルが生成されたときにコミット履歴へ認証情報が残ります。
  2. [[内部リンク]]が自動で連携して読み込まれると思い込む:CLAUDE.mdの@pathインポートに慣れると誤解しがちです。Obsidian流の[[ノート名]]も同じように読み込まれると思い込んでしまいます。公式ドキュメントが定義するインポート構文は@pathのみで、[[...]]への言及はありません(出典: Claude Code公式ドキュメント)。読ませたい関連ノートは@で明示します。
  3. ワークスペースの信頼ダイアログを承認し忘れる:手順4のallowルールとadditionalDirectoriesは、ダイアログを承認するまで適用されません。承認前は、設定を書いたつもりでも読み込まれるだけで効きません。

07動作確認の方法|Claude CodeとObsidianの連携ができたかを判定する基準

  • /contextを実行し、Memory filesの一覧にVault直下のCLAUDE.mdが表示される
  • git check-ignore -v .obsidian/workspace.jsonを実行し、.gitignoreの行番号とパターンが返ってくる
  • /permissionsを実行し、.claude/settings.json由来のルールが一覧に出る
  • Vaultで初めてClaude Codeを起動した回だけ、ワークスペースの信頼ダイアログが表示され、承認できる
  • git statusを実行し、.obsidian/workspace.json.trash/が追跡対象に含まれていない

5つとも満たせば4点すべてが効いています。1つでも外れたら対応する手順へ戻って見直します。

08FAQ

Obsidianのコミュニティプラグインを入れないと連携できませんか

不要です。自社Vaultはcommunity-plugins.jsonが空配列のままで、プラグインを1つも有効化せず連携しています(2026-07-28実測)。Claude Code側もプラグインを介さず起動ディレクトリを読み書きします。

Vaultをgit管理していない場合でも連携できますか

できますが非推奨です。gitリポジトリ外では.claude/settings.local.jsonの保存場所が起動ディレクトリ基準になります。サブディレクトリで設定が揃いません(出典: Claude Code公式ドキュメント)。

ObsidianのモバイルアプリとClaude Codeは連携できますか

直接の連携はできません。Claude CodeはCLIとして起動したディレクトリしか読み書きしません。同期済みVaultをPC側で開けば見えます。

[[内部リンク]]で書いた参照はClaude Codeに自動で連携して読み込まれますか

されません。公式インポート構文は@pathのみです。関連ノートを読ませたいときは、CLAUDE.mdに@で明示的に指定します。