命令行界面 (CLI)
版本要求
命令行界面 (CLI) 是 Obsidian v1.12+ (Insider) 新增功能,稳定版用户请升级到 Insider 版本或等待正式发布。
概述
Obsidian CLI(命令行界面)允许你从终端控制 Obsidian,非常适合用于:
- 自动化脚本:批量处理笔记
- 外部工具集成:与其他应用程序联动
- 快捷操作:快速执行常用命令
- 工作流自动化:配合 cron、Shortcuts 等使用
启用 CLI
首次设置
- 打开 Obsidian
- 进入「设置 → 通用」
- 找到「命令行界面」选项
- 开启「启用命令行界面」
- 按照提示完成系统配置
系统配置
macOS
bash
# 运行以下命令将 Obsidian 添加到 PATH
sudo ln -sf /Applications/Obsidian.app/Contents/MacOS/obsidian /usr/local/bin/obsidian
# 验证安装
obsidian --versionWindows
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 | 显示帮助信息 | Insider |
obsidian open | 打开文件或仓库 | Insider |
obsidian new | 创建新笔记 | Insider |
obsidian search | 搜索笔记 | Insider |
obsidian search:context | 上下文搜索 | Insider |
obsidian rename | 重命名文件 | Insider |
obsidian daily | 日记相关操作 | Insider |
obsidian daily:path | 获取日记路径 | Insider |
仓库操作
打开仓库
bash
# 打开特定仓库
obsidian open --vault "我的笔记"
# 打开特定文件
obsidian open --vault "我的笔记" --file "项目/计划.md"
# 在新窗口打开
obsidian open --vault "我的笔记" --new-windowURI 操作
支持通过 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}"
donePython 集成
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 快捷指令中使用:
- 创建新快捷指令
- 添加「运行 Shell 脚本」操作
- 输入 Obsidian CLI 命令
bash
# 示例:快速创建会议记录
obsidian new --vault "工作笔记" --name "会议/$(date +%Y%m%d_%H%M)_会议记录" --template "模板/会议模板.md" --opencron 定时任务
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}"
]
}
]
}高级用法
静默模式
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 命令不识别?
解决方案
- 确认 CLI 功能已启用
- 检查 PATH 环境变量
- 重启终端或重新登录
- 重新安装符号链接
命令执行失败?
排查步骤
- 检查仓库名称是否正确
- 确认仓库已打开
- 检查文件路径是否存在
- 查看终端错误信息
如何处理 Unicode 字符?
解决方案
最新 Insider 版本已修复 Unicode 字符问题。
bash
# 支持 Unicode 文件名
obsidian open --vault "我的笔记" --file "中文文件名.md"如何在后台运行?
后台执行
bash
# Linux/macOS - 后台运行
nohup obsidian daily --vault "我的笔记" &
# Windows - 使用 start
start /B obsidian daily --vault "我的笔记"命令参考
完整命令列表
| 命令 | 参数 | 说明 |
|---|---|---|
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 | 插入内容 |