- 资料归档流水线:把网页、PDF、剪藏丢进 inbox/,让 Claude 生成带来源的互链笔记,比手工整理或纯向量库检索更容易人工校对和 diff
- 已有笔记库的问答:在 Obsidian vault 上做只读问答并附引用,适合笔记已经积累几年、不想再搬进 SaaS 的人
- 需要可回滚的自动写入:SHA-256 指纹加事务日志,适合让 agent 直接改你的笔记库、又必须能撤销的场景;纯 LLM 直接写文件做不到这点
- 多套归档法的实验:Generic/LYT/PARA/Zettelkasten 切换,适合想比较不同组织结构对检索效果影响的人
claude-obsidian
AgriciDanielMIT活跃维护 有专家点评给 Obsidian 加一个自组织的 AI 第二大脑,丢进任意资料,Claude Code 会自动阅读、建立链接并归档成纯 Markdown 知识图谱,数据完全归你所有。
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.
专家点评
上手难度:进阶更新于 2026-11-11把 Obsidian 库变成 Claude Code 可读写的纯 Markdown 知识图谱,替代 Notion 式托管笔记
适用场景
踩坑
- 安装方式选错会直接卡住:issue 里反复出现 git clone 后 /wiki、/save 不被发现,README 的 clone 路径和 Claude Code 实际加载插件的方式不一致,必须走 plugin marketplace install 或显式 --plugin-dir
- SessionStart 的 prompt 型 hook 在部分 Claude Code 版本上直接报 ToolUseContext is required,升级 Claude Code 后可能整个会话初始化就失败,属于版本耦合风险
- 原生 Windows 只能预览、写库会报错停止,必须走 WSL;另外 3.0.0 升级时插件名从 agricidaniel-obsidian 改成 claude-obsidian,旧配置不会自动迁移
同类对比
要的是向量检索而非人可读的 Markdown 图谱,看 LlamaIndex 或 txtai;要的是托管式协作笔记,Notion 本身仍更省事,这个项目的价值前提就是你坚持文件归自己所有
claude plugin marketplace add AgriciDaniel/claude-obsidian
claude plugin install claude-obsidian@agricidaniel-claude-obsidianREADME 未说明显存或 GPU 要求;需要 Claude Code、Python 3.11 或更新版本,可视化浏览需 Obsidian。
项目说明
由 README 自动翻译提炼把资料丢进 Obsidian 库,Claude 自动读取、互链并归档成纯 Markdown 知识图谱
给 Obsidian 加一个自组织的 AI 第二大脑,丢进任意资料,Claude Code 会自动阅读、建立链接并归档成纯 Markdown 知识图谱,数据完全归你所有。
核心能力
- 把 inbox/ 里的原始资料转成带来源的互链笔记
- 基于已有笔记只读问答并附引用
- 用 SHA-256 指纹加事务日志保证写入可回滚
- 检测死链、孤立页面和缺失元数据
- 支持 Generic、LYT、PARA、Zettelkasten 归档模式
容易踩的坑
Windows 上写库需用 WSL,原生 Windows 只能预览并会报错停止;defuddle 的网页清洗依赖可选外部工具;从 3.0.0 升级需注意插件名从 agricidaniel-obsidian 改为 claude-obsidian。
- v3.0.1Claude Obsidian v3.0.1 - Original Plugin Name Restored最新正式版2026-10-21 · 2026-10-21 18:06 UTC
Claude Obsidian v3.0.1 restores the Claude plugin name
claude-obsidian, so commands are/claude-obsidian:*again. Version 3.0.0 had renamed the plugin toagricidaniel-obsidian, which changed every command. Nothing else changes: all of the 3.0.0 hardening is included.Upgrading
From 2.x, this is an ordinary update and your commands never change:
claude plugin marketplace update agricidaniel-claude-obsidian claude plugin update claude-obsidian@agricidaniel-claude-obsidianFrom 3.0.0 (
agricidaniel-obsidian), the marketplace update moves your settings back, then install once:claude plugin marketplace update agricidaniel-claude-obsidian claude plugin install claude-obsidian@agricidaniel-claude-obsidianRestart Claude Code after either path. Managed settings that name
agricidaniel-obsidianneed the key changed by hand. See the namespace guide.Why the name works
Claude Code installs and loads
claude-obsidiannormally. Its validator reports names that start withclaude-as reserved, andclaude plugin tagrefuses them, so keeping the name the community knows is a deliberate exception. The project's own package validator acceptsclaude-obsidianand still rejects every other reserved name.Verification
- 12 of 12 GitHub checks passed on the
mainmerge commit: Ubuntu and macOS on Python 3.11 to 3.14, the Windows portable surface, the reproducible release artifact gate and CodeQL. The release PR ran the same matrix green. - With Claude Code 2.1.306 in isolated configs, against a marketplace that moved between the v2.2.0, 3.0.0 and 3.0.1 trees: a 2.2.0 install updated to 3.0.1 with its enabled setting unchanged, and a 3.0.0 install had its setting moved back and reinstalled as 3.0.1 with one command.
- In a live session, all 15 skills and 3 agents load under
claude-obsidian:. make test, package validation and the release tests passed.claude plugin validatereports one error, the reserved name.- Final archive built twice from merge commit
6414e1a232a00515dc0b89f61b1d792b3dc93237and matched byte for byte.
Artifact integrity
- File:
claude-obsidian-v3.0.1.zip - SHA-256:
c45d4daf43520030110c7df38c364f7e0585fceb58234c35c53d035fd2af61ad - Size: 3,947,350 bytes
- Payload: 254 files, 3,838,004 bytes
- Artifact audit: 0 errors
Full changes: v3.0.0...v3.0.1
- 12 of 12 GitHub checks passed on the
- v3.0.0Claude Obsidian v3.0.0 - Hardening and Plugin Rename2026-10-21 · 2026-10-21 17:27 UTC
查看更新说明
Use v3.0.1 instead. It keeps everything below and restores the original plugin name
claude-obsidian, so commands stay/claude-obsidian:*and 2.x users upgrade with an ordinary update. The upgrade steps on this page are superseded.Claude Obsidian v3.0.0 is a hardening release: recoverable transactions, deterministic lint and retrieval, offline evaluation, explicit provider controls, and a renamed Claude Code plugin. The rename is the only breaking change. Vaults need no migration.
Upgrading from 2.x
Claude Code now reserves plugin names that start with
claude-, so the plugin is renamed fromclaude-obsidiantoagricidaniel-obsidian. Commands change from/claude-obsidian:*to/agricidaniel-obsidian:*, with no alias. Run:claude plugin marketplace update agricidaniel-claude-obsidian claude plugin install agricidaniel-obsidian@agricidaniel-claude-obsidianThen restart Claude Code. The marketplace
renamesmap moves existing installs to the new name instead of reporting the plugin as missing, but the plugin is not installed until the install command runs. Managed settings need the key changed by hand. The repository, the Python package and the vault formats keep the claude-obsidian name.Two more things change on upgrade:
- Contextual prefixes no longer fall back to
claude -p. Without a configured API or local Ollama provider, prefixes stay synthetic. - Cached prefixes are reused only when they match the current provider settings. Caches from 2.x record no settings, so the first run regenerates them all. With
--allow-egress, that sends every page to the configured API again.
See the namespace migration guide for verification and rollback.
Highlights
- Recoverable transactions. A target that is deleted or edited outside the transaction rolls back with the original conflict instead of leaving a journal that blocks later work. Recovery honors the in-flight marker, so an interrupted rollback never undoes a write that did not begin.
- Lint that matches Obsidian. Code spans stop at paragraph boundaries, so a stray backtick no longer hides later links. Encoded paths are split before decoding (#193, #194), unscanned flat vaults are reported instead of passing clean (#200), and existing hidden
.rawtargets are told apart from missing files (#191). The scanners stay linear on large and adversarial pages. - Unicode file names. Pages with decomposed Unicode names (macOS, or a vault synced from it) are linted, chunked and indexed. Before this release, one such page stopped chunking for the whole vault.
- Retrieval and providers. An optional local Ollama prefix tier with a cloud-disabled local-model check (#63), Haiku 5.5 with its cache floor (#195), bounded requests, strict reply parsing, and corrupt chunk records skipped without losing healthy hits.
- Offline evaluation. Labeled retrieval evaluation with recall, MRR and retained misses on a multilingual fixture, plus Query and Save prompt evaluation with negative controls. Neither makes provider requests.
- Save and Ingest workflows. Named inspect and apply steps with hash-bound catalog policy. Canvas catalogs use
_index.md, and wiki-mode routes keep page titles in filenames (#199) while stripping the characters Obsidian cannot link to. - Hooks and hosts. SessionStart exits before importing the CLI when context injection is off (#168), CLI transport detection checks that this vault is reachable (#141), and forked sessions are matched on current Claude Code hosts.
The full list is in the changelog.
Thanks
This release builds on pull requests from @Ychris12138 (#194), @Marcos64s (#199), @hphsu (#195), @vinsocci (#63) and @miraclemanza (#46), and on issue reports from @Roel
- Contextual prefixes no longer fall back to
- v2.2.0Claude Obsidian v2.2.0 - Backlog Triage2026-09-10 · 2026-09-10 14:49 UTC
查看更新说明
Claude Obsidian v2.2.0 closes the open backlog after a full review of every issue, pull request, and branch: lint scoping, lock recovery, host validation, a layout change required for claude.ai plugin distribution, a single page-type vocabulary, gitignore-aware link resolution, and a ZCode host adapter.
Highlights
- Lint skips dot-prefixed directories by default (
.raw/,.claude/,.trash/), gains a repeatable--exclude GLOBflag with a matching engine parameter and vault-config array, and drops gitignored candidates from ambiguous wikilink resolution (#159, #163, #183, #184). --force-stale-lockcan reap a confirmed-dead same-host owner before--stale-after, for both the mutation lock and the capture queue lock, and runtime reads tolerate metadata-only mtime touches while still failing closed on any content change (#157).- The public-host validator rejects hex-dotted, octal-dotted, and short-form loopback spellings.
- The five setup scripts moved from
bin/toscripts/, because claude.ai rejects organization-distributed plugins with a top-levelbin/; package validation now guards against its return (#138). Invocations change frombash bin/setup-*.shtobash scripts/setup-*.sh. - The page-type vocabulary is declared once in
claude_obsidian/page_schema.py,questionis routable in every mode, andwiki-mode.py routeexplains rejections (#148, #149). - Twelve skills state how
../wiki/references/links resolve, enforced by package validation (#170). - Native Windows: CRLF frontmatter parses in contextual prefixes (#179, #180), test runs no longer crash on non-ASCII labels (#178), and the docs explain the
python3interpreter requirement for hooks plus the Claude Code release requirement (#162, #168). - New ZCode host adapter (
--host zcode) withZCODE.md(#146); scaffolded vaults pin absolute wikilinks (#182); wiki-ingest prefers markdown links for citable URLs (#171, #176). ATTRIBUTION.mdcredits the adopted reranker designs from #62 and #77.
Contributor pull requests merged in this release: #146, #149, #159, #176, #178, #180, #182. Maintainer fixes were promoted through PR #186 and the release through PR #187.
Upgrade and migration
Upgrade the product independently from your vault. If you call the setup scripts from your own automation, change
bin/toscripts/. If you rely on the linter walking dot-prefixed directories, pass--excludepatterns explicitly or add a name to_DOT_DIR_KEEPLIST; no known vault content lives under dot-prefixed folders. Existingmode.jsonfiles gain thequestions_folderkey through the documented migration path.See the install guide and the Windows and WSL guide.
Verification
- 10 of 10 GitHub Actions jobs passed across Ubuntu, macOS, Windows portable, and the reproducible release artifact gate on the release PR; every merged PR ran the same matrix green.
- Full hermetic suite and executable contracts passed on every merged branch.
- Every fix landed with a regression test shown failing before the change.
- Fresh-context verifier over the integrated diff: one blocker found and closed before merge (the runtime read retry now requires a byte-identical confirmation read).
- Final archive built twice from merge commit
32ac5a02c4e082e4a5628ca810776375e134708eand matched byte for byte.
Artifact integrity
- File:
claude-obsidian-v2.2.0.zip - SHA-256:
6207f8aff60366adb441f4311e542fed42ef1edec1b303e78ee215cec8b64ffa - Size: 3,145,865 bytes
- Payload: 203 files, 3,059,517 bytes
- Artifact audit: 0 errors
Known limitations
- Native Windows interactive testing was not available; the Windows portable automated surface passed, and t
- Lint skips dot-prefixed directories by default (
- v2.1.1Claude Obsidian v2.1.1 - Legacy Migration Safety2026-08-25 · 2026-08-25 23:32 UTC
查看更新说明
Claude Obsidian v2.1.1 hardens legacy vault migration and adoption, especially for manifests that use batch labels instead of file paths or contain more than 1,024 source observations.
Highlights
- Preserves unresolved legacy batch labels as unreviewed manual sources without inventing payload mappings or SHA-256 values.
- Binds legacy source observations to the reviewed migration approval, then rejects drift, unsafe nodes, and path changes before writing.
- Separates read-only source observations from the 1,024-write recovery limit, so larger valid manifests can migrate safely.
- Adds clearer Windows and WSL support guidance, including evidence-bounded troubleshooting for unconfirmed WSL hangs.
- Makes Git-backed release and checkpoint fixtures independent of machine-wide hooks, signing, and identity settings.
The migration behavior originated in PR #174. Release metadata, final hardening, and the audited artifact were promoted through PR #175.
Upgrade and migration
Upgrade the product independently from your vault. Before migrating an older vault, create a normal backup or snapshot, run the migration dry-run, review its approval hash and changed paths, then apply that exact reviewed plan. The legacy
.raw/.manifest.jsonremains byte-for-byte unchanged.See the install guide and Windows and WSL guide.
Verification
- 10 of 10 GitHub Actions jobs passed across Ubuntu, macOS, Windows portable, and the reproducible release artifact gate.
- Full hermetic suite and executable contracts passed.
- Fresh Save, Ingest, and Query forward evaluations passed every declared invariant.
- Representative migration rollback, clean retry, idempotent rerun, and portable integration uninstall passed.
- Fresh GPT-5.6 Sol xhigh adversarial verifier verdict:
SHIP, with 0 BLOCKER, 0 HIGH, 0 MEDIUM, and 0 LOW findings. - Final archive built twice from merge commit
9f8c1199047eac2c3828496279fbb7ba9540b90band matched byte for byte.
Artifact integrity
- File:
claude-obsidian-v2.1.1.zip - SHA-256:
756258849bd36197389dc6c47deca95b2b046e10457713b4bbcb5c940cbf2b5e - Size: 3,047,323 bytes
- Payload: 199 files, 2,962,609 bytes
- Artifact audit: 0 errors
Known limitations
- The reporter's private legacy vault bytes were unavailable, so migration was verified with a representative fixture containing both a real file locator and an unresolved batch label.
- Native Windows interactive testing was not available. The Windows portable automated surface passed.
Full changes: v2.1.0...v2.1.1
- v2.1.0Claude Obsidian v2.1.0 - Native Windows Compatibility2026-07-31 · 2026-07-31 18:05 UTC
查看更新说明
Native Windows Compatibility
Native Windows previously crashed on every vault command with
AttributeError: os has no attribute 'O_DIRECTORY'(#147). Now:- Read-only works natively: inspection, dry-runs, and retrieval run on Windows with real equivalent safety checks (path-based alias auditing, lstat identity, symlink and junction rejection).
- Writes fail closed, cleanly:
ERR UNSUPPORTED_PLATFORM(exit 2) before any side effect — use WSL for mutations. - CRLF fixes for every platform: binary-mode reads end false hash mismatches, and retrieval no longer returns zero results on CRLF vaults.
- Windows CI: a new
windows-smokejob plus a 16-test compatibility suite guard against regressions.
Full notes: CHANGELOG.md · Closes #147 via #150
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
claude-obsidian turns the things you read into a knowledge base that keeps getting more useful. Drop a paper, an article, a transcript or your own notes into the vault, and Claude reads them, writes linked notes with sources, and files everything into one connected knowledge graph you can explore in Obsidian.
- Capture. Put sources in
inbox/. The originals are kept, untouched, so every summary can point back to where it came from. - Connect. Claude writes linked pages, indexes and maps of content, so new ideas join the graph instead of piling up.
- Ask. Get answers from what your vault already knows, with citations, without changing a single file.
- Save. Keep the answers worth keeping as notes, one at a time, when you ask.
- Check. A health check finds dead links, orphan pages and gaps before they spread.
Everything stays as plain Markdown files on your computer. No cloud database, no lock-in, no telemetry. Apart from the AI tool you chat with, nothing leaves your machine unless you say so.
See the vault
The result is a normal Obsidian vault that stays useful with or without an AI: browse it in Graph view, or lay it out as a map in Obsidian Canvas.
Install
You need Claude Code, Python 3.11 or newer and, for the visual side, Obsidian. Install the plugin with two commands:
claude plugin marketplace add AgriciDaniel/claude-obsidian
claude plugin install claude-obsidian@agricidaniel-claude-obsidian
Then open the folder you want as your vault and start Claude Code there:
claude # start Claude Code in your vault folder
/claude-obsidian:wiki # set up the vault (shows you a preview first)
/claude-obsidian:wiki-ingest # turn what is in inbox/ into linked notes
/claude-obsidian:wiki-query # ask a question, answered from your notes
/claude-obsidian:save # keep a good answer as a note
/claude-obsidian:wiki-lint # health check: dead links, orphans, gaps
Open the same folder in Obsidian with Open folder as vault to browse your notes as they grow.
Already have an Obsidian vault? /claude-obsidian:wiki can adopt it without moving your notes. The installation guide walks through it.
claude-obsidian is a set of Agent Skills, so it also runs in other hosts. From a copy of this repo, preview the setup, then apply it:
git clone https://github.com/AgriciDaniel/claude-obsidian.git
cd claude-obsidian
bash scripts/setup-multi-agent.sh --host codex # preview, writes nothing
bash scripts/setup-multi-agent.sh --host codex --apply # link the skills
Use --host opencode, --host gemini or --host zcode the same way. Cursor and Windsurf need a workspace: --host cursor --host windsurf --workspace <folder> --apply. Every host is covered in the installation guide.
On Windows, use WSL for anything that writes to the vault. Native Windows can inspect and preview, and stops with a clear error instead of writing. The Windows and WSL guide has the details.
claude plugin marketplace update agricidaniel-claude-obsidian
claude plugin update claude-obsidian@agricidaniel-claude-obsidian
Version 3.0.0 alone used the plugin name agricidaniel-obsidian. If you installed that one, run the marketplace update, then claude plugin install claude-obsidian@agricidaniel-claude-obsidian, and restart Claude Code. See the namespace migration.
15 skills, one system
Talk to it in plain words, or call any skill by name with /claude-obsidian:<skill>. Open a group to see what is inside.
| Skill | What it does |
|---|---|
wiki | Sets up a new vault or adopts yours, checks it is ready and routes your request |
wiki-ingest | Turns captured sources into linked pages with their sources recorded |
wiki-query | Answers from what is already in the vault, read-only |
save | Keeps one answer or insight as a note, only when you ask |
wiki-lint | Finds dead links, orphan pages, missing metadata and empty sections |
| Skill | What it does |
|---|---|
autoresearch | Bounded web research, only with your consent, merged after review |
canvas | Creates and updates Obsidian Canvas boards |
defuddle | Plans a clean Markdown capture of a web page; the cleaner itself is an optional external tool |
wiki-fold | Rolls up the operation log into short, traceable summaries |
wiki-mode | Sets how new notes are filed: Generic, LYT, PARA or Zettelkasten |
wiki-retrieve | Local BM25 search with optional reranking |
wiki-cli | Reads and searches through the official Obsidian command line |
| Skill | What it does |
|---|---|
obsidian-markdown | Correct Obsidian Markdown: links, embeds, callouts and properties |
obsidian-bases | Native .base tables, cards, filters and formulas |
think | A structured review loop for hard decisions |
Meet the crew
Behind the skills, three agents do the heavy reading and checking. All three are read-only: they hand back drafts and reports, and only one place, the transaction core, ever writes to your vault.
| Agent | What it does |
|---|---|
wiki-ingest | Reads one captured source and hands back page drafts, with the hash it expects each target to have |
wiki-lint | Runs the vault linter, double checks surprising findings and returns a health report |
verifier | Runs safe tests on a proposed change or release and ranks what it finds |
Built for:
- Researchers and students who read a lot and want every note to point back to its source.
- Writers and creators who want ideas from videos, articles and books to connect instead of getting lost in folders.
- Builders and teams who keep project knowledge in Markdown and want an AI that can search it, cite it and keep it tidy.
Nothing gets lost
Your notes matter, so every change to the vault works like a careful save:
- Read first. Claude reads every note it will touch and records a fingerprint (a SHA-256 hash) of each one.
- One plan, one apply. Helpers can work in parallel, but they only hand back drafts. Claude merges them into one plan, checks it, and applies it as a single transaction.
- Undo if anything breaks. A journal keeps backups during the write. If the power cuts out halfway,
transaction recoverrolls the unfinished change back from the journal. - Your edits win. If you change a note in Obsidian while Claude is planning, the fingerprint no longer matches and the write stops with a conflict instead of overwriting you.
Web research, Git checkpoints and anything that sends data off your machine are separate steps that ask you first.
The plugin never treats its own folder or cache as your vault. A vault is picked explicitly: through CLAUDE_OBSIDIAN_VAULT, the nearest .claude-obsidian.json, or one clear initialized parent folder. If it is not sure, it exits without writing.
The lock coordinates local writers that cooperate with it. Other devices and external editors do not share it, so keep backups, especially when you sync Canvas or Base files. Read the transaction contract, the provenance contract and the Compound Vault guide for the full detail.
Shape the vault to the way you think
wiki-mode sets how new notes are filed, the way you already like to work. Switching modes changes where new notes go and never moves your old ones.
| Mode | How notes are filed |
|---|---|
| Generic (default) | Sources, concepts, entities and sessions |
| LYT | Maps of Content and linked atomic notes |
| PARA | Projects, Areas, Resources and Archives |
| Zettelkasten | Stable IDs, atomic notes and dense links |
More in the methodology modes guide.
How it works
- Capture. Sources go into
inbox/. claude-obsidian keeps an untouched copy of each one, named by its content, before anything is summarized. - Ground. Each important claim in a note is linked to the source that supports it. Weak or conflicting evidence stays visible instead of being smoothed over.
- Compound. Ask, research, search and lint use what the vault already knows, so every session starts from your notes instead of from zero.
The idea follows Andrej Karpathy's LLM Wiki pattern: let the AI maintain a wiki you can read, instead of a black box you cannot.
| Input or feature | Support today |
|---|---|
| Local files | Captured and kept as content-addressed copies |
| Images | Metadata, hash, size and dimensions when available |
| PDF and EPUB | Metadata, hash and size; no built-in text extraction yet |
| Web pages and YouTube | Prepared as a plan you approve; fetching needs a separate runner that enforces it |
| OCR | Needs an external tool you configure |
| Search (BM25) | Local and deterministic |
| Reranking or remote models | Optional, and only with your explicit consent |
| Obsidian CLI | Optional for reading and search |
From a clone of this repo, the same core is available as a portable command line: python3 scripts/claude-obsidian.py. Commands that change files show a plan first and only apply with the plan's hash.
| Command | What it does |
|---|---|
doctor --vault PATH | Shows which vault is selected and whether it is ready |
init PATH | Plans, then creates, a new vault |
adopt PATH | Plans, then adopts, an existing Obsidian vault |
lint --vault PATH | Runs the health check |
capture plan / capture apply | Checks, then keeps, copies of local sources |
transaction recover --vault PATH | Restores the vault after an interrupted write |
bench --queries FILE --vault PATH | Measures search quality on your own questions |
Run python3 scripts/claude-obsidian.py --help, or add --help to any command, to see every option.
FAQ
A free, open-source AI second brain for Obsidian: a personal knowledge management (PKM) and AI note-taking system that builds a knowledge graph of plain Markdown. It is a Claude Code plugin (and a set of Agent Skills for other AI tools) that turns your sources into linked, cited notes, answers questions from them, and keeps the vault healthy over time.
Yes. It is MIT licensed with no subscription and no tracking. You use it with your own Claude Code plan, or with another AI tool you already have.
No, but it is the nicest way to see the result. The vault is plain Markdown, so any editor works. Obsidian adds Graph view, Canvas maps and Bases tables on top.
No. You don't install it from Obsidian's community plugin list. It is a Claude Code plugin (and a set of Agent Skills for other AI tools) that works on your vault folder. Obsidian opens the result as a normal vault, and no Obsidian plugin is required.
Your vault stays on your computer as ordinary files. When you work with it in Claude Code, the notes Claude reads are sent to Claude, Anthropic's model, the same as anything else you open in Claude Code. Web research and remote models are off until you allow them for a task.
It is built not to. Adopting a vault does not move your notes, every change is shown as a plan before it is applied, and an interrupted write can be rolled back. If you edit a note while Claude is working on it, the write stops instead of overwriting you. Keep normal backups anyway.
Most AI note tools save text and stop. claude-obsidian keeps the original sources, links every claim back to them, connects new notes to old ones, and checks the vault for broken links and gaps. The knowledge compounds instead of piling up.
Yes. The skills follow the open Agent Skills format. Claude Code gets the full plugin; Codex, OpenCode, Gemini, ZCode, Cursor and Windsurf link the same skills with one setup script. See Install.
Requirements. Python 3.11 or newer, a current Claude Code release for the plugin (or another Agent Skills host), Obsidian for the visual side, and Bash for the setup scripts. Git is only needed for development or checkpoints.
Limits. It is not an automatic transcript recorder, a cloud sync service or a fact checker, and it does not replace backups. PDFs and web pages need extra tools for full text.
Uninstall. Removing the plugin never removes your vault. Your notes, sources and Obsidian settings stay yours: claude plugin uninstall claude-obsidian@agricidaniel-claude-obsidian.
License and contributing
MIT License, see LICENSE. The design follows Andrej Karpathy's LLM Wiki pattern and uses kepano/obsidian-skills as the reference for Obsidian Markdown, Bases and Canvas syntax. See ATTRIBUTION.md and CITATION.cff.
Contributions are welcome: read CONTRIBUTING.md first and run make test before you open a pull request. Report security problems as described in SECURITY.md, and read PRIVACY.md for what stays on your machine. Release notes live in the changelog, and the code of conduct applies everywhere. AI coding agents working on this repo start at AGENTS.md.
Thank you to everyone who has helped. Pull requests: @Ychris12138, @Marcos64s, @hphsu, @vinsocci, @miraclemanza, @maartengoet, @Lion-1209, @HectorBernstorff, @Packetslave, @CooperSheroy, @yotamleo, @ketpatil77, @tilusnet, @GPezzuti, @STiFLeR7. Issue reports: @RoelKluin, @threnard, @szrenwei, @ppuri2, @cosmos75, @simonc.
Star history
If claude-obsidian helps you, a star helps other people find it.
Author
Built by Agrici Daniel, AI Workflow Architect, with help from the AI Marketing Hub Pro community.