SystemSculpt
Install free (opens Obsidian's plugin directory in a new tab)

Claude Code and Your Obsidian Vault: CLAUDE.md and Permissions

Published 7 min read

On this page

An Obsidian vault is a plain folder of Markdown files, so Claude Code works on it the way it works on a code project. Start Claude Code in the vault folder, put a CLAUDE.md at the vault root that explains your folders and conventions, and add deny rules for anything it should not read or change, such as .obsidian or a private folder.

This guide covers those three pieces and how they apply when you run Claude Code from a terminal or inside Obsidian with SystemSculpt, our free plugin.

Checked on November 3, 2026 against Claude Code 2.1.316, its documentation and SystemSculpt 6.18.10.

1. Start Claude Code in the vault folder

Claude Code works on the folder it starts in. Open a terminal and start it at the vault root, the folder that contains .obsidian:

cd ~/path/to/your-vault
claude

To find the path, open Obsidian's vault switcher, or right-click any note and choose Reveal in Finder (Mac) or Show in system explorer (Windows).

Inside Obsidian, the free SystemSculpt plugin does this for you. It starts your installed Claude Code with its working folder set to the vault root, using your own Claude login and settings. Everything below applies to both. See Claude Code in Obsidian for the plugin setup.

2. Write a CLAUDE.md at the vault root

Claude Code loads CLAUDE.md from the folder it starts in, and from every folder above it, at the start of each session, and follows it as standing instructions. For a vault, that is where you describe how your notes are organized. Run /init in Claude Code to have it draft one from your vault, or write it yourself:

# This vault

Personal notes in Obsidian. Plain Markdown with [[wikilinks]].

## Folders
- Inbox/: new captures. Safe to tidy and file.
- Projects/: one folder per project, each with an index note.
- Daily/: daily notes named YYYY-MM-DD.md. Append only.
- Archive/: finished work. Read only.
- Templates/: Obsidian templates. Don't edit.

## Conventions
- Link notes with [[Note name]], not Markdown links.
- Keep YAML frontmatter valid. Tags go in the tags: list.
- New notes go in Inbox/ unless I name a folder.
- Never rename or move a note without asking. Obsidian's links depend on names.
- Don't touch .obsidian/.

A few things that help in a vault:

  • Name the folders and what may change in each. Claude Code can't tell an archive from an inbox by its name alone.
  • State your link style. Obsidian resolves [[wikilinks]] by note name, so a rename or move can break links that Obsidian would have updated for you. Ask Claude Code to tell you before it renames anything.
  • Keep it short. It loads into every session and uses context each time. Put long reference material in separate notes and point to them.

You can also keep personal instructions for every project in ~/.claude/CLAUDE.md. A CLAUDE.md in a subfolder loads when Claude Code reads or edits a file there, which suits rules for one folder, such as Daily/. In Claude Code, /memory lists these files and opens them for editing.

If you also use Codex, it reads AGENTS.md instead. Claude Code reads AGENTS.md too, but only when there is no CLAUDE.md. To keep one file for both, write the rules in AGENTS.md and either skip CLAUDE.md or add a CLAUDE.md with the line @AGENTS.md, which imports it. In an import path, put a backslash before each space in a folder name.

3. Add deny rules for private folders and .obsidian

CLAUDE.md is guidance, not a lock. To stop Claude Code from reading or editing files, add permission rules to .claude/settings.json in the vault:

{
  "permissions": {
    "deny": [
      "Read(./Private/**)",
      "Edit(./Private/**)",
      "Edit(./.obsidian/**)",
      "Edit(./Archive/**)"
    ]
  }
}
  • Read(...) rules stop Claude Code's file-reading tools from opening those paths. Edit(...) rules stop its editing tools from changing them.
  • Paths use .gitignore syntax. ./ starts at the folder Claude Code runs in, here the vault root, and ** matches everything below a folder. Use Edit(...) for changes; Claude Code ignores Write(...) rules.
  • Put rules you don't want shared in .claude/settings.local.json instead. Rules for all your projects go in ~/.claude/settings.json.
  • Deny rules also cover shell commands Claude Code recognizes as reading a file, such as cat or head. They don't cover a command that reads files without naming them, such as grep -r, or a script it runs. Keep commands on approval when a folder matters, or turn on Claude Code's sandbox for an OS-level block.

Obsidian ignores .claude/ and CLAUDE.md is an ordinary note, so neither changes your vault for Obsidian. If you sync the vault, these files sync with it.

4. Choose how much Claude Code may do without asking

Claude Code's permission mode decides whether it asks before edits and commands. In a terminal, press Shift+Tab to cycle modes. In SystemSculpt, choose the mode in the run line below the message box:

SystemSculpt modeWhat Claude Code does
Auto (new-chat default)Runs safe actions without asking. Claude Code's safety check blocks risky ones.
Ask before editsAsks before every edit and command.
Accept editsEdits notes without asking. Asks before commands.
Plan onlyReads and plans. Changes nothing until you approve the plan.
Claude Code settingsUses the permission rules in your Claude Code settings.

Your deny rules apply in every mode. SystemSculpt never turns on Claude Code's permission-bypass mode. When Claude Code asks, SystemSculpt shows the request and the diff in the chat, so you approve or decline there.

A good start for a vault you care about: Plan only or Ask before edits until you trust the CLAUDE.md, then Accept edits for tidy-up work.

5. Give it the right notes

Claude Code searches the vault folder itself, so you can name notes in plain words: "Summarize everything in Projects/Garden about watering". It reads what it needs.

In SystemSculpt you can also attach notes. Choose Add current note or Add notes from vault… in the message box, and their text goes with your message. SystemSculpt doesn't send the open note unless you add it.

What leaves your computer

Claude Code sends your messages and the files it reads to Anthropic through your Claude account, whether you run it in a terminal or in SystemSculpt. SystemSculpt doesn't route Claude Code chats through its own servers or use its credits for them, and it doesn't read Claude Code's credentials. Each SystemSculpt chat is also saved as a Markdown note in your vault, in SystemSculpt/Chats by default.

Common questions

Where does CLAUDE.md go in an Obsidian vault? At the vault root, the folder that contains .obsidian. Claude Code loads the CLAUDE.md in the folder it starts in, and SystemSculpt starts it at the vault root.

Will CLAUDE.md show up in Obsidian? Yes, as an ordinary note named CLAUDE. You can edit it in Obsidian like any other note. The .claude folder doesn't appear in Obsidian's file list.

Can Claude Code break my Obsidian links? Renaming or moving a note from outside Obsidian doesn't update the links to it. Tell Claude Code in CLAUDE.md not to rename or move notes without asking, and use Ask before edits for reorganizing.

Does Claude Code need Obsidian open? No. It works on the files directly. In SystemSculpt it runs inside Obsidian on desktop.

Can I use this on my phone? Claude Code runs on a desktop computer. On mobile, SystemSculpt's chat uses its hosted AI instead.

Do I need a SystemSculpt account? No. Claude Code in SystemSculpt uses your own Claude login. A free account is only for SystemSculpt's hosted features.

Compare it with OpenAI's agent in Claude Code vs Codex in Obsidian, or connect Obsidian's own search through an Obsidian MCP server.

Install SystemSculpt from the Obsidian plugin directory, then choose Claude Code in the chat run line.

Sources

TopicsObsidianObsidian AIAI AgentsClaude Code

Try SystemSculpt inside your vault

SystemSculpt adds first-party AI chat, semantic search, transcription, and document workflows to Obsidian.