yunmin92 downloadsTuck archived and index notes out of the file explorer without moving them, and focus on one set of folders at a time.
Tuck archived notes out of the file explorer — without moving a single file. Then focus on just the folders you're working in.
Quiet Shelf does two things, both purely at the display layer of the file explorer. Your files never move, nothing is renamed, and the graph, search, backlinks and sync all keep working exactly as before.

Shelve a file or folder and it simply stops showing up in the explorer. Shelved items can be put back by hand at any time, and readme/inbox files can be auto-shelved by filename.
Items you have manually un-shelved stay un-shelved — the automatic rule will not grab them again.
Restoring an item also restores any shelved ancestors that would hide it. Other contents of those ancestor folders may consequently become visible, but unrelated explicit shelf entries stay shelved. If focus excludes a restored item, Restore exits focus and keeps the focus targets and saved sets for later reuse.
One rule per line, matched case-insensitively against the file name (without the
.md extension). * is a wildcard, and where you put it decides the match:
| Rule | Matches | Example |
|---|---|---|
index |
the name is exactly index |
index.md |
*index |
the name ends with index |
_Aesthetic Index.md |
index* |
the name starts with index |
index-old.md |
*index* |
the name contains index anywhere |
my-index-old.md |
Without a * the behaviour is the old exact match, so existing rules keep
working.
A bare rule is an exact match, not a substring match. A rule of
hubmatches only a file calledhub— it does not catchgithub.md,GitHub.mdormy-github.md. To match everything containing a word, write*word*; but be aware thatgithubends withhub, so*huband*hub*both catch it.hub*and a barehubdo not. Pick the position that says what you mean.

Select folders and files across different levels of the tree, and only that set (plus its ancestors and descendants) stays visible. Focus sets can be saved under a name and recalled later.
While focus is active, the shelf panel, batch manager and settings show an exit button. Exit focus keeps shelf rules: it removes the focus filter, not your deliberately shelved items. Tree updates do not wait for settings to be saved; if a save fails, a notice warns that the old settings may return after restarting.

The file explorer is a browse surface, not an archive. Once a vault grows past a few hundred notes, the folders you finished months ago take up as much room as the ones you use daily. Quiet Shelf lets the tree show the working set without you having to reorganize the vault to get there.
Everything is done with DOM-level class toggling on the explorer's own tree
items. The plugin reads data-path from each item's row and hides the
corresponding subtree; it does not use fileItems, setCollapsed, or any other
internal API, so it stays compatible across Obsidian updates.
Run a command from the palette, or open the shelf panel from the plugin settings:
| Command | What it does |
|---|---|
| Open shelf panel | Open the management panel |
| Batch manage | Shelve or restore several items at once |
| Toggle shelve | Shelve / restore the item under the cursor |
| Toggle focus | Turn focus mode on or off |
| Focus active folder | Focus the folder of the current note |
| Exit focus (keep shelf rules) | Turn focus off while keeping its targets and saved sets |
| Save focus set | Save the current focus set under a name |
Community plugins: search for "Quiet Shelf" in Settings → Community plugins.
Manual:
main.js, manifest.json and styles.css from the
latest release.<vault>/.obsidian/plugins/quiet-shelf/.Beta builds: add yunmin311/quiet-shelf-obsidian to
BRAT.
The settings page, commands, context-menu items, both modals and every notice
are available in Chinese and English. Pick a language at the top of the
settings page: Auto follows Obsidian's own language, or pin it to
简体中文 / English explicitly.
To add a language, add a table in locales.js, then regenerate the inlined
modules in main.js before distributing the plugin.
Run node --test tests/recovery.test.js and node --check main.js.
The regression suite loads the shipped plugin with an Obsidian host substitute
and checks restore/focus interactions, slow or failed settings writes, unload
cleanup, wildcard rules, and bilingual key/placeholder parity. These tests do
not replace a live Obsidian check with other file-explorer plugins enabled.
No network access. No telemetry. No accounts. The plugin reads only the file tree of the vault it runs in, and does not touch anything outside it.
Settings live in data.json inside the plugin folder, which is the same
mechanism every Obsidian plugin uses for local settings.
暗格:把归档、索引类的文件从左侧文件树里收起来。文件本身不动 —— 物理位置、知识图谱、搜索、双链、同步全部照旧,只是不在树里显示了。 手动放回过的东西不会被自动规则再次收起。
聚焦:跨层级多选文件夹和文件,只留下选中组及其祖先与后代,可存成命名组合随时切换。
放回与退出:放回项目时,会一并放回挡住它的上级目录,因此这些目录里的其他内容也可能 重新显示;其他单独移入暗格的项目不受影响。如果聚焦挡住了要放回的项目,会退出聚焦, 但保留聚焦目标和已保存组合。暗格清单、批量管理和设置页都会在聚焦开启时提供退出按钮。 「退出聚焦(保留暗格规则)」只解除聚焦过滤,不清空暗格清单。
恢复文件树不再等待配置写盘成功。若保存失败,会提示当前显示已更新、但重启后可能恢复旧状态; 请检查配置文件写入权限或同步冲突后重试。插件卸载后,延迟回调不会再次隐藏文件树。
自动规则(0.3.0 起支持通配符):index 精确匹配 / index* 开头 / *index 结尾 /
*index* 包含,均不分大小写。
⚠️ 不带 * 是精确匹配,不是包含匹配。 规则写 hub 只匹配名叫 hub 的文件,
不会收掉 github.md / GitHub.md / my-github.md。
想匹配"含某词"请写 *词* —— 但注意 github 是「以 hub 结尾」的
(g-i-t-h-u-b),所以 *hub 和 *hub* 都会连带收掉 github,
而 hub* 与裸 hub 不会。按你想说的那个位置来选。
安装:在社区插件里搜 "Quiet Shelf",或从 Release 下载三个文件放进
.obsidian/plugins/quiet-shelf/。