Hi,
I’m a macOS user experimenting with a deliberate, non-standard Obsidian architecture, and I’m looking for technical confirmation of what is and is not possible, not tag-based workarounds.
I fully understand tag trees, path filters, and workspaces.
Please consider this question strictly from a filesystem + Obsidian runtime architecture perspective.
Goal
I want to achieve:
-
ONE shared “BRAIN”
-
same community plugins
-
same hotkeys
-
same snippets
-
same templates
-
same UI / workflow
-
-
MULTIPLE VAULTS
-
each vault = a fully isolated project tree
-
separate:
-
tags
-
graph
-
backlinks
-
-
clean conceptual separation per project
-
In short:
same tools, different knowledge spaces
Proposed architecture (macOS symlinks)
Vault-Project-A/
└── .obsidian/ -> symlink to Vault-Brain/.obsidian
Vault-Project-B/
└── .obsidian/ -> symlink to Vault-Brain/.obsidian
Vault-Project-C/
└── .obsidian/ -> symlink to Vault-Brain/.obsidian
Example:
.obsidian/
├── app.json
├── appearance.json
├── backlink.json
├── bookmarks.json
├── canvas.json
├── community-plugins.json (symlink -> /VAULT-BRAIN/community-plugins.json)
├── core-plugins.json (symlink -> /VAULT-BRAIN/core-plugins.json)
├── daily-notes.json
├── global-search.json
├── graph.json
├── hotkeys.json (symlink -> /VAULT-BRAIN/hotkeys.json)
├── page-preview.json
├── plugins (symlink -> /VAULT-BRAIN//plugins)
├── snippets (symlink -> /VAULT-BRAIN/snippets)
├── templates.json
├── workspace.json
└── workspaces.json
Inside .obsidian, the following are shared via symlinks:
-
community-plugins.json -
core-plugins.json -
hotkeys.json -
plugins/ -
snippets/ -
templates.json -
other UI config files
At the filesystem level, this works correctly.
Observed result
-
UI is identical across all vaults
-
Hotkeys, snippets, templates are shared
-
Each vault has its own tags and graph
-
NO?! Community plugins are only enabled in the original “brain” vault
In cloned vaults:
-
plugins do not appear as enabled
-
Settings → Community plugins behaves as if plugins were disabled
-
despite
community-plugins.jsonandplugins/being present and shared
Key observation
It appears that Obsidian does not rely solely on .obsidian/ to determine plugin enablement.
Some additional runtime state seems to be stored outside the vault, most likely in:
~/Library/Application Support/Obsidian/
This likely includes:
-
vault identity
-
plugin enable/disable state
-
binding between plugins and a specific vault ID
This would explain why:
-
config files are shared successfully
-
but plugins do not “clone” across vaults
The actual question
-
Is it technically possible to force Obsidian to:
-
run multiple vaults
-
while sharing a single plugin “brain”
-
without manually enabling plugins per vault?
-
-
Has anyone on macOS:
-
used this symlink-based multi-vault model long-term?
-
encountered hard limitations or corruption risks?
-
-
Is this behavior a fundamental architectural decision in Obsidian,
rather than a limitation of symlinks or macOS?
I’m specifically interested in real-world experience and technical confirmation, not theoretical workarounds.
Thanks in advance for any deep technical insight.