mcpField
C
cli-anything-obsidian

cli-anything-obsidian

github.com/hkuds生产力57.6k949 次安装5 周前更新
代码仓库

关于 cli-anything-obsidian

cli-anything-obsidian 通过 Local REST API 提供命令行界面,用于管理 Obsidian 库中的笔记和搜索内容。它面向需要在图形界面之外操作库和执行 Obsidian 命令的 Agent 与高级用户。

主要功能

  1. 01列出、读取、创建、更新和删除笔记
  2. 02向笔记追加内容
  3. 03按文本或 Obsidian 查询语法搜索
  4. 04查看并打开当前笔记
  5. 05列出并执行 Obsidian 命令
  6. 06交互式 REPL 和 JSON 输出

适用场景

  1. 01搜索整个库中的笔记
  2. 02通过脚本创建或更新项目笔记
  3. 03不打开图形界面而执行 Obsidian 命令

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hkuds/cli-anything --skill cli-anything-obsidian

安装后在 Claude Code 中输入/cli-anything-obsidian确认已加载。

详细介绍

cli-anything-obsidian

通过 Obsidian Local REST API 进行知识管理和笔记记录。专为需要在无 GUI 环境下管理笔记、搜索仓库并执行命令的 AI Agent 和高级用户而设计。

安装

此命令行工具作为 cli-anything-obsidian 包的一部分进行安装:

pip install cli-anything-obsidian

前提条件:

用法

基本命令
# Show help
cli-anything-obsidian --help

# Start interactive REPL mode
cli-anything-obsidian

# List vault files
cli-anything-obsidian vault list

# Run with JSON output (for agent consumption)
cli-anything-obsidian --json vault list
REPL 模式

在不带子命令的情况下调用时,命令行工具会进入交互式 REPL 会话:

cli-anything-obsidian
# Enter commands interactively with tab-completion and history

命令组

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显示当前会话状态

示例

列出并读取笔记
# List all vault files
cli-anything-obsidian vault list

# List files in a subdirectory
cli-anything-obsidian vault list "Daily Notes"

# Read a note
cli-anything-obsidian vault read "Projects/my-project.md"
创建并更新笔记
# Create a new note
cli-anything-obsidian vault create "Projects/new-project.md" --content "# New Project"

# Update (overwrite) a note
cli-anything-obsidian vault update "Projects/new-project.md" --content "# Updated Content"

# Append to a note
cli-anything-obsidian vault append "Projects/new-project.md" --content "\n## New Section"
搜索
# Plain text search (GET /search/simple/)
cli-anything-obsidian search simple "meeting notes"

# Dataview DQL query — default --type dql, sent as
# application/vnd.olrapi.dataview.dql+txt
cli-anything-obsidian search query 'TABLE file.link FROM "Projects"'

# JsonLogic query — application/vnd.olrapi.jsonlogic+json
cli-anything-obsidian search query --type jsonlogic \
  '{"==":[{"var":"frontmatter.status"},"active"]}'
命令
# List available commands
cli-anything-obsidian command list

# Execute a command by ID
cli-anything-obsidian command execute "editor:toggle-bold"
交互式 REPL 会话

启动交互式会话以进行探索性使用。

cli-anything-obsidian
# Enter commands interactively
# Use 'help' to see available commands
API 密钥配置
# Via flag
cli-anything-obsidian --api-key YOUR_KEY vault list

# Via environment variable (recommended for agents)
export OBSIDIAN_API_KEY=YOUR_KEY
cli-anything-obsidian vault list

状态管理

命令行工具维护轻量级会话状态:

  • API 密钥:可通过 --api-key 或 OBSIDIAN_API_KEY 环境变量进行配置
  • 主机 URL:默认为 https://localhost:27124;可通过 --host 进行配置

输出格式

所有命令均支持双输出模式:

  • 人类可读(默认):表格、颜色、格式化文本
  • 机器可读(--json 标志):供 Agent 使用的结构化 JSON
# Human output
cli-anything-obsidian vault list

# JSON output for agents
cli-anything-obsidian --json vault list

面向 AI Agent

以编程方式使用此命令行工具时:

  1. 始终使用 --json 标志以获得可解析的输出
  2. 检查返回码 - 0 表示成功,非零表示错误
  3. 解析 stderr 以获取失败时的错误消息
  4. 设置 OBSIDIAN_API_KEY 环境变量,以避免在每次调用时传递 --api-key
  5. 验证 Obsidian 正在运行,在执行其他命令前使用 server status

更多信息

  • 完整文档:参见包中的 README.md
  • 测试覆盖率:参见包中的 TEST.md
  • 方法论:参见 cli-anything-plugin 中的 HARNESS.md

版本

1.1.0

评论

支持 Markdown