Tips & Tricks

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 雇来当园艺机器人,浇水(日志)/ 除草(整理反向链接)/ 收获(生成摘要) 就能全部自动化。

今天就能尝试的第一步:

  1. 在 Vault 根目录放入 CLAUDE.md 并写好规约
  2. 注册 daily-note.sh,自动化每天的晨间笔记
  3. 引入 clip-url.mjs,实现网页文章一键剪藏

只要做这三件事,你与 Vault 的相处方式就会从根本上改变。

相关文章

参考资料

#claude-code #obsidian #pkm #markdown #automation #second-brain

让你的 Claude Code 工作流更上一层楼

50 个经过实战检验的提示词模板,现在就能复制粘贴到 Claude Code 中使用。

免费

免费 PDF:5 分钟看懂 Claude Code 速查表

只需留下邮箱,我们就会立即把这份 A4 一页速查表 PDF 发送给你。

我们会严格保护你的个人信息,绝不发送垃圾邮件。

Masa

本文作者

Masa

深度使用 Claude Code 的工程师。运营 claudecode-lab.com——一个涵盖 10 种语言、超过 2,000 页内容的科技媒体。