I'll be straight with you: the Claude Code + Obsidian setup has real rough edges. None of them are dealbreakers, but you'll hit them without warning if you don't know they exist. Here's what breaks and how to work around it.
PostToolUse hooks silently fail. You configure a hook to auto-commit every file write. Nothing fires. No error message, no indication anything went wrong. This is GitHub issue #6305. PreToolUse and PostToolUse hooks don't trigger despite correct configuration. Stop, SubagentStop, and UserPromptSubmit hooks work fine. The bug was open as of August 2025. The workaround: don't rely on PostToolUse for anything you care about. Run git commit manually at the end of sessions instead.
Windows path spaces break the MCP server. If your vault path contains a space (like C:\Users\My Name\Documents\vault), the MCP server exits silently. The path argument isn't quoted properly. See obsidian-mcp issue #10. The fix is to wrap the vault path in quotes inside your MCP config:
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "obsidian-mcp", "\"/path/with spaces/vault\""]
}
}
}
Obsidian CLI stdout race condition on large vaults. You run a Bases query. Claude receives no output and reports it found nothing. The Obsidian CLI exits before flushing stdout to Claude. This affects large vaults with complex Bases queries and is documented in the Obsidian forum. The workaround is to redirect output to a file first:
obsidian base:query "your query" > /tmp/out.txt 2>&1; cat /tmp/out.txt
iCloud Sync conflicts during bulk edits. Claude renames a folder or edits frontmatter across + files. iCloud Sync either conflicts or silently overwrites some changes. iCloud syncs file by file. When Claude writes faster than iCloud can process, conflict files appear. The fix: pause iCloud Sync in Settings before any bulk operation. A better long-term option is to use Git for your vault instead of iCloud.
iansinnott MCP working directory mismatch. The MCP connection drops and you see: "workspace/project directories do not match the current cwd." The plugin expects Claude Code's working directory to match the vault path. See issue #3. The fix is simple: cd into your vault directory before starting Claude Code. The connection stays stable as long as you don't change directories during a session.