cli-anything-obsidian 是做什麼的?
透過 Obsidian Local REST API 進行知識管理與筆記記錄。專為 AI 代理與進階使用者設計,讓您無需圖形介面即可管理筆記、搜尋筆記庫及執行命令。
安裝
此 CLI 以 cli-anything-obsidian 套件形式安裝:
pip install cli-anything-obsidian
先決條件:
- Python 3.10+
- 必須安裝並執行 Obsidian,且啟用 Local REST API 外掛
使用方式
基本指令
# 顯示說明
cli-anything-obsidian --help
# 啟動互動式 REPL 模式
cli-anything-obsidian
# 列出筆記庫檔案
cli-anything-obsidian vault list
# 以 JSON 格式輸出(供代理使用)
cli-anything-obsidian --json vault list
REPL 模式
當不指定子指令時,CLI 會進入互動式 REPL 工作階段:
cli-anything-obsidian
# 以互動方式輸入指令,支援 Tab 補全與歷史記錄
指令群組
Vault(筆記庫)
筆記庫檔案管理指令。
| 指令 | 說明 |
|---|---|
list | 列出筆記庫或子目錄中的檔案 |
read | 讀取筆記內容 |
create | 建立新筆記 |
update | 覆寫現有筆記 |
delete | 從筆記庫刪除筆記 |
append | 將內容附加到現有筆記 |
Search(搜尋)
筆記庫搜尋指令。
| 指令 | 說明 |
|---|---|
query | 使用 Obsidian 查詢語法搜尋 |
simple | 跨筆記庫進行純文字搜尋 |
Note(筆記)
目前筆記指令。
| 指令 | 說明 |
|---|---|
active | 取得 Obsidian 中目前作用中的筆記 |
open | 在 Obsidian 編輯器中開啟筆記 |
Command(指令)
Obsidian 指令面板指令。
| 指令 | 說明 |
|---|---|
list | 列出所有可用的 Obsidian 指令 |
execute | 依指令 ID 執行指令 |
Server(伺服器)
伺服器狀態與資訊指令。
| 指令 | 說明 |
|---|---|
status | 檢查 Obsidian Local REST API 是否正在執行 |
Session(工作階段)
工作階段狀態指令。
| 指令 | 說明 |
|---|---|
status | 顯示目前工作階段狀態 |
範例
列出與讀取筆記
# 列出所有筆記庫檔案
cli-anything-obsidian vault list
# 列出子目錄中的檔案
cli-anything-obsidian vault list "Daily Notes"
# 讀取筆記
cli-anything-obsidian vault read "Projects/my-project.md"
建立與更新筆記
# 建立新筆記
cli-anything-obsidian vault create "Projects/new-project.md" --content "# New Project"
# 更新(覆寫)筆記
cli-anything-obsidian vault update "Projects/new-project.md" --content "# 已更新內容"
# 附加內容到筆記
cli-anything-obsidian vault append "Projects/new-project.md" --content "\n## 新章節"
搜尋
# 純文字搜尋(GET /search/simple/)
cli-anything-obsidian search simple "會議記錄"
# Dataview DQL 查詢 — 預設 --type dql,以
# application/vnd.olrapi.dataview.dql+txt 格式傳送
cli-anything-obsidian search query 'TABLE file.link FROM "Projects"'
# JsonLogic 查詢 — application/vnd.olrapi.jsonlogic+json
cli-anything-obsidian search query --type jsonlogic \
'{"==":[{"var":"frontmatter.status"},"active"]}'
指令
# 列出可用指令
cli-anything-obsidian command list
# 依 ID 執行指令
cli-anything-obsidian command execute "editor:toggle-bold"
互動式 REPL 工作階段
啟動互動式工作階段以供探索使用。
cli-anything-obsidian
# 以互動方式輸入指令
# 使用 'help' 查看可用指令
API 金鑰設定
# 透過旗標
cli-anything-obsidian --api-key YOUR_KEY vault list
# 透過環境變數(建議用於代理)
export OBSIDIAN_API_KEY=YOUR_KEY
cli-anything-obsidian vault list
狀態管理
CLI 維護輕量的工作階段狀態:
- API 金鑰:可透過
--api-key或OBSIDIAN_API_KEY環境變數設定 - 主機網址:預設為
https://localhost:27124;可透過--host設定
輸出格式
所有指令均支援雙重輸出模式:
- 人類可讀(預設):表格、顏色、格式化文字
- 機器可讀(
--json旗標):結構化 JSON,適合代理使用
# 人類輸出
cli-anything-obsidian vault list
# 代理用的 JSON 輸出
cli-anything-obsidian --json vault list
給 AI 代理的建議
以程式方式使用此 CLI 時:
- 一律使用
--json旗標 以獲得可解析的輸出 - 檢查回傳碼 - 0 表示成功,非零表示錯誤
- 解析 stderr 以取得失敗時的錯誤訊息
- 設定
OBSIDIAN_API_KEY環境變數,避免每次呼叫都傳遞--api-key - 確認 Obsidian 正在執行:在其他指令前先執行
server status
更多資訊
- 完整文件:請參閱套件中的 README.md
- 測試覆蓋率:請參閱套件中的 TEST.md
- 方法論:請參閱 cli-anything-plugin 中的 HARNESS.md
版本
1.1.0