Josip Markus361 downloadsReveal dot-prefixed files and folders in the File Explorer panel, with a per-pattern deny list.
An Obsidian desktop plugin that surfaces dot-prefixed files and folders in the File Explorer panel, with a per-pattern deny list for entries you want to keep hidden.
The plugin ships with default deny patterns for .git/ and .venv/ so vaults with real git repositories or Python virtual environments do not freeze on toggle. Other dot-prefixed entries (.obsidian/, .env/, .trash/, .DS_Store) appear when the toggle is on by default. Remove the defaults under Settings → Community plugins → Reveal Hidden Files → Deny patterns if you want .git/ or .venv/ visible; add new patterns there for any other dotfile content you want kept hidden.
From Obsidian: In Settings → Community plugins → Browse, search for "Reveal Hidden Files", then install and enable it.
From GitHub: Download main.js, manifest.json, and styles.css from the latest release into YourVault/.obsidian/plugins/reveal-hidden-files/, then enable the plugin in Settings → Community plugins.
.git, .venv) keep heavy folders hidden even when the toggle is on; add your own to keep additional entries hidden, or remove either default to surface that folder. Patterns use gitignore-style semantics: a pattern without a forward slash matches the basename at any depth (e.g., .DS_Store matches .DS_Store everywhere it appears in the vault; node_modules matches every node_modules folder; .cache matches every .cache folder). A pattern containing a forward slash matches the full vault-relative path via minimatch glob syntax (e.g., .git/** matches everything inside any root .git/; .obsidian/plugins/*/data.json matches that specific path; **/.DS_Store is equivalent to bare .DS_Store under the basename rule but more explicit)..log, .env, or extension-less files) to also appear in the File Explorer. This plugin handles dotfile visibility only; the extension setting is a separate Obsidian preference the plugin does not modify.., at any depth — except entries matching a deny patternprojects/app/.cache/, notes/archive/.backups/, etc.)/.git and .venv are seeded on first plugin load; remove them in settings if you want those folders visible| Affordance | Always available | Configurable |
|---|---|---|
| Ribbon icon | Yes | Hide via Obsidian's Appearance settings |
| Command palette command | Yes | Searchable as "Toggle hidden files visibility" |
| Keyboard shortcut | No (unbound by default) | Bind under Settings → Hotkeys |
| Settings-panel toggle | Yes | — |
Desktop only. The plugin depends on Obsidian's local filesystem adapter and several undocumented internal methods (reconcileDeletion, reconcileFileInternal, getRealPath, _exists, listRecursive). These are stable in practice but could change in a future Obsidian release, in which case the plugin may need an update.
.cache/ or .backups/) are invisible to it; reading the filesystem directly is the only way to surface them. The plugin only reads directory names to discover entries — it never creates, modifies, or deletes files through this access.Build from source:
npm install # install dependencies
npm run build # production bundle (writes main.js)
npm run dev # watch build for iterating against a side-loaded vault
main.js is generated and is not committed to the repository.
The reconcileDeletion interception pattern is adapted from polyipseity/obsidian-show-hidden-files, the community plugin that first solved this problem.
MIT — see LICENSE. You are free to use, modify, and redistribute it.