claude-obsidian:基于 Claude 与 Obsidian 的知识管理引擎项目

Self-organizing AI second brain for Obsidian + Claude Code. Drop any source and Claude reads, links, and files it into one connected knowledge graph of plain Markdown you own. AI note-taking, personal knowledge management (PKM), and an open-source Notion alternative. Based on Karpathy's LLM Wiki pattern.

分支1Tags14
文件最后提交记录最后更新时间
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
3 个月前
1 个月前
1 个月前
1 个月前
4 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前
1 个月前

claude-obsidian cover featuring an astronaut, the Obsidian crystal, and a connected knowledge graph

claude-obsidian

打造一个越用越好用的 Obsidian 知识库。
轻松捕获资料来源、创建互联笔记、获取基于事实的答案,同时保持库的健康状态——全程无需放弃文件所有权。

MIT license Agent Skills compatible Claude Code plugin Release v2.0.0

查看工作流程 · 快速开始 · 探索功能 · 安装指南

claude-obsidian 是一个面向 Claude Code 及兼容 Agent Skills 宿主的本地优先知识系统。它能将原始资料转化为带链接和来源引用的 Obsidian 页面;基于库中已有的证据提供答案;并为研究、检索、维护和可视化图谱提供清晰的工作流程。

您的库始终是一个包含 Markdown、JSON 和源文件的普通目录。它不会隐藏在插件缓存中、锁定在云数据库里,也不会被静默上传到模型。

From source to living knowledge

大多数 AI 笔记工作流程在保存文本后就止步不前。claude-obsidian 围绕一个可重复的循环构建:保留来源、夯实观点、连接知识,然后让知识发挥作用。

The claude-obsidian compounding knowledge loop

  • 带上下文捕获。 通过可视化的收件箱处理本地来源,并在进行内容合成前保留不可变的、基于内容寻址的副本。
  • 为每个重要观点提供依据。 来源和观点台账记录权威性、时效性、支持证据、矛盾信息、可信度和审核状态。
  • 连接所学知识。 构建链接页面、索引、内容地图(Maps of Content)、方法感知结构和 Obsidian Canvas 视图。
  • 重复利用知识库。 查询、研究、检索、整理和整合已知内容,无需每次从头开始。

查看知识库

无论是否使用智能代理,输出内容都保持实用性:采用通用的 Markdown 格式确保可移植性,借助 Obsidian 实现导航与可视化探索。

Example claude-obsidian vault in Obsidian Graph view Example claude-obsidian knowledge map in Obsidian Canvas

图谱视图中的关联知识 · Obsidian Canvas 中的可视化知识地图

为何与众不同

  • 默认本地优先:知识库归用户所有,作为普通文件运行。网络数据传输是独立且需明确操作的步骤。
  • 源文件与摘要共存:笔记可回溯至可靠的原始依据;未经证实及相互矛盾的观点均清晰可见。
  • 知识有序积累:信息摄入、查询、整理、检索、研究及汇总均采用同一溯源模型。
  • 多代理协同无冲突:工作代理返回草稿,由单一协调器检查并执行可恢复的事务操作。
  • 功能如实呈现:自动检测可选工具,明确标注功能成熟度,适配缺失时清晰降级而非模拟实现。

本工具并非自动转录记录器、云同步服务、事实查询引擎,亦不能替代备份与版本控制工具。

快速开始

首次运行的最安全方式是使用源码检出及独立的用户知识库。所有可能修改数据的设置命令在执行前都会先展示具体操作内容。

1. 获取产品

git clone https://github.com/AgriciDaniel/claude-obsidian.git
cd claude-obsidian

检出的内容包含产品本身,并非您的知识库。

2. 初始化一个独立的知识库

export GENERATED_AT="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
export OPERATION_ID="init-reviewed"

python3 scripts/claude-obsidian.py init "$HOME/Documents/MyKnowledgeVault" \
  --generated-at "$GENERATED_AT" --operation-id "$OPERATION_ID"

查看 JSON 计划并复制其 approved_plan_sha256,然后执行该确切操作:

python3 scripts/claude-obsidian.py init "$HOME/Documents/MyKnowledgeVault" \
  --generated-at "$GENERATED_AT" --operation-id "$OPERATION_ID" \
  --approved-plan-sha256 "<sha256-from-the-plan>" --apply

对于现有的 Obsidian 库,请使用安装指南中描述的非破坏性 adopt 工作流程。

3. 从库开始

在 Obsidian 中打开新目录,然后通过本地插件从该目录运行 Claude Code:

cd "$HOME/Documents/MyKnowledgeVault"
claude --plugin-dir /absolute/path/to/claude-obsidian

从以下内容开始:

/claude-obsidian:wiki

然后将源文件放入 inbox/ 文件夹并调用 /claude-obsidian:wiki-ingest。使用 /claude-obsidian:save 明确保存答案;通过 /claude-obsidian:wiki-query 向知识库提问。

对于 Codex、OpenCode 或 Gemini,请先预览,然后从产品结账页面应用可移植技能链接:

bash bin/setup-multi-agent.sh --host codex
bash bin/setup-multi-agent.sh --host codex --apply

Cursor 和 Windsurf 采用工作区本地技能发现机制。市场设置、所有支持的宿主、库采用、升级和卸载步骤均在完整安装指南中涵盖。

15 项技能,一个系统

各项技能小巧到可直接调用,又能协同工作,共享相同的证据、库选择和变更规则。

构建和使用 wiki

技能 功能描述
wiki 初始化或采用库,诊断就绪状态,并路由工作
save 保存一个限定范围的答案或见解——绝不会是自动转录
wiki-ingest 将捕获的源内容转换为链接页面和出处记录
wiki-query 基于相关库证据提供只读答案
wiki-lint 报告死链接、孤立页面、元数据缺失、过时索引和空章节

扩展工作流

技能 新增功能
autoresearch 有限制的网络研究,具有明确的输出和单独的规范合并
canvas 基于 wiki 范围的 Obsidian Canvas 创建和维护
defuddle 在摄入前清理网页内容,使其更易读
wiki-fold 对操作日志进行可追溯的提取式汇总
wiki-mode 通用、LYT、PARA 或 Zettelkasten 归档约定
wiki-retrieve 上下文前缀、BM25 以及可选的余弦重排序
wiki-cli Obsidian 命令行界面,支持读取、搜索以及事务安全写入

参考技能

技能 提供内容
obsidian-markdown 正确的 Obsidian 风格 Markdown、链接、嵌入和标注
obsidian-bases 原生 .base 表格、卡片、筛选器、公式和摘要
think 结构化的观察、倾听、连接、创造和成长回顾循环

Claude Code 公开命名空间调用,例如/claude-obsidian:wiki-lint;其他宿主则使用其原生的 Agent Skills 调用方式。触发短语和确切约定详见每个skills/<name>/SKILL.md文件。

信任是架构的一部分

The claude-obsidian product and vault trust boundary

产品从不将源代码检出、插件缓存或贡献者状态视为默认库。库是通过CLAUDE_OBSIDIAN_VAULT、最近的.claude-obsidian.json或一个明确初始化的上级目录显式选择的。如果选择存在不确定性,命令将退出且不执行写入操作。

一个逻辑知识操作就是一个可恢复的事务:

  1. 读取每个目标并记录其预期的 SHA-256。
  2. 让并行工作器仅返回草稿和证据。
  3. 将完整的变更合并为一个操作包。
  4. 检查操作包,然后一次性应用。
  5. 报告操作 ID 和确切的变更路径。

核心持有一个进程生命周期的库锁,记录备份日志,使用原子替换,并在应用无法完成时恢复先前状态。已变更的目标会被视为冲突,绝不会被静默覆盖。Git 检查点、破坏性修复、网络输出和规范研究合并始终是显式操作。

有关面向机器的详细信息,请阅读事务约定出处约定复合库架构

诚实的能力边界

输入或能力 当前支持情况
本地文件系统源 已实现有限的、基于内容寻址的字节捕获
图片 元数据、哈希、大小,以及可用时的有限维度信息
PDF 和 EPUB 元数据、哈希和大小;无内置语义提取
URL 和 YouTube 已验证的许可计划;需要配置外部运行器
OCR 本地文件许可计划;需要配置外部运行器
BM25 检索 本地且确定性的
上下文前缀或远程模型 可选,并受明确的出站许可控制
Obsidian CLI 可选用于读取/搜索;文件系统传输仍可用

高风险的可接受声明需要两个独立来源。不支持或矛盾的证据保持可见,相比于虚构引用,更倾向于基于事实的拒绝。当嵌入或重排序阶段不可信时,基于模型的检索会回退到确定性的 BM25。

让知识库符合你的思维方式

wiki-mode 可以使用四种方法路由新笔记,而无需批量移动现有知识:

模式 归档原则
Generic 来源、概念、实体和会话
LYT 内容地图和关联的原子笔记
PARA 项目、领域、资源和档案
Zettelkasten 稳定标识符、原子笔记和密集链接

未配置任何模式时,默认使用 Generic 模式。切换模式会改变新笔记的路由方式,但不会静默重组旧笔记。请参阅 方法论模式指南

操作指南

可移植 CLI

包装器为 python3 scripts/claude-obsidian.py

命令 作用
doctor --vault PATH 显示知识库选择和就绪状态
init PATH [--approved-plan-sha256 HASH --apply] 规划或创建独立的知识库
adopt PATH [--approved-plan-sha256 HASH --apply] 规划或采用现有的 Obsidian 知识库
migrate --vault PATH [--approved-plan-sha256 HASH --apply] 添加 v1 分类账和配置,不重写遗留数据
transaction inspect BUNDLE --vault PATH 验证写入包而不进行修改
transaction apply BUNDLE --vault PATH --approved-plan-sha256 HASH 应用一个已检查的、可恢复的操作
transaction recover --vault PATH [--force-stale-lock] 恢复中断的操作
lint --vault PATH [--as-of YYYY-MM-DD] 针对声明的 UTC 日期发出确定性结果
contracts --verify --vault PATH 执行能力就绪合同
capture plan --vault PATH [SOURCE ...] 运行本地捕获预检,不执行写入
capture apply --vault PATH [SOURCE ...] 规划或创建不可变的基于内容寻址的副本
checkpoint OPERATION_ID --vault PATH 显式提交一个已完成的操作
package validate 检查技能、钩子、清单和文档的一致性
release build --output FILE.zip 构建并自我审计确定性的公共制品
release audit FILE.zip 审计制品,无需解压或发布

高级别的变异规划器会生成 approved_plan_sha256。固定 --generated-at--operation-id,查看 JSON 操作,并使用 --apply 传递确切的哈希值。文件系统或生成包的偏移会在写入知识库前失败。

仓库和知识库布局
product repository/                user vault/
├── claude_obsidian/               ├── .gitignore
├── skills/                        ├── .claude-obsidian.json
├── hooks/                         ├── inbox/
├── scripts/                       ├── .raw/
├── templates/vault/               ├── wiki/
├── config/                        ├── .obsidian/
├── assets/                        └── .vault-meta/   # ignored runtime state
└── tests/

公共制品包含产品代码、确定性模板以及经过审核的 README 资源。它们会排除贡献者的热状态/日志状态、根目录原始源文件、运行时元数据、私有路径、可识别的个人电子邮件地址、密钥、符号链接、不安全的归档条目以及未经审核的二进制文件。

专用开发检出版本特意不包含市场目录。发布构建器仅会将经过审核的目录注入到分发清洁的制品中。公共默认分支必须从该经过审计的树中填充,绝不能通过推送贡献者库状态来实现。

升级、回滚和卸载

独立于库升级产品。对于较旧的库,首先预览附加的、幂等的迁移:

python3 scripts/claude-obsidian.py migrate --vault /path/to/vault \
  --generated-at "$GENERATED_AT" --operation-id migrate-reviewed

检查其哈希值,并使用 --approved-plan-sha256 HASH --apply 重新运行。 迁移会逐字节保留旧版原始清单,不会从文本中推断声明。

操作中断后,请运行:

python3 scripts/claude-obsidian.py transaction recover --vault /path/to/vault

删除插件或主机链接绝不会移除库。仅删除您安装的集成;用户笔记、来源、分类账和 Obsidian 设置仍归您所有。

要求

  • 用于可移植核心的 Python 3.11 或更高版本
  • 用于可视化库体验的 Obsidian;纯 Markdown 无需 Obsidian 也可使用
  • 用于设置、可选扩展和 shell 测试套件的 Bash
  • 仅用于开发、发布或显式知识检查点的 Git

CI 适用于 Linux 和 macOS。在 Windows 上,请使用 WSL;原生 Windows 和 Git Bash 目前不保证兼容性。Obsidian CLI、Ollama 和 defuddle 等可选工具会进行功能检测,且仅影响其相关工作流。

开发与发布

make test

测试目标会运行所有隔离的 Python 和 shell 套件、产品与功能契约、技能和钩子验证、清单检查以及包边界检查。CI 会在受支持的 Linux 和 macOS/Python 组合上重复运行该套件,并验证字节可重现的发布构建。

本地构建和审计,无需发布:

python3 scripts/claude-obsidian.py release build --output dist/claude-obsidian.zip
python3 scripts/claude-obsidian.py release audit dist/claude-obsidian.zip

不会自动执行命令推送、标记、发布、创建问题或生成版本。请参阅CONTRIBUTING.mdSECURITY.mdCODE_OF_CONDUCT.md

渊源、许可与致谢

本设计遵循Andrej Karpathy的LLM Wiki模式,并以kepano/obsidian-skills作为Obsidian Markdown、Bases和JSON Canvas语法的参考基础。

采用MIT许可。详见ATTRIBUTION.mdCITATION.cff