Allow creation of meta-vaults across unrelated folders

Use case or problem

There are a number of use cases where a user might want to have his notes scattered in several unrelated folders across the filesystem without specific hierarchy, but still allow some degree of interlinking between them.

Some example can be:

  • Keeping the notes together with other relevant files in project-specific folders
  • Integrate the notes within an existing filesystem structure
  • Syncing with different providers
  • Some notes might need to live on a separate server or computer
  • Encrypting part of the notes
  • Sharing part of the notes
  • To keep focus, allowing only a certain subset of notes to interact with each other
  • Avoid “vault overload”, once again only loading a specific subset of relevant notes.
  • Create software-like “knowledge modules” that can be “imported” as needed
  • General organisation, without the “all notes inside a main folder” constraint
  • … and possibly many more use cases.

In general, I think there are a lot of compelling arguments for a more flexible approach to the current “one vault per folder and no cross-talking” approach: see also the related requests and discussions linked below for more arguments and use cases.

Proposed solution

Inspired by VSCode’s Multi-root workspaces, I would like Obsidian to import different and potentially unrelated folders (vaults) into the same workspace.
All the imported folders should then behave as if they were all subfolders inside the same (meta)vault, but without the need of actually moving (or symlinking) them into a single folder.

Obsidian should then allow the metavault to be saved as some kind .metavault file, which would essentially contain the relative paths of the metavault “members”, the workspace itself and (optionally) some additional logic to steer how plugins, themes and other settings are handled.

As a bonus, Obsidian could handle link autocompletion differently, using the traditional [[wiki style]] for links between the same subfolder, but replacing them with obsidian://vault/my vault/my note for linking to notes in another sub-note.
This way, the links themselves would still work across different machines with the subvaults stored in different paths, as long as the local Obsidian installation knows about a corresponding vault with the same name.

Additional functionality could be implemented so that If a “subvault” is moved or renamed so that Obsidian no longer finds it, the missing links are highlighted and Obsidian offers a way to re-add the (sub)vault.

Current workaround

I think similar functionality can be achieved by symlinking different folders into a main folder, and using the main folder as a vault.
However, manually handling symlinks is not particularly user friendly, internal links are broken as soon as the symlink is deleted and there are additional considerations to be made if the symlinked folder are vaults on their own.

The proposed solution could still be implemented internally by using symlinks (as example, creating a temp folder symlinking what is in the .metavault file), but these would be internally handled by Obsidian, with additional logic to handle things like multiple .obsidian folders conflicting with each other.

Related feature requests

There are plenty of topics and discussions about cross-vauilt linking (here and here and here), vault nesting (here and here and here), editing files outside the vault and more in general handling and organising multiple vaults, including having vaults interact with each other.
I believe that adding a relatively simple “meta-vault” layer on top of the current (folder based) vaults would add a lot of flexibility, allowing to address most of the issues that those discussions bring up without complicating life for those who live happily with only one (or several but unrelated) vaults.

5 Likes

+1 Very well presented case for this much needed functionality. This feature and the ability to full navigate via the keyboard would “complete me”. :smile:

+1

Agreed. This would be a great feature.

Specifically:

  • Keeping the notes together with other relevant files in project-specific folders
  • Integrate the notes within an existing filesystem structure

One implementation style could be something like Git Submodules.

There are a number of features that are probably unnecessary in Obsidian’s case. But the main idea would be that Obsidian could both:

  1. Duplicate the content (to maintain a copy inside of the vault).
  2. Maintain a link to the external file.

Granted, duplicating the content sounds like a questionable idea. And syncing between the copies (inside and outside of the vault) seems fraught (I’m already seeing a bunch of problems and possible workarounds).

But it might be the best way to:

  • Maintain the data integrity/completeness of the vault.
  • Keep the vault as the primary source of data while not mandating it as the only place for for Obsidian to observe.

Thanks @danabb for the great write up!

Hi!

Nice idea but likely very challenging to implement robustly.

I believe they would minimally need a system level service for each platform that ties into OS calls to the filesystem to check/track whether any meta vault folders/links are involved in order to maintain meta vault integrity.

But this would only cover systems with the obsidian file monitoring service installed. If any of the folders are in shared locations where multiple people have access, anyone with such access would inadvertently break the system by simply reorganizing/renaming the wrong folder.

Strong permissioning and procedural rigor could reduce the risk, but Not likely eliminate it.

You may be better off looking into CMS systems for this.