Kevin Yan26 downloadsKeeps parent folders pinned at the top of the file explorer while you scroll, merging deep paths into one row and highlighting a folder's range from its indent guide.
Keep parent folders pinned at the top of Obsidian's file explorer while you scroll,
so you always know which folder you are in, even five levels deep.
English · 简体中文
Vaults organised by date or project get deep fast: Work / Meetings / 2026 / 2026-05 / 2026-05-21 / …. Scroll a little and the folder rows slide out of view. All that is left are indent lines that don't say where they lead.
Sticky Folders keeps those parents on screen, the way VS Code's sticky scroll keeps the enclosing function visible.
| Without Sticky Folders | With Sticky Folders |
|---|---|
![]() |
![]() |
Every open parent folder of the top of the list gets its own pinned row, indented like the tree below it. When a folder ends, the next one pushes its row up. Pinned rows are copies of the real rows, so your theme's styling carries over.
Choose how many rows may be pinned (1–8, default 4). When nesting goes deeper, the extra levels share one row: grey names for the merged parents, the folder you are in at the end. You decide which end merges.
| Merge deeper levels into the last row (default) | Merge outer levels into the first row |
|---|---|
![]() |
![]() |
Hover an indent guide, a pinned row or a grey name. The folder's whole range lights up in your accent colour and its name turns bold, both in the tree and in the pinned rows. Click the guide to collapse that folder.

Click a pinned row, or one of the grey names, to collapse that folder. The list scrolls so the folder sits right under the rows that stay pinned, so you don't lose your place. Right-click a pinned row for Obsidian's usual folder menu.
| Dark theme | Mobile |
|---|---|
![]() |
![]() |
Sticky Folders is not in Obsidian's community plugin list yet. Until it is, install it with BRAT or by hand.
Tuosang/obsidian-sticky-folders and choose the latest version.BRAT also keeps the plugin up to date.
main.js, manifest.json and styles.css from the latest release.<your vault>/.obsidian/plugins/sticky-folders/.There is nothing to set up. Open the file explorer and scroll.
| Action | What happens |
|---|---|
| Scroll the file list | Open parent folders stay pinned at the top |
| Hover an indent guide, pinned row or grey name | The folder's range is highlighted and its name turns bold |
| Click a pinned row or grey name | That folder collapses and stays in place |
| Click an indent guide | That folder collapses (can be turned off) |
| Right-click a pinned row | Obsidian's folder menu for that folder |
| Scroll over the pinned rows | The list scrolls as usual |
| Setting | Default | What it does |
|---|---|---|
| Max pinned rows | 4 | How many rows may be pinned at once (1–8) |
| When there are more levels than rows | Merge deeper levels into the last row | Which end shares one row of grey names |
| Indent guide hints | On | Highlight a folder's range and bold its name on hover |
| Click a guide to collapse | On | Clicking an indent guide collapses its folder |
The settings also show up in Obsidian's settings search, and each one has a button to reset it to the default.

Sticky Folders makes no network requests and collects no data. It reads the file explorer on screen and never opens your notes. Its settings are stored in the plugin's own data.json.
position: sticky element at the top of the explorer's scroll container. Wheel, trackpad and touch scrolling over them keep working.git clone https://github.com/Tuosang/obsidian-sticky-folders.git
cd obsidian-sticky-folders
npm install
npm test # layout logic in src/layout.ts
npm run lint # the Obsidian community directory's ESLint rules
npm run build # type-check and bundle into dist/
npm run dev # rebuild on every change
To copy each build into a vault, put the vault's path in a git-ignored .vault file or set STICKY_VAULT.
To release, run npm version patch (it updates manifest.json and versions.json), then push the commit and a tag equal to the version without v, for example git push && git push origin 0.1.1. GitHub Actions builds the plugin and drafts a release with the three files.
See CHANGELOG.md.
Bug reports and ideas are welcome in issues, in English or Chinese.
Inspired by the sticky scroll in Visual Studio Code.
MIT © 2026 Kevin Yan