Claude Code doesn't know Obsidian's proprietary file formats by default. When it creates a note, it might break wikilink syntax. When it edits a .base file, it generates invalid JSON. When it writes a .canvas file, the output won't open in Obsidian.
The fix came in January 2026, when Kepano (Steph Ango, Obsidian's CEO) released an official set of Claude Code skills. The kepano/obsidian-skills repo teaches Claude the correct formats for each Obsidian file type. I'd recommend adding it to every vault where you use Claude Code.
The repo includes skills. obsidian-markdown covers rules for .md files, including correct wikilink and frontmatter syntax. Tag formatting rules are included as well. obsidian-bases handles .base files, which are Obsidian's database layer. json-canvas handles .canvas files for spatial note maps. defuddle strips web pages to clean markdown before saving, which cuts token cost by removing ads, navigation, and page chrome before the content reaches Claude.
Installation is two commands:
git clone https://github.com/kepano/obsidian-skills.git
cp -r obsidian-skills/.claude /path/to/your/vault/
These skills don't load automatically. Before working with a specific file type, run the relevant slash command: /obsidian-markdown, /obsidian-bases, or /json-canvas. This loads the format rules into Claude's context for that session. For web clipping, run /defuddle first to strip the page before saving it.
Of the four, /defuddle is the one you'll reach for most often. Raw web pages are noisy. Without stripping them first, a single research session can balloon your context window with nav bars and footers. Ad copy piles on too. Pair this with the MCP server setup and you have a full pipeline from web to vault.