Skip to content

命令行界面 (CLI) ​

版本要求

命令行界面 (CLI) 是 Obsidian v1.12+ 引入的功能。v1.12.5+ 版本支持 TUI 自动补全,v1.13+ 版本优化了 CLI 性能。

概述 ​

Obsidian CLI(命令行界面)允许你从终端控制 Obsidian,非常适合用于:

  • 自动化脚本:批量处理笔记
  • 外部工具集成:与其他应用程序联动
  • 快捷操作:快速执行常用命令
  • 工作流自动化:配合 cron、Shortcuts 等使用

启用 CLI ​

首次设置 ​

  1. 打开 Obsidian
  2. 进入「设置 → 通用」
  3. 找到「命令行界面」选项
  4. 开启「启用命令行界面」
  5. 按照提示完成系统配置

系统配置 ​

macOS ​

bash
# 运行以下命令将 Obsidian 添加到 PATH
sudo ln -sf /Applications/Obsidian.app/Contents/MacOS/obsidian /usr/local/bin/obsidian

# 验证安装
obsidian --version

Windows ​

powershell
# 添加 Obsidian 到系统 PATH
# 方法一:通过设置界面
# 设置 → 系统 → 关于 → 高级系统设置 → 环境变量

# 方法二:PowerShell(以管理员身份运行)
$env:Path += ";C:\Users\<用户名>\AppData\Local\Programs\obsidian"

Linux ​

bash
# AppImage 用户 - 创建符号链接
sudo ln -sf /path/to/Obsidian-x.x.x.AppImage /usr/local/bin/obsidian

# Snap 用户 - 已自动配置
# Flatpak 用户
flatpak install flathub md.obsidian.Obsidian

基本命令 ​

获取帮助 ​

bash
# 显示帮助信息
obsidian help

# 获取特定命令的帮助
obsidian help <command>

# 使用 --help 标志
obsidian --help
obsidian <command> --help

常用命令概览 ​

命令功能版本
obsidian help显示帮助信息v1.12+
obsidian open打开文件或仓库v1.12+
obsidian new创建新笔记v1.12+
obsidian search搜索笔记v1.12+
obsidian search:context上下文搜索v1.12.2+
obsidian rename重命名文件v1.12.2+
obsidian daily日记相关操作v1.12+
obsidian daily:path获取日记路径v1.12.2+

仓库操作 ​

打开仓库 ​

bash
# 打开特定仓库
obsidian open --vault "我的笔记"

# 打开特定文件
obsidian open --vault "我的笔记" --file "项目/计划.md"

# 在新窗口打开
obsidian open --vault "我的笔记" --new-window

URI 操作 ​

支持通过 URI 协议操作:

bash
# 使用 URI 打开
obsidian://open?vault=我的笔记

# 打开特定文件
obsidian://open?vault=我的笔记&file=项目/计划.md

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

# 打开日记
obsidian://daily?vault=我的笔记

笔记操作 ​

创建笔记 ​

bash
# 创建新笔记
obsidian new --vault "我的笔记" --name "新笔记"

# 使用模板创建
obsidian new --vault "我的笔记" --name "会议记录" --template "模板/会议模板.md"

# 指定文件夹
obsidian new --vault "我的笔记" --name "项目/新笔记"

# 在新标签页打开
obsidian new --vault "我的笔记" --name "新笔记" --open

重命名笔记 ​

bash
# 重命名文件
obsidian rename --vault "我的笔记" --from "旧名称.md" --to "新名称.md"

# 重命名并更新链接
obsidian rename --vault "我的笔记" --from "旧名称.md" --to "新名称.md" --update-links

搜索笔记 ​

bash
# 基本搜索
obsidian search --vault "我的笔记" "搜索关键词"

# 搜索并打开结果
obsidian search --vault "我的笔记" "搜索关键词" --open

# 上下文搜索
obsidian search:context --vault "我的笔记" "关键词"

日记操作 ​

bash
# 打开今日日记
obsidian daily --vault "我的笔记"

# 获取日记路径
obsidian daily:path --vault "我的笔记"

# 在日记中追加内容
obsidian daily:append --vault "我的笔记" --content "今日完成的任务"

# 在日记开头插入内容
obsidian daily:prepend --vault "我的笔记" --content "## 今日计划"

URI 参数 ​

paneType 参数 ​

控制文件打开的方式(v1.11+):

参数值说明版本
tab在新标签页打开v1.11+
split在新分栏打开v1.11+
window在新窗口打开(仅桌面端)v1.11+

URI 示例 ​

bash
# 在新标签页打开
obsidian://open?vault=我的笔记&file=笔记.md&paneType=tab

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

# 在新窗口打开
obsidian://open?vault=我的笔记&file=笔记.md&paneType=window

自动化脚本 ​

Bash 脚本示例 ​

bash
#!/bin/bash
# 每日笔记创建脚本

VAULT="我的笔记"
DATE=$(date +%Y-%m-%d)
NOTE_NAME="日记/$DATE"

# 创建日记
obsidian new --vault "$VAULT" --name "$NOTE_NAME" --open

# 如果日记已存在,直接打开
obsidian open --vault "$VAULT" --file "$NOTE_NAME.md"

批量处理 ​

bash
#!/bin/bash
# 批量重命名脚本

VAULT="我的笔记"
PREFIX="2024_"

# 批量添加前缀
for file in 项目/*.md; do
  filename=$(basename "$file")
  obsidian rename --vault "$VAULT" --from "$file" --to "项目/${PREFIX}${filename}"
done

Python 集成 ​

python
import subprocess
import datetime

def create_daily_note(vault_name: str, content: str = ""):
    """创建日记"""
    date_str = datetime.date.today().strftime("%Y-%m-%d")
    cmd = [
        "obsidian", "new",
        "--vault", vault_name,
        "--name", f"日记/{date_str}",
        "--open"
    ]
    subprocess.run(cmd)

def append_to_note(vault_name: str, note_path: str, content: str):
    """追加内容到笔记"""
    # 通过 daily:append 或手动写入
    pass

# 使用示例
create_daily_note("我的笔记")

与其他工具集成 ​

macOS Shortcuts ​

在 macOS 快捷指令中使用:

  1. 创建新快捷指令
  2. 添加「运行 Shell 脚本」操作
  3. 输入 Obsidian CLI 命令
bash
# 示例:快速创建会议记录
obsidian new --vault "工作笔记" --name "会议/$(date +%Y%m%d_%H%M)_会议记录" --template "模板/会议模板.md" --open

cron 定时任务 ​

bash
# 编辑 crontab
crontab -e

# 每天早上 8 点打开日记
0 8 * * * obsidian daily --vault "我的笔记"

Alfred Workflow (macOS) ​

创建 Alfred Workflow 实现快速搜索:

bash
# Alfred Script Filter
#!/bin/bash
obsidian search --vault "我的笔记" "{query}"

VS Code 集成 ​

在 VS Code 的 tasks.json 中配置:

json
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Obsidian: 打开当前笔记",
      "type": "shell",
      "command": "obsidian",
      "args": [
        "open",
        "--vault", "我的笔记",
        "--file", "${file}"
      ]
    }
  ]
}

高级用法 ​

TUI 自动补全 ​

v1.12.5+ 版本支持终端界面 (TUI) 自动补全功能:

bash
# 在终端中使用 Tab 键自动补全命令
obsidian <Tab>

# 使用 id= 参数时支持命令自动补全
obsidian --vault "我的笔记" <Tab>

性能优化

v1.13 版本使用了新的 CLI 二进制文件,终端交互速度显著提升。需要重新下载安装程序才能获得此改进。

静默模式 ​

CLI 命令默认静默运行,不会干扰当前工作:

bash
# 静默创建笔记
obsidian new --vault "我的笔记" --name "新笔记"

# 如果需要打开笔记,使用 --open
obsidian new --vault "我的笔记" --name "新笔记" --open

指定活动文件 ​

使用 active 参数操作当前活动文件:

bash
# 操作活动文件
obsidian rename --active --to "新名称.md"

处理参数中的冒号 ​

Windows 用户注意:

bash
# Windows 上包含冒号的参数需要特殊处理
obsidian open --vault "我的:笔记" --file "文件.md"

常见问题 ​

CLI 命令不识别? ​

解决方案
  1. 确认 CLI 功能已启用
  2. 检查 PATH 环境变量
  3. 重启终端或重新登录
  4. 重新安装符号链接

命令执行失败? ​

排查步骤
  1. 检查仓库名称是否正确
  2. 确认仓库已打开
  3. 检查文件路径是否存在
  4. 查看终端错误信息

如何处理 Unicode 字符? ​

解决方案

最新 Insider 版本已修复 Unicode 字符问题。

bash
# 支持 Unicode 文件名
obsidian open --vault "我的笔记" --file "中文文件名.md"
```text

如何在后台运行? ​

后台执行
bash
# Linux/macOS - 后台运行
nohup obsidian daily --vault "我的笔记" &

# Windows - 使用 start
start /B obsidian daily --vault "我的笔记"
```text

命令参考 ​

完整命令列表 ​

命令参数说明
help[command]显示帮助信息
open--vault, --file, --paneType打开文件
new--vault, --name, --template, --open创建笔记
search--vault, query, --open搜索笔记
search:context--vault, query上下文搜索
rename--vault, --from, --to, --update-links重命名
daily--vault打开日记
daily:path--vault获取日记路径
daily:append--vault, --content追加内容
daily:prepend--vault, --content插入内容

下一步 ​