本專案 fork 自 YishenTu/claudian,感謝原作者的貢獻。
把 Claude Code 嵌進 Obsidian 的外掛。Vault 直接當作 Claude 的工作目錄,能讀寫檔案、搜尋、跑 Bash 指令,也能處理多步驟工作流程。
- 完整代理能力:在 Obsidian vault 中讀寫、編輯檔案、搜尋、執行 Bash 指令。
- 情境感知:自動附加當前筆記,用
@提及檔案、依標籤排除筆記、帶入編輯器選取內容(Highlight),也能存取 vault 外的目錄。 - 視覺辨識:拖曳、貼上或輸入路徑,就能把圖片送給 Claude 分析。
- 內嵌編輯:直接在筆記中編輯選取文字或在游標位置插入內容,有字詞級差異預覽,工具以唯讀模式存取。
- 指令模式(
#):在聊天輸入框加入自訂指令到系統提示,可在 modal 中審閱或編輯。 - 斜線指令:用
/command觸發提示範本,支援引數佔位符、@file參照與內嵌 Bash 替換。 - 技能(Skills):用能力模組擴充 Claudian,依情境自動啟用,相容 Claude Code 的 skill 格式。
- 自訂代理(Custom Agents):定義 Claude 可呼叫的子代理,支援工具限制與模型覆寫。
- Claude Code 外掛:啟用透過 CLI 安裝的外掛,自動從
~/.claude/plugins探索,各 vault 可獨立設定。外掛的技能、代理與斜線指令直接整合進來。 - MCP 支援:透過 Model Context Protocol 伺服器(stdio、SSE、HTTP)接入外部工具與資料來源,支援情境儲存模式與
@提及啟動。 - 進階模型控制:在 Haiku、Sonnet、Opus 之間切換,透過環境變數設定自訂模型,調整思考預算。Opus 與 Sonnet 可啟用 100 萬上下文視窗(需 Max 訂閱或額外用量)。
- 規劃模式(Plan Mode):在聊天輸入框按 Shift+Tab 切換。Claudian 先探索、設計方案再實作。計畫提交後,你可以在新 session 核准、在當前 session 繼續,或給回饋。
- 安全性:權限模式(YOLO/安全/規劃)、安全封鎖清單,vault 存取會做符號連結檢查。
- Claude in Chrome:透過
claude-in-chrome擴充功能讓 Claude 操作 Chrome。
- 已安裝 Claude Code CLI(強烈建議使用原生安裝方式)
- Obsidian v1.8.9 以上
- Claude 訂閱/API,或支援 Anthropic API 格式的自訂模型供應商(Openrouter、Kimi、GLM、DeepSeek 等)
- 僅支援桌面版(macOS、Linux、Windows)
# 帶參數
curl -fsSL https://raw.githubusercontent.com/lazyjerry/claudian/refs/heads/main/install.sh | bash -s ~/Documents/MyVault
# 互動式(會顯示路徑範例並提示輸入)
curl -fsSL https://raw.githubusercontent.com/lazyjerry/claudian/refs/heads/main/install.sh | bash腳本會自動從 GitHub 下載最新 Release 並安裝到指定 Vault,需要 curl 和 jq。
- 從最新 Release 下載
main.js、manifest.json與styles.css - 在 vault 的外掛資料夾中建立名為
claudian的資料夾:/path/to/vault/.obsidian/plugins/claudian/ - 將下載的檔案複製到
claudian資料夾 - 在 Obsidian 中啟用外掛:
- 設定 → 社群外掛 → 啟用「Claudian」
BRAT(Beta Reviewers Auto-update Tester)可讓你直接從 GitHub 安裝並自動更新外掛。
- 從 Obsidian 社群外掛安裝 BRAT 外掛
- 在設定 → 社群外掛中啟用 BRAT
- 開啟 BRAT 設定並點擊「Add Beta plugin」
- 輸入儲存庫網址:
https://github.com/lazyjerry/claudian - 點擊「Add Plugin」,BRAT 將自動安裝 Claudian
- 在設定 → 社群外掛中啟用 Claudian
提示:BRAT 會自動檢查更新,並在有新版本時通知你。
-
將此儲存庫 clone 至 vault 的外掛資料夾:
cd /path/to/vault/.obsidian/plugins git clone https://github.com/lazyjerry/claudian.git cd claudian
-
安裝相依套件並建置:
npm install npm run build
-
在 Obsidian 中啟用外掛:
- 設定 → 社群外掛 → 啟用「Claudian」
# 監看模式
npm run dev
# 正式建置
npm run build提示:將
.env.local.example複製為.env.local,或執行npm install並設定 vault 路徑,以便在開發時自動複製檔案。
兩種模式:
- 點擊側邊欄的機器人圖示,或使用命令面板開啟聊天
- 選取文字後按快捷鍵進行內嵌編輯
像使用 Claude Code 一樣——在 vault 中讀取、寫入、編輯、搜尋檔案。
- 檔案:自動附加當前筆記;輸入
@附加其他檔案 - @-提及下拉選單:輸入
@可查看 MCP 伺服器、代理、外部情境與 vault 檔案@Agents/顯示可選用的自訂代理@mcp-server啟用情境儲存 MCP 伺服器@folder/篩選特定外部情境的檔案(例如@workspace/)- 預設顯示 vault 檔案
- 選取內容:在編輯器中選取文字或 Canvas 元素後開啟聊天,選取內容會自動包含
- 圖片:拖曳、貼上或輸入路徑;設定媒體資料夾以支援
![[image]]嵌入 - 外部情境:點擊工具列的資料夾圖示存取 vault 外部的目錄
- 內嵌編輯:選取文字後按快捷鍵,直接在筆記中編輯,支援字詞級差異預覽
- 指令模式:輸入
#為系統提示加入自訂指令 - 斜線指令:輸入
/使用自訂提示範本或技能 - 技能:將
skill/SKILL.md檔案加入~/.claude/skills/或{vault}/.claude/skills/,建議使用 Claude Code 管理技能 - 自訂代理:將
agent.md檔案加入~/.claude/agents/(全域)或{vault}/.claude/agents/(vault 專屬);在聊天中透過@Agents/選用,或提示 Claudian 呼叫代理 - Claude Code 外掛:透過設定 → Claude Code Plugins 啟用,建議使用 Claude Code 管理外掛
- MCP:透過設定 → MCP Servers 新增外部工具;在聊天中使用
@mcp-server啟動
個人化
- 使用者名稱:你的名字,用於個人化問候
- 排除標籤:含有這些標籤的筆記不會自動載入(例如
sensitive、private) - 媒體資料夾:設定 vault 儲存附件的位置,以支援圖片嵌入(例如
attachments) - 自訂系統提示:加到預設系統提示後面的額外指令(指令模式
#儲存在這裡) - 啟用自動捲動:切換串流輸出時自動捲動至底部(預設:開啟)
- 自動產生對話標題:切換在第一則訊息送出後由 AI 自動產生標題
- 標題產生模型:用於自動產生對話標題的模型(預設:Auto/Haiku)
- Vim 風格導覽按鍵:設定按鍵綁定,格式如
map w scrollUp、map s scrollDown、map i focusInput
快捷鍵
- 內嵌編輯快捷鍵:觸發選取文字內嵌編輯的快捷鍵
- 開啟聊天快捷鍵:開啟聊天側邊欄的快捷鍵
斜線指令
- 建立/編輯/匯入/匯出自訂
/commands(可選擇覆寫模型與允許的工具)
MCP 伺服器
- 新增/編輯/驗證/刪除 MCP 伺服器設定,支援情境儲存模式
Claude Code 外掛
- 啟用或停用從
~/.claude/plugins探索到的 Claude Code 外掛 - 使用者範圍外掛可在所有 vault 中使用;專案範圍外掛僅在對應 vault 中可用
安全性
- 載入使用者 Claude 設定:載入
~/.claude/settings.json(使用者的 Claude Code 權限規則可能會繞過安全模式) - 啟用指令封鎖清單:封鎖危險的 Bash 指令(預設:開啟)
- 封鎖指令:要封鎖的模式(支援正規表達式,可針對不同平台設定)
- 允許的匯出路徑:vault 外部可匯出檔案的路徑(預設:
~/Desktop、~/Downloads)。支援~、$VAR、${VAR}及%VAR%(Windows)。
環境
- 自訂變數:Claude SDK 的環境變數(KEY=VALUE 格式,支援
export前綴) - 環境快照:儲存與還原環境變數設定
進階
- Claude CLI 路徑:Claude Code CLI 的自訂路徑(留空則自動偵測)
| 範圍 | 存取權限 |
|---|---|
| Vault | 完整讀寫(透過 realpath 確保符號連結安全) |
| 匯出路徑 | 僅寫入(例如 ~/Desktop、~/Downloads) |
| 外部情境 | 完整讀寫(限本次 session,透過資料夾圖示新增) |
- YOLO 模式:無需確認提示;所有工具呼叫自動執行(預設)
- 安全模式:每次工具呼叫均需確認;Bash 需完全符合,檔案工具允許前綴符合
- 規劃模式:在實作前先探索並設計方案。在聊天輸入框按 Shift+Tab 切換
- 傳送至 API:你的輸入、附加檔案、圖片與工具呼叫輸出。預設:Anthropic;透過
ANTHROPIC_BASE_URL設定自訂端點。 - 本地儲存:設定、session 元資料與指令儲存於
vault/.claude/;session 訊息儲存於~/.claude/projects/(SDK 原生);舊版 session 儲存於vault/.claude/sessions/。 - 無遙測:除你所設定的 API 供應商外,不進行任何追蹤。
若遇到 spawn claude ENOENT 或 Claude CLI not found,表示外掛無法自動偵測你的 Claude 安裝位置。常見於使用 Node 版本管理工具(nvm、fnm、volta)的情況。
解決方式:找到 CLI 路徑並在設定 → 進階 → Claude CLI 路徑中設定。
| 平台 | 指令 | 範例路徑 |
|---|---|---|
| macOS/Linux | which claude |
/Users/you/.volta/bin/claude |
| Windows(原生) | where.exe claude |
C:\Users\you\AppData\Local\Claude\claude.exe |
| Windows(npm) | npm root -g |
{root}\@anthropic-ai\claude-code\cli.js |
注意:在 Windows 上,請避免使用
.cmd包裝器,改用claude.exe或cli.js。
替代方案:在設定 → 環境 → 自訂變數中,將 Node.js bin 目錄加入 PATH。
若使用 npm 安裝的 CLI,請確認 claude 與 node 是否在同一目錄:
dirname $(which claude)
dirname $(which node)若不同,Obsidian 等 GUI 應用程式可能找不到 Node.js。
解決方案:
- 安裝原生二進位檔案(建議)
- 在設定 → 環境中加入 Node.js 路徑:
PATH=/path/to/node/bin
問題仍未解決? 請開立 GitHub Issue,附上你的平台、CLI 路徑與錯誤訊息。
src/
├── main.ts # 外掛進入點
├── core/ # 核心基礎設施
│ ├── agent/ # Claude Agent SDK 包裝器(ClaudianService)
│ ├── agents/ # 自訂代理管理(AgentManager)
│ ├── commands/ # 斜線指令管理(SlashCommandManager)
│ ├── hooks/ # PreToolUse/PostToolUse 鉤子
│ ├── images/ # 圖片快取與載入
│ ├── mcp/ # MCP 伺服器設定、服務與測試
│ ├── plugins/ # Claude Code 外掛探索與管理
│ ├── prompts/ # 代理的系統提示
│ ├── sdk/ # SDK 訊息轉換
│ ├── security/ # 審核、封鎖清單、路徑驗證
│ ├── storage/ # 分散式儲存系統
│ ├── tools/ # 工具常數與工具函式
│ └── types/ # 型別定義
├── features/ # 功能模組
│ ├── chat/ # 主聊天視圖+UI、渲染、控制器、分頁
│ ├── inline-edit/ # 內嵌編輯服務+UI
│ └── settings/ # 設定頁面 UI
├── shared/ # 共用 UI 元件與 modal
│ ├── components/ # 輸入工具列元件、下拉選單、選取高亮
│ ├── mention/ # @-提及下拉選單控制器
│ ├── modals/ # 指令 modal
│ └── icons.ts # 共用 SVG 圖示
├── i18n/ # 國際化(10 種語言)
├── utils/ # 模組化工具函式
└── style/ # 模組化 CSS(→ styles.css)
本專案為 fork 版本,開發藍圖請參閱原版儲存庫以取得最新進度。
採用 MIT License 授權。
- Obsidian 提供外掛 API
- Anthropic 提供 Claude 與 Claude Agent SDK
