Skip to content

URI 协议

概述

Obsidian URI 协议允许你通过 URL 来控制 Obsidian,非常适合自动化工作流、外部工具集成和跨应用操作。

版本说明

URI 协议是 Obsidian 的核心功能,所有版本均支持。v1.11+ 新增了 paneType 参数。

基本语法

URI 格式

url
obsidian://action?param1=value1&param2=value2

参数编码

  • 空格编码为 %20
  • 特殊字符需要 URL 编码
  • 仓库名和文件名需要编码

支持的操作

打开仓库

url
obsidian://open?vault=仓库名称

打开文件

url
# 按仓库名和文件名打开
obsidian://open?vault=我的笔记&file=笔记名称

# 打开指定路径的文件
obsidian://open?vault=我的笔记&file=文件夹/子文件夹/笔记

# 打开并跳转到标题
obsidian://open?vault=我的笔记&file=笔记名称%23标题名

创建新笔记

url
# 创建新笔记
obsidian://new?vault=我的笔记&name=新笔记名称

# 创建并写入内容
obsidian://new?vault=我的笔记&name=新笔记&content=笔记内容

# 指定保存路径
obsidian://new?vault=我的笔记&name=新笔记&path=文件夹/新笔记.md

搜索

url
# 打开搜索面板
obsidian://search?vault=我的笔记

# 执行搜索
obsidian://search?vault=我的笔记&query=搜索关键词

追加内容

url
# 追加到现有笔记
obsidian://append?vault=我的笔记&file=目标笔记&content=追加的内容

# 在后台追加(不打开窗口)
obsidian://append?vault=我的笔记&file=目标笔记&content=内容&silent=true

插入内容

url
# 在光标位置插入(需打开笔记)
obsidian://insert?vault=我的笔记&file=目标笔记&content=插入内容

执行命令

url
# 执行 Obsidian 命令
obsidian://command?vault=我的笔记&command=command-id

# 常用命令示例
obsidian://command?vault=我的笔记&command=app:open-vault
obsidian://command?vault=我的笔记&command=daily-notes
obsidian://command?vault=我的笔记&command=app:toggle-left-sidebar

参数详解

vault(仓库参数)

指定目标仓库,支持两种方式:

方式说明示例
名称仓库名称vault=我的笔记
UID仓库唯一标识vault=abc123

paneType(打开方式)

v1.11+ 新增

控制文件打开的窗格类型。

说明
tab在新标签页打开(默认)
split在分栏中打开
window在新窗口打开(仅桌面端)
url
# 在新窗口打开
obsidian://open?vault=我的笔记&file=笔记&paneType=window

# 在分栏中打开
obsidian://open?vault=我的笔记&file=笔记&paneType=split

编码处理

python
# Python 编码示例
import urllib.parse

vault = "我的笔记"
file = "文件夹/笔记名称"
content = "笔记内容,包含空格和特殊字符!"

encoded_vault = urllib.parse.quote(vault)
encoded_file = urllib.parse.quote(file)
encoded_content = urllib.parse.quote(content)

uri = f"obsidian://new?vault={encoded_vault}&file={encoded_file}&content={encoded_content}"
print(uri)

使用场景

浏览器书签

将常用操作保存为浏览器书签:

url
<!-- 快速打开日记 -->
obsidian://open?vault=我的笔记&file=日记/2024-02-23

<!-- 快速创建会议笔记 -->
obsidian://new?vault=我的笔记&name=会议记录&path=会议/

<!-- 快速搜索待办事项 -->
obsidian://search?vault=我的笔记&query=tag:#待办

iOS 快捷指令

在 iOS Shortcuts 中使用:

yaml
URL 操作:
  1. 添加「URL」操作
  2. 输入: obsidian://open?vault=我的笔记&file=今日任务
  3. 添加「打开 URL」操作

macOS 自动化

使用 AppleScript 或 Shortcuts:

applescript
-- AppleScript 打开 Obsidian
tell application "Obsidian"
    open location "obsidian://open?vault=我的笔记&file=日记"
end tell

其他工具集成

Alfred Workflow

bash
# Alfred Script Filter
obsidian://search?vault=我的笔记&query={query}

VS Code Tasks

json
{
  "label": "Open in Obsidian",
  "type": "shell",
  "command": "open",
  "args": ["obsidian://open?vault=我的笔记&file=${fileBasenameNoExtension}"]
}

Terminal

bash
# macOS
open "obsidian://open?vault=我的笔记&file=笔记"

# Linux
xdg-open "obsidian://open?vault=我的笔记&file=笔记"

# Windows
start "obsidian://open?vault=我的笔记&file=笔记"

命令 ID 参考

常用命令

命令 ID功能
app:open-vault打开仓库
app:reload重新加载
app:toggle-left-sidebar切换左侧边栏
app:toggle-right-sidebar切换右侧边栏
command-palette:open打开命令面板
daily-notes打开日记
file-explorer:new-file新建笔记
graph:open打开图谱
markdown:toggle-preview切换预览
switcher:open打开快速切换

获取命令 ID

  1. 打开设置 → 快捷键
  2. 找到目标命令
  3. 点击命令右侧的「复制命令 ID」

安全注意事项

注意事项

  • URI 操作会直接修改你的笔记
  • 谨慎处理来自不可信来源的 URI 链接
  • 追加操作可能覆盖重要内容

权限确认

首次使用 URI 时,Obsidian 会请求确认:

  • 信任此域名:始终允许来自该域的请求
  • 允许一次:仅本次允许
  • 拒绝:拒绝本次请求

调试技巧

测试 URI

在浏览器地址栏直接输入 URI 测试:

url
obsidian://open?vault=我的笔记&file=测试笔记

检查编码

使用浏览器开发者工具:

javascript
// 解码 URI
decodeURIComponent("obsidian://open?vault=%E6%88%91%E7%9A%84%E7%AC%94%E8%AE%B0")

// 编码参数
encodeURIComponent("我的笔记")

下一步

最后更新:2026年3月13日编辑此页反馈问题