Claude Code x Obsidian 完整联动指南 | 培育 Vault 的 AI 笔记术
用 Claude Code 让 Obsidian Vault 自动成长的实战指南。从日志生成、网页剪藏到反向链接自动化,附可运行代码全面讲解。
作为 Obsidian 用户,你大概都想过一句话:“这个 Vault 要是能自动整理就好了。“Claude Code 就是 Obsidian 的最佳拍档。 因为 Obsidian Vault 说到底就是一个装满 Markdown 文件的文件夹,而读写文件树正是 Claude Code 最擅长的事情。
本文将结合可运行代码与真实示例,彻底解说如何让 Claude Code 与 Obsidian 联动,自动培育你的 Vault。从日志生成、网页剪藏、反向链接补全到插件开发,一站式介绍真正可用的流程。
为什么是 Obsidian x Claude Code
Obsidian 的优势有三:
- 本地优先:全部是存在自己电脑里的 Markdown 文件
- 纯文本:无厂商绑定,未来也能读
- 链接驱动:用
[[笔记名]]向四面八方链接,编织思考
这与 Claude Code 的优势完美契合:
- 可以直接操作文件树(
Read/Edit/Write/Glob) - 把 Markdown 当作一等公民(连 Wikilink 都能解析)
- 可以用 CLAUDE.md 教它 “这个 Vault 专用的规约”
一言以蔽之:在 Claude Code 眼里,Obsidian Vault 就是 “一个非常整齐的小项目”。可以用写代码的同样手感,把笔记整理自动化。
基础配置:在 Vault 里放 CLAUDE.md
首先在 Vault 根目录放一份 CLAUDE.md。这样在 Vault 内启动 Claude Code 时会自动加载。
# 我的 Obsidian Vault 规约
## 目录结构
- `daily/YYYY-MM-DD.md` — 日志
- `zettel/` — 永久笔记(1 笔记 1 想法,标题为概念名)
- `literature/` — 阅读笔记、网页文章剪藏
- `project/` — 进行中的项目
- `meta/` — 标签定义、模板
## 记法规则
- 笔记间链接用 `[[笔记名]]` 书写
- 标签写在正文开头的 frontmatter 中
- 日志固定三级结构 `## Today / ## Learned / ## Questions`
- 来源 URL 写在 frontmatter 的 `source:`
## 禁止事项
- 重命名已有笔记必须确认(反向链接会断)
- `_archive/` 下的笔记不得修改
明示 Vault 规则后,Claude Code 就会按规约生成和编辑笔记,避免格式混乱导致的事故。
实现例 1:自动生成每日日志
每天开工时,把昨天的笔记总结一下并生成今天模板的脚本。
#!/bin/bash
# ~/vault/scripts/daily-note.sh
TODAY=$(date +%Y-%m-%d)
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
VAULT=~/vault
claude -p "
请执行以下操作:
1. 读取 $VAULT/daily/$YESTERDAY.md(不存在则跳过)
2. 从昨天的 'Today' 段落提取 '未完成任务'
3. 从昨天的 'Learned' 段落提取 3 条 '今日复盘点'
4. 创建 $VAULT/daily/$TODAY.md,用下面模板填充:
---
date: $TODAY
tags: [daily]
---
## Today(今日计划)
- (昨天的未完成任务放这里)
## Learned(学到、发现)
_空白_
## Questions(疑问、探究备忘)
_空白_
## Review(昨日复盘)
- (提取的 3 条放这里)
## Links
[[$YESTERDAY]] <-> [[$(date -d tomorrow +%Y-%m-%d)]]
---
5. 完成后只回复 '日志创建完毕'
"
把它注册到 cron、macOS launchd 或 Windows 任务计划程序,一早醒来今日笔记就已经准备好。只要打开 Obsidian 就能进入工作状态。
实现例 2:把网页文章剪藏进 Vault
Read Later 用途。只需传 URL,格式化好的笔记就会保存到 literature/。
// scripts/clip-url.mjs
import Anthropic from "@anthropic-ai/sdk";
import { writeFileSync } from "fs";
const url = process.argv[2];
const client = new Anthropic();
const res = await client.messages.create({
model: "claude-opus-4-6",
max_tokens: 4096,
tools: [{ type: "web_search_20250101", name: "web_search" }],
messages: [{
role: "user",
content: `获取以下 URL 的文章,并生成 Obsidian 笔记:
URL: ${url}
输出格式:
---
title: (文章标题)
source: ${url}
tags: [literature, (2-3 个主题标签)]
clipped: ${new Date().toISOString().slice(0, 10)}
---
# (文章标题)
## TL;DR
(三行以内的摘要)
## Key Points
- (5 条要点)
## My Take
_稍后补充_
## Related
[[现有 Vault 内的相关笔记(猜测即可)]]
`,
}],
});
const body = res.content[0].text;
const slug = body.match(/title: "(.+?)"/)?.[1]?.replace(/[\/:]/g, "-") ?? "untitled";
writeFileSync(`${process.env.VAULT}/literature/${slug}.md`, body);
console.log(`Clipped to literature/${slug}.md`);
用法:node clip-url.mjs https://example.com/article
挂到浏览器右键菜单后,就能想读的文章右键一下保存到 Vault,之后可搜索,工作流就完整了。
实现例 3:反向链接自动补全
Obsidian 只要写 [[笔记名]] 就会建立反向链接,但**“这篇笔记明显和那个概念相关却忘了引用”** 的情况太常见了。用 Claude Code 批量补全。
claude -p "
读取 $VAULT/zettel/ 下的所有 Markdown,执行以下操作:
1. 从每篇笔记正文中提取 '重要概念、人物、理论名'
2. 检查这些概念是否作为其他笔记的标题存在
3. 存在但未链接的地方用 [[...]] 括起来
4. 如果笔记末尾没有 '## Related' 小标题则新增,并
列出 2-3 条正文没有自然出现的相关笔记
修改前先显示 diff,征得同意后再应用。
"
重点:不要忘记审批流程。自动插入反向链接很方便,但混入错误链接会破坏 Vault 的可信度。“应用前先看 diff” 是铁律。
实现例 4:会议纪要笔记化 + 打标签
把语音转写或原始会议文本转成结构化笔记。
claude -p "
读取 $VAULT/inbox/raw-meeting-2026-04-16.txt,按下面结构
保存到 $VAULT/literature/meeting-2026-04-16.md:
---
title: '(推测会议标题)'
date: 2026-04-16
type: meeting
tags: [meeting, (从议题推测的标签)]
attendees: [(提取的与会者姓名)]
---
## 决议事项
## Action Items(含负责人与期限)
## 讨论内容(按话题整理)
## 下次之前的作业
末尾把提到的人物链接成 [[人物名]]。
完成后把 inbox/raw-meeting-2026-04-16.txt 移动到 _archive/。
"
把原始文本扔进 inbox,之后统一批处理转换即可。
实现例 5:用 Claude Code 开发 Obsidian 插件
Obsidian 插件用 TypeScript 编写。Claude Code 擅长 TS,与插件开发的兼容性极佳。
cd ~/my-obsidian-plugin
claude
# 在 Claude Code 内:
> 读取 main.ts,用 3 行说明这个插件在做什么
> 添加新功能 "用 Claude API 总结选中文本并插入光标位置"
> 把 manifest.json 也更新到对应版本
> 确认 npm run build 能通过
几分钟就能完成一个可用的插件。把官方 Obsidian 插件样例仓库 git clone 下来,Claude Code 就能以它为基础进行扩展。
如何对待 Obsidian 专有记法
Claude Code 需要了解的 Obsidian 特有记法:
| 记法 | 含义 | 示例 |
|---|---|---|
[[笔记名]] | Wikilink(内部链接) | [[Claude Code]] |
[[笔记名#标题]] | 指向特定标题的链接 | [[FAQ#费用]] |
[[笔记名|显示文本]] | 带别名的链接 | [[Claude Code|CC]] |
![[笔记名]] | 嵌入整篇笔记 | ![[引文集]] |
%%注释%% | 发布视图下隐藏的注释 | %%TODO:需润色%% |
在 CLAUDE.md 中说明这些记法,Claude Code 就会自然地区分使用。
五个常见陷阱
1. 同步冲突(Obsidian Sync / iCloud / Dropbox) Claude Code 改写文件时,如果移动端同步在跑就会冲突。运行 Claude Code 时临时暂停同步更稳妥。也可以在自动化脚本开头加上 “pause Obsidian Sync” 指令。
2. 文件名不能用的字符
Obsidian 笔记标题里放冒号 : 或斜杠 / 会在 OS 层面创建失败。让 Claude Code 生成时要明示 “文件名只用字母、数字、连字符和中文”。
3. 反向链接的大规模改写 重命名自动化会导致反向链接更新遗漏、链接断裂。重命名走 Obsidian UI,只把纯文件移动交给 Claude Code 比较稳妥。
4. 写出了依赖插件的内容 Claude Code 如果写出 Dataview 或 Templater 的记法,在未装插件的环境中就会崩。最好用 CLAUDE.md 限制为 “标准 Markdown + Wikilink” 范围内。
5. 对巨大 Vault 的一次性执行
在 5000 笔记的 Vault 上跑 Glob **/*.md + 全部读取会让上下文爆炸。委托给子代理并限定范围,例如 “仅 zettel/ 目录下”。
工作流示例:一天的流程
介绍一下我自己的用法:
07:00 daily-note.sh 自动启动,生成今日笔记
09:00 启动 Obsidian,填入 Today 段落
12:00 读到有趣的网页用 clip-url.mjs 保存
15:00 开会,把纪要扔进 inbox/
17:00 用 claude 把纪要整理进 literature/
22:00 把当天的学习沉淀为 zettel/ 里的永久笔记
深夜 每周跑一次 backlink-suggest.sh 补齐反向链接
“写” 归我,“整理” 归 Claude Code——这种分工特别契合。我专注于思考和创意,把整理和联结的琐事交给 AI。这就是 Obsidian x Claude Code 的真正价值。
总结
Obsidian Vault 常被比喻为 “需要打理的花园”。把 Claude Code 雇来当园艺机器人,浇水(日志)/ 除草(整理反向链接)/ 收获(生成摘要) 就能全部自动化。
今天就能尝试的第一步:
- 在 Vault 根目录放入
CLAUDE.md并写好规约 - 注册
daily-note.sh,自动化每天的晨间笔记 - 引入
clip-url.mjs,实现网页文章一键剪藏
只要做这三件事,你与 Vault 的相处方式就会从根本上改变。
相关文章
参考资料
免费 PDF:5 分钟看懂 Claude Code 速查表
只需留下邮箱,我们就会立即把这份 A4 一页速查表 PDF 发送给你。
我们会严格保护你的个人信息,绝不发送垃圾邮件。
本文作者
Masa
深度使用 Claude Code 的工程师。运营 claudecode-lab.com——一个涵盖 10 种语言、超过 2,000 页内容的科技媒体。
相关文章
Claude Code 安全最佳实践完全指南:API密钥管理、权限设置与生产环境保护
安全使用 Claude Code 的实战指南。从 API 密钥管理到权限配置、基于 Hooks 的自动化检查,再到生产环境保护——附带可直接运行的代码示例。
Claude Code 安全失败案例7选 | 真实事故与防范措施
介绍7个Claude Code中实际发生的安全事故:.env泄露、生产数据库误操作、计费爆炸等,逐案解析原因与防范代码。
Claude Code 权限配置完全指南 | settings.json·Hooks·allowlist 深度解析
全面解析 Claude Code 权限配置。allow/deny/ask 的使用场景、Hooks 自动化、环境专属 settings.json 以及实战配置模式,附完整可运行代码示例。