Skip to content

lazyjerry/claudian

 
 

Repository files navigation

Claudian

GitHub stars GitHub release License

本專案 fork 自 YishenTu/claudian,感謝原作者的貢獻。

Preview

把 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 格式的自訂模型供應商(OpenrouterKimiGLMDeepSeek 等)
  • 僅支援桌面版(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,需要 curljq

從 GitHub Release 手動安裝

  1. 最新 Release 下載 main.jsmanifest.jsonstyles.css
  2. 在 vault 的外掛資料夾中建立名為 claudian 的資料夾:
    /path/to/vault/.obsidian/plugins/claudian/
    
  3. 將下載的檔案複製到 claudian 資料夾
  4. 在 Obsidian 中啟用外掛:
    • 設定 → 社群外掛 → 啟用「Claudian」

使用 BRAT 安裝

BRAT(Beta Reviewers Auto-update Tester)可讓你直接從 GitHub 安裝並自動更新外掛。

  1. 從 Obsidian 社群外掛安裝 BRAT 外掛
  2. 在設定 → 社群外掛中啟用 BRAT
  3. 開啟 BRAT 設定並點擊「Add Beta plugin」
  4. 輸入儲存庫網址:https://github.com/lazyjerry/claudian
  5. 點擊「Add Plugin」,BRAT 將自動安裝 Claudian
  6. 在設定 → 社群外掛中啟用 Claudian

提示:BRAT 會自動檢查更新,並在有新版本時通知你。

從原始碼安裝(開發用)

  1. 將此儲存庫 clone 至 vault 的外掛資料夾:

    cd /path/to/vault/.obsidian/plugins
    git clone https://github.com/lazyjerry/claudian.git
    cd claudian
  2. 安裝相依套件並建置:

    npm install
    npm run build
  3. 在 Obsidian 中啟用外掛:

    • 設定 → 社群外掛 → 啟用「Claudian」

開發模式

# 監看模式
npm run dev

# 正式建置
npm run build

提示:將 .env.local.example 複製為 .env.local,或執行 npm install 並設定 vault 路徑,以便在開發時自動複製檔案。

使用方式

兩種模式:

  1. 點擊側邊欄的機器人圖示,或使用命令面板開啟聊天
  2. 選取文字後按快捷鍵進行內嵌編輯

像使用 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 啟動

設定

設定項目

個人化

  • 使用者名稱:你的名字,用於個人化問候
  • 排除標籤:含有這些標籤的筆記不會自動載入(例如 sensitiveprivate
  • 媒體資料夾:設定 vault 儲存附件的位置,以支援圖片嵌入(例如 attachments
  • 自訂系統提示:加到預設系統提示後面的額外指令(指令模式 # 儲存在這裡)
  • 啟用自動捲動:切換串流輸出時自動捲動至底部(預設:開啟)
  • 自動產生對話標題:切換在第一則訊息送出後由 AI 自動產生標題
  • 標題產生模型:用於自動產生對話標題的模型(預設:Auto/Haiku)
  • Vim 風格導覽按鍵:設定按鍵綁定,格式如 map w scrollUpmap s scrollDownmap 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 供應商外,不進行任何追蹤。

疑難排解

找不到 Claude CLI

若遇到 spawn claude ENOENTClaude 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.execli.js

替代方案:在設定 → 環境 → 自訂變數中,將 Node.js bin 目錄加入 PATH。

npm CLI 與 Node.js 不在同一目錄

若使用 npm 安裝的 CLI,請確認 claudenode 是否在同一目錄:

dirname $(which claude)
dirname $(which node)

若不同,Obsidian 等 GUI 應用程式可能找不到 Node.js。

解決方案

  1. 安裝原生二進位檔案(建議)
  2. 在設定 → 環境中加入 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 授權。

星標歷史

Star History Chart

致謝

About

一個 Obsidian 外掛,將 Claude Code 嵌入你的知識庫(vault)中,作為 AI 協作助手

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 96.7%
  • CSS 2.9%
  • Other 0.4%