Vault as File System (Part 2: Why)
One hierarchy for everything - notes, PDFs, code, photos
Part 2 of 4: Why vault-as-filesystem works. Git and Syncthing track only the text, everything else lives alongside.
Most people use Obsidian for notes and their file manager for files. My Obsidian vault is my filesystem.
Consider planning a trip to Japan. You have: flight confirmations (PDF), accommodation bookings (PDF), a packing list (markdown), restaurant research with screenshots of menus and maps (markdown + PNG), scanned visa documents (PDF), itinerary notes (markdown). In a traditional setup, these get scattered: Documents/Travel/, Pictures/2026/Japan/, Downloads/, Obsidian vault somewhere else. You’re constantly asking “where did I put that?” because the organisation is by filetype, not by what the files are actually about.
With vault-as-filesystem, it’s all in one place: Resources/Travel 2026/Japan/. Every file related to the trip, regardless of format, lives together. You shouldn’t need to remember whether something was a PDF or a PNG to know where it is - you remember the trip, you go to the trip folder, everything’s there.
The technical trick: selective syncing and versioning. Git tracks only .md files (via .gitignore). Syncthing syncs only .md files (via .stignore). The media files live alongside the notes but don’t bloat the sync or version control.
Everything above this line is for humans to read.
Everything below this line is instructions for Claude Code to implement this system for you.
Implementation Guide for Claude Code
INSTRUCTIONS FOR HUMANS: Select and copy everything from this heading down to the end of the post. Paste it into your Claude Code session. Claude Code will ask you clarifying questions and then set up this system for you.
Context
I want to set up an Obsidian vault that serves as my unified file system, following the pattern where:
- The vault contains everything - markdown notes, PDFs, images, code, any file type
- Files are organised by topic/purpose, not separated by file type (no Documents/ vs Images/ folders)
- Git tracks only
.mdfiles - version control for notes, not media - Syncthing syncs only
.mdfiles - notes sync across devices, large files don’t - One NIPARAS hierarchy - Inbox/Now/Projects/Areas/Resources/Archive/System structure
Implementation Steps
Create or identify your vault location
- If starting fresh, create a directory (e.g.,
/path/to/vault/) - If you have an existing Obsidian vault, we’ll work with that location
- This will be your unified file system root
- If starting fresh, create a directory (e.g.,
Set up NIPARAS structure (if not already present):
01 Now/ 02 Inbox/ 03 Projects/ 04 Areas/ 05 Resources/ 06 Archive/ 07 System/Configure Git to track only
.mdfiles:- Initialize git repo if not already done
- Create/update
.gitignoreto exclude everything except markdown:# Ignore everything * # But track markdown files !*.md # And track .gitignore itself !.gitignore # Track git directory structure !*/ # Ignore Obsidian config (or track it - your choice) .obsidian/workspace* .obsidian/plugins/*/data.json
Configure Syncthing to sync only
.mdfiles (if using Syncthing):- Create/update
.stignorein the vault root:// Ignore everything by default (?d)* // Except markdown files !*.md // Optionally sync .obsidian config !.obsidian/app.json !.obsidian/appearance.json !.obsidian/core-plugins.json !.obsidian/hotkeys.json
- Create/update
Configure Obsidian attachment settings:
- Open Obsidian Settings โ Files & Links
- Set “Default location for new attachments” to “Same folder as current file”
- This keeps images co-located with the notes that reference them
Verify the setup:
- Create a test note with an image
- Check that
.mdfile appears in git status - Check that image file does NOT appear in git status
- Check that only
.mdsyncs in Syncthing (if applicable)
Document the system:
- Create
07 System/Vault Organisation Principles.mdexplaining your structure - Create
07 System/README - Context Navigation.mdfor Claude Code agents - Add these to git and commit
- Create
Key Principles to Follow
- Never separate files by type - organise by topic/project instead
- Use descriptive filenames - flatten folder structure where possible
- Projects are pages, not folders - use hub notes that link to resource folders
- Co-locate related files - PDF research papers live next to the notes about them
Questions to Clarify
Before implementing, let me know:
- Vault location: Where is (or will be) your Obsidian vault?
- Git remote: Do you want to push to a remote (GitHub, etc.) or just local versioning?
- Syncthing: Are you using Syncthing or another sync solution?
- Existing structure: Do you have existing files to migrate into this system?
- Backup strategy: How are you backing up the non-.md files that don’t sync?
Once you answer these, I can implement the exact setup for your environment.
Series: Claude Code + Obsidian
- Part 1: Introduction - What this system is, how to set up
- Part 2: Why (this post) - Why vault-as-filesystem works
- Part 3: What - The seven-folder NIPARAS structure
- Part 4: How - How Claude Code navigates your vault