Obsidian Sync - Sync hidden files and folders as well (start with a dot)

Use case or problem

Obsidian sync is ignoring all hidden files and directories currently. Some plugins and tools use hidden files (starting with a dot) to store their settings, which excludes them from Obsidian sync.

Some plugins allow to change the settings file to a different one, but I still think it makes sense to allow syncing of hidden files, and have those still be hidden in the main obsidian window. There is no need to have settings file be visible and editable from withing Obsidian.

Allowing syncing of hidden files means the Obsidian vault across multiple machines is actually identical, instead of somewhat identical minus hidden files.

Proposed solution

Allow syncing of hidden files similar to how “all file types” sync is an option in the sync settings. It could be optional, or even manually specifying which files should be synced.

Current workaround (optional)

  • Copy the hidden file to a non-hidden one (replace . with _), copy back on the other machine after syncing is done
  • Use other software to sync hidden files only, or use other software to automatically do the copying roundtrip I described above

Related FR

26 Likes

Wanted to bump this to see if there is interest

2 Likes

This would be helpful for me. I have a plugin I’m working on that currently stores all data in the main plugin data.json file, but that file could get really big, and end up taking a lot of memory. It would be nice to be able to split up that data per file, and load it as needed, keeping the memory usage lower, and the time it takes to load smaller.

1 Like

This would be helpful to me as well for storing configuration like .obsidian.vimrc for the vim plugin.

3 Likes

Hey, this would be a really simple quality of life change for Obsidian Sync.
I find it really odd that hidden files are excluded, to be honest!

If I were using Git or Google Drive, I would have no problem syncing hidden files (or at least having the option to do so).

Arbitrarily not syncing files seems against the ethos of Obsidian.

3 Likes

I would like to be able to sync my .editorconfig files and similar.

2 Likes

I’d also like to have this capability.
Smart Connections plugin uses .smart-connections/ directory to store embeddings information. This directory needs to be synced to use the plugin on multiple devices.
However, currently, Obsidian Sync does not sync this directory.

Having an option to synchronize such a directory would be very helpful.

2 Likes

+1 Bump
Still looking for this feature

Maybe this could be solved via a plugin that automatically syncs hidden folder/files with a non-hidden version of it, and syncs it back on new machines?

Using a standardized prefix, and not overwriting files if conflicts found, but instead alerting the user to manually solve the issue.

1 Like

The git sync plugin has always supported this feature, but requires some kind of git server to work which requires manual setup and more time delays. For anyone who has need of more control over their syncing, that is probably the only solution right now.

1 Like

+1 bump as well

Would be nice to have an option underneath “Selective sync” to force include certain folders

1 Like

Syncthing will sync the hidden files , check in Linux LXC container with following command

ls -a

Full transperancy though, I did have some sync conflicts when setting up/connecting all my remote devices. Seems to be only the .json files in the .obsidian folder

Check out video below if you’re interested

1 Like

I hope this feature will be implemented!

1 Like

+1 bump. This is much needed when you integrate with CLaude code because all your configs sit in .claude

2 Likes

Especially in 2026 with all coding agents .claude, .codex files and so on, getting all skills and instructions ubiquitous across machines allows for continuity across agents and machines, this would be huge.

2 Likes

Decided to dedicate some time this week to fixing my Syncthing Sync Conflicts. To give you some more insight, for my vault my .stignore folder in Syncthing is as follows

.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/workspaces.json
.obsidian/workspace.sync-conflict-*.json
.obsidian/workspaces.sync-conflict-*.json
.obsidian/graph.json
.obsidian/vault-stats.json
.obsidian/plugins/recent-files-obsidian/data.json
.obsidian/plugins/recent-files-obsidian/data.sync-conflict-*.json
.obsidian/plugins/obsidianaitools/data.json
.obsidian/plugins/obsidianaitools/data.sync-conflict-*.json
.obsidian/plugins/obsidianaitools/sessions/
.obsidian/plugins/tasknotes/data.sync-conflict-*.json
.obsidian/plugins/workspaces-plus/data.json
.obsidian/plugins/workspaces-plus/data.sync-conflict-*.json
.obsidian/plugins/workspaces-plus/app.json.bak
.obsidian/plugins/workspaces-plus/appearance.json.bak
.obsidian/plugins/workspaces-plus/workspaces.json.bak
.obsidian/plugins/rss-dashboard/rss-dashboard.sqlite
.obsidian/plugins/rss-dashboard/data.json.bak
.obsidian/plugins/remember-cursor-position/
.obsidian/plugins/pane-relief/
.obsidian/plugins/bmo-chatbot/data/
.obsidian/plugins/media-extended/.claude/
.obsidian/plugins/obsidian-plugin-update-tracker/data.json
**.sync-conflict-*

1. Device-specific UI state workspace.json, workspace-mobile.json, workspaces.json, graph.json

These store things like which notes you have open, your pane layout, and where nodes are positioned in the graph view. Every device will have different notes open at different times, so these files change constantly and will always conflict. There’s no value in syncing them — each device should manage its own.

2. Plugin data that tracks per-device activity recent-files-obsidian/data.json, vault-stats.json, obsidian-plugin-update-tracker/data.json, remember-cursor-position/, pane-relief/

These plugins track things like which files you’ve recently opened, how many words you’ve written, where your cursor was, and which panes are pinned. All of that is meaningless on another device and changes every time you use Obsidian, making them prime conflict generators.

3. Plugins with large or binary data stores obsidianaitools/data.json, obsidianaitools/sessions/, rss-dashboard/rss-dashboard.sqlite, bmo-chatbot/data/

The AI tools plugin generates a new session file every single conversation — I have over 100 of them. The RSS dashboard uses a SQLite database, which Syncthing handles badly because SQLite locks the file while it’s open, causing read errors and corruption. These cause constant noise even if they weren’t device-specific.

4. Workspace-plus backup files and catch-all workspaces-plus/app.json.bak, appearance.json.bak, workspaces.json.bak, **.sync-conflict-*

The .bak files are just internal backups that Workspaces Plus creates itself — no need to sync them. The final **.sync-conflict-* rule is a safety net that catches any future conflict files across your entire vault before they pile up again, regardless of which plugin creates them.

The underlying principle across all of it is: if a file changes on every device independently and the two versions can never be meaningfully merged, don’t sync it.

2 Likes

Use case or problem

I want to maintain a local version history of my vault using Git (without using a remote repository). I would like to sync the .git folder using Obsidian Sync, but it doesn’t work because Obsidian ignores hidden folders.

Proposed solution

Allow syncing hidden folders. There could be an option in Sync settings to manually list which hidden folders to include.

Current workaround

I could use a separate solution to sync the .git folder, but I’d be concerned of creating conflicts between multiple sync services. This would also require unnecessary extra setup.

Related feature requests

https://forum.obsidian.md/t/allow-hidden-folder-for-pictures-aaa-attachments-aaa-png/8634

12 Likes

I have found other problems with this approach to versioning, so I might not use this feature exactly for the use case I mentioned. But I still think it would be a useful option to have.

2 Likes

Vote for the feature! It will support custom users workflows with vault. Absence of this feature will push users to custom syncing solutions instead of native one. One way to implement it: just allow users manually add folders (which not synced by default, like dot.prefixed) to sync.

2 Likes

This feature would be incredibly useful for me as well.

1 Like

This feature would be incredibly useful for me as well. (especially for agent: claude code , etc.)