Replace the default file explorer in Obsidian with a clean two-pane interface featuring folder tree, tag browsing, file previews, keyboard navigation, drag-and-drop, pinned notes, and customizable display options.
Copy the command below to clone the repository to your machine.
Read in your language: English • العربية • Deutsch • Español • فارسی • Français • Bahasa Indonesia • Italiano • Nederlands • Polski • Português • Português (Brasil) • Русский • ไทย • Türkçe • Українська • Tiếng Việt • 日本語 • 한국어 • 中文简体 • 中文繁體

Turn Obsidian into a fast, customizable notes browser with folders, tags, properties and shortcuts in one view.
Visual previews. Full keyboard navigation. Dual-pane layout. Mobile optimized. Works with 100,000+ notes.
If you love using Notebook Navigator, please consider ☕️ Buying me a coffee or Sponsor on GitHub ❤️.
Here is the official tutorial for learning and mastering Notebook Navigator:
The video has subtitles in 21 languages.
API Reference - Public API documentation. Covers metadata management, navigation control and event subscriptions for JavaScript/TypeScript developers.
Theming Guide - Guide for theme developers. Includes CSS class reference, custom
properties, and theme examples for light and dark modes.
Startup Process - Plugin initialization sequence. Cold boot vs warm boot flows,
metadata cache resolution, deferred cleanup, and content generation pipeline. Includes Mermaid diagrams.
Metadata Pipeline - Cache rebuild sequence, provider pipeline stages, and completion signals. Includes Mermaid diagrams.
Storage Architecture - Guide to storage containers (IndexedDB, Local Storage,
Memory Cache, Settings). Data flow patterns and usage guidelines.
Rendering Architecture - React component hierarchy, virtual scrolling with
TanStack Virtual, performance optimizations, and data flow.
Scroll Orchestration - How the plugin ensures accurate scrolling when tree structures change (tag visibility, settings, etc.)
Service Architecture - Business logic layer: MetadataService, FileSystemOperations, ContentProviderRegistry. Dependency injection patterns and service data flow.
| Key | Action |
|---|---|
| ↑/↓ | Navigate up/down in current pane |
| ← | In navigation pane: collapse or go to parent In list pane: switch to navigation pane |
| → | In navigation pane: expand or switch to list pane In list pane: switch to editor |
| Tab | In navigation pane: switch to list pane In list pane: switch to editor In search field: switch to list pane |
| Shift+Tab | In list pane: switch to navigation pane In search field: switch to navigation pane |
| Enter | In navigation pane: open folder note In list pane: open selected file (when enabled in settings) In search field: switch to list pane |
| Escape | In search field: close search and focus list pane |
| PageUp/PageDown | Scroll up/down in navigation pane and list pane |
| Home/End | Jump to first/last item in current pane |
| Delete (Windows/Linux) Backspace (macOS) |
Delete selected item |
| Cmd/Ctrl+A | Select all notes in current folder |
| Cmd/Ctrl+Click | Toggle notes selection |
| Shift+Click | Select a range of notes |
| Shift+Home/End | Select from current position to first/last item |
| Shift+↑/↓ | Extend selection up/down |
Note: All keyboard shortcuts can be customized. See section 7 - Custom hotkeys for details on adding VIM-style navigation (h,j,k,l), alternate keys, and modifier combinations.
Many settings in Notebook Navigator display a sync toggle — a cloud icon that switches between "Enable sync" and "Disable sync". This controls where each setting is stored and whether it is shared across devices.
Obsidian plugins store their configuration in data.json, located at .obsidian/plugins/notebook-navigator/data.json inside your vault folder. When you use a sync service — such as Obsidian Sync, iCloud, GitHub, Dropbox, or Google Drive — this file is synchronized across all your devices along with the rest of your vault. Any setting saved to data.json will propagate to every device that syncs the vault.
When sync is enabled (default) for a setting, the value is saved to data.json and synchronized to all devices through your sync service.
When sync is disabled for a setting, the value is saved to Obsidian's local storage instead. Local storage is device-specific and is not included in vault sync. The setting will have its own independent value on each device. When you disable sync for a setting, the current value is copied to local storage on the current device, and the value is removed from data.json to prevent it from overriding local values on other devices.
If you do not use a sync service, the sync toggle has no practical effect since data.json is only stored locally.
Notebook Navigator has two search modes: filter search and Omnisearch. Switch between them using the up/down arrow keys or by clicking the search icon. Combine file names, properties, tags, dates, and filters in one query (e.g., meeting .status=active #work @thisweek).
Filters files by name, tags, properties, dates, folders, extensions, and tasks within the current folder and subfolders. Default search mode.
File names
word - Match notes with "word" in the file nameword1 word2 - Require every word to match the file name-word - Exclude notes with "word" in the file nameTags
#tag - Include notes with tag (also matches nested tags like #tag/subtag)# - Include only tagged notes-#tag - Exclude notes with tag-# - Include only untagged notes#tag1 #tag2 - Match both tags (implicit AND)#tag1 AND #tag2 - Match both tags (explicit AND)#tag1 OR #tag2 - Match either tag#a OR #b AND #c - AND has higher precedence: matches #a, or both #b and #cProperties
.key - Include notes with property key.key=value - Include notes with property value."Reading Status" - Property key with whitespace (double-quoted)."Reading Status"="In Progress" - Keys and values with whitespace must be double-quoted-.key - Exclude notes with property key-.key=value - Exclude notes with property valueFilters
has:task - Include notes with unfinished tasks-has:task - Exclude notes with unfinished tasksfolder:meetings - Include notes where a folder name contains meetingsfolder:/work/meetings - Include notes only in work/meetings (not subfolders)folder:/ - Include notes only in the vault root-folder:archive - Exclude notes where a folder name contains archive-folder:/archive - Exclude notes only in archive (not subfolders)ext:md - Include notes with extension md (ext:.md is also supported)-ext:pdf - Exclude notes with extension pdffolder:/work/meetings ext:md @thisweek)Dates
@today - Match notes from today using the default date field@yesterday, @last7d, @last30d, @thisweek, @thismonth - Relative date ranges@2026-02-07 - Match a single day (also supports @20260207)@2026 - Match a calendar year@2026-02 or @202602 - Match a calendar month@2026-W05 or @2026W05 - Match an ISO week@2026-Q2 or @2026Q2 - Match a calendar quarter@13/02/2026 - Numeric formats with separators (@07022026 follows your locale when ambiguous)@2026-02-01..2026-02-07 - Match an inclusive day range (open ends supported)@c:... or @m:... - Target created or modified date-@... - Exclude a date matchThe default date field follows the current sort order. When sorting by name, the date field is configured in Settings → Notes → Date → When sorting by name.
AND/OR behavior
AND and OR operators work in tag/property-only queries (queries that contain only #tag, -#tag, #, -#, .key, -.key, .key=value, or -.key=value filters). If the query also includes names, dates, task filters, folder filters, or extension filters, AND and OR are matched as file name words instead.
#work OR .status=started#work OR ext:md (OR is matched in file names)Full-text search across the vault, filtered to the current folder, subfolders, or selected tags. Requires the Omnisearch plugin. If Omnisearch is not installed, search falls back to filter search.
Note previews show Omnisearch result excerpts instead of the default preview text.
Known limitations
Edit .obsidian/plugins/notebook-navigator/data.json to customize Notebook Navigator hotkeys. Open the file and locate the keyboardShortcuts section. Each entry maps an action to one or more key bindings:
"pane:move-up": [ { "key": "ArrowUp", "modifiers": [] }, { "key": "K", "modifiers": [] } ]
Add multiple bindings per action to support alternate keys, like the ArrowUp and K example above. Combine modifiers in one entry by listing each value, for example "modifiers": ["Mod", "Shift"]. Keyboard sequences such as gg or dd are not supported. Reload Obsidian after editing the file.
| Modifier | Key |
|---|---|
Mod |
Cmd (macOS) / Ctrl (Win/Linux) |
Alt |
Alt / Option |
Shift |
Shift |
Ctrl |
Control (prefer Mod for cross-platform) |
| Action | Default key(s) |
|---|---|
pane:move-up |
ArrowUp |
pane:move-down |
ArrowDown |
pane:page-up |
PageUp |
pane:page-down |
PageDown |
pane:home |
Home |
pane:end |
End |
pane:delete-selected |
Delete, Backspace |
navigation:collapse-or-parent |
ArrowLeft |
navigation:expand-or-focus-list |
ArrowRight |
navigation:focus-list |
Tab |
list:focus-navigation |
ArrowLeft, Shift+Tab |
list:focus-editor |
ArrowRight, Tab |
list:select-all |
Mod+A |
list:extend-selection-up |
Shift+ArrowUp |
list:extend-selection-down |
Shift+ArrowDown |
list:range-to-start |
Shift+Home |
list:range-to-end |
Shift+End |
search:focus-list |
Tab, Enter |
search:focus-navigation |
Shift+Tab |
search:close |
Escape |
Set custom hotkeys for these commands in Obsidian's Hotkeys settings:
View & navigation
Notebook Navigator: Open Opens Notebook Navigator in left sidebar. If already open, moves keyboard focus over to the list pane. Suggestion: Bind to a shortcut key like Cmd/Ctrl+Shift+E to move keyboard focus to the list pane - this is essential for full keyboard navigationNotebook Navigator: Toggle left sidebar Toggles the left sidebar. When opening, sets the left sidebar view to Notebook Navigator (unlike Obsidian's built-in "Toggle left sidebar" command which restores the previous left sidebar view)Notebook Navigator: Open homepage Opens the Notebook Navigator view and loads the homepage file configured in settingsNotebook Navigator: Select vault profile Opens modal to switch between vault profilesNotebook Navigator: Reveal file Reveals current file in navigator. Expands parent folders and scrolls to file. This command is useful if you have the setting Auto-reveal active note switched off and want to reveal notes manually. Suggestion: Bind to a shortcut key like Cmd/Ctrl+Shift+R to quickly change the selected folder or tag to the current fileNotebook Navigator: Open all files Opens all notes in the currently selected folder or tag. When opening 15 or more files, shows a confirmation dialogNotebook Navigator: Navigate to folder Search dialog to jump to any folderNotebook Navigator: Navigate to tag Search dialog to jump to any tagNotebook Navigator: Navigate to property Search dialog to jump to any property key or valueNotebook Navigator: Add to shortcuts Adds or removes the current file, folder, tag, or property from shortcutsNotebook Navigator: Open shortcut 1-9 Opens shortcut by its position in the shortcuts listNotebook Navigator: Search Opens quick search field or focuses it if already open. Search persists between sessions. Suggestion: Bind to a shortcut key like Cmd/Ctrl+Shift+S for quick file filteringNotebook Navigator: Search in vault root Selects the vault root folder and opens search (requires Show root folder enabled)Selection
Notebook Navigator: Select next file Moves selection to the next file in the current folder or tag view. Respects custom sort order. Suggestion: Bind to a shortcut key like Option+Cmd+Right to quickly go to the next file in listNotebook Navigator: Select previous file Moves selection to the previous file in the current folder or tag view. Respects custom sort order. Suggestion: Bind to a shortcut key like Option+Cmd+Left to quickly go to the previous file in listLayout & display
Notebook Navigator: Toggle dual pane layout Toggle single/dual-pane layout (desktop). Suggestion: Bind to a shortcut key like Cmd/Ctrl+Shift+A to quickly switch between single-pane and dual-pane layoutNotebook Navigator: Toggle dual pane orientation Toggle dual-pane orientation between horizontal and verticalNotebook Navigator: Toggle descendants Toggle subfolders / descendants notes display for folders and tags. Suggestion: Bind to a shortcut key like Cmd/Ctrl+Shift+D to quickly toggle display of notes from subfolders / descendantsNotebook Navigator: Toggle hidden items Show or hide hidden folders, tags, and notesNotebook Navigator: Toggle tag sort Toggle between alphabetical and frequency-based tag sortingNotebook Navigator: Toggle compact mode Toggle list mode between standard and compactNotebook Navigator: Collapse / expand all items Collapse or expand all items based on the current state. When Keep selected item expanded is enabled (default on), all folders except the current one will be collapsed. This is handy to keep the navigation tree tidy when searching for documentsCalendar
Notebook Navigator: Toggle calendar Toggles calendar on or off. Suggestion: Bind to a shortcut key like Cmd/Ctrl+Shift+C to quickly show the calendarNotebook Navigator: Open daily note Opens today's daily note based on calendar settings. Creates the note if it doesn't existNotebook Navigator: Open weekly note Opens the current weekly note. Creates the note if it doesn't existNotebook Navigator: Open monthly note Opens the current monthly note. Creates the note if it doesn't existNotebook Navigator: Open quarterly note Opens the current quarterly note. Creates the note if it doesn't existNotebook Navigator: Open yearly note Opens the current yearly note. Creates the note if it doesn't existFile operations
Important: Obsidian has no context of "current folder or tag", so when creating notes in Obsidian by default they are created in the root folder, same folder as current file, or a specific folder. When working with Notebook Navigator you always want to create new notes in the currently selected folder or tag, so the first thing you should do is bind Cmd/Ctrl+N to Notebook Navigator: Create new note so new notes are always created in the currently selected folder or tag. The same also applies to moving and deleting files. This is why you should use these commands instead of the built-in Obsidian commands when using Notebook Navigator.
Notebook Navigator: Create new note Create note in currently selected folder. Suggestion: Bind Cmd/Ctrl+N to this command (unbind from Obsidian's default "Create new note" first)Notebook Navigator: Create new note from template Create note from template in currently selected folder (requires Templater)Notebook Navigator: Move files Move selected files to another folder. Selects next file in current folderNotebook Navigator: Convert to folder note Create a folder matching the file name and move the file inside as the folder noteNotebook Navigator: Set as folder note Rename the active file to its folder note nameNotebook Navigator: Detach folder note Detach the folder note in the selected folder and rename itNotebook Navigator: Pin all folder notes Pin all folder notes in all folders. Command is only visible when folder notes are enabled and at least one unpinned folder note existsNotebook Navigator: Delete files Delete selected files. Selects next file in current folderTag operations
Notebook Navigator: Add tag to selected files Dialog to add tag to selected files. Supports creating new tagsNotebook Navigator: Set property on selected files Dialog to set property on selected filesNotebook Navigator: Remove tag from selected files Dialog to remove specific tag. Removes immediately if only one tagNotebook Navigator: Remove all tags from selected files Clear all tags from selected files with confirmationMaintenance
Notebook Navigator: Rebuild cache Rebuilds the local Notebook Navigator cache. Use this if you experience missing tags, incorrect previews or missing feature images| Command ID | Command name |
|---|---|
notebook-navigator:open |
Notebook Navigator: Open |
notebook-navigator:toggle-left-sidebar |
Notebook Navigator: Toggle left sidebar |
notebook-navigator:open-homepage |
Notebook Navigator: Open homepage |
notebook-navigator:select-profile |
Notebook Navigator: Select vault profile |
notebook-navigator:select-profile-1 |
Notebook Navigator: Select vault profile 1 |
notebook-navigator:select-profile-2 |
Notebook Navigator: Select vault profile 2 |
notebook-navigator:select-profile-3 |
Notebook Navigator: Select vault profile 3 |
notebook-navigator:reveal-file |
Notebook Navigator: Reveal file |
notebook-navigator:open-all-files |
Notebook Navigator: Open all files |
notebook-navigator:navigate-to-folder |
Notebook Navigator: Navigate to folder |
notebook-navigator:navigate-to-tag |
Notebook Navigator: Navigate to tag |
notebook-navigator:navigate-to-property |
Notebook Navigator: Navigate to property |
notebook-navigator:add-shortcut |
Notebook Navigator: Add to shortcuts |
notebook-navigator:open-shortcut-1 |
Notebook Navigator: Open shortcut 1 |
notebook-navigator:open-shortcut-2 |
Notebook Navigator: Open shortcut 2 |
notebook-navigator:open-shortcut-3 |
Notebook Navigator: Open shortcut 3 |
notebook-navigator:open-shortcut-4 |
Notebook Navigator: Open shortcut 4 |
notebook-navigator:open-shortcut-5 |
Notebook Navigator: Open shortcut 5 |
notebook-navigator:open-shortcut-6 |
Notebook Navigator: Open shortcut 6 |
notebook-navigator:open-shortcut-7 |
Notebook Navigator: Open shortcut 7 |
notebook-navigator:open-shortcut-8 |
Notebook Navigator: Open shortcut 8 |
notebook-navigator:open-shortcut-9 |
Notebook Navigator: Open shortcut 9 |
notebook-navigator:search |
Notebook Navigator: Search |
notebook-navigator:search-vault |
Notebook Navigator: Search in vault root |
notebook-navigator:toggle-dual-pane |
Notebook Navigator: Toggle dual pane layout |
notebook-navigator:toggle-dual-pane-orientation |
Notebook Navigator: Toggle dual pane orientation |
notebook-navigator:toggle-calendar |
Notebook Navigator: Toggle calendar |
notebook-navigator:open-daily-note |
Notebook Navigator: Open daily note |
notebook-navigator:open-weekly-note |
Notebook Navigator: Open weekly note |
notebook-navigator:open-monthly-note |
Notebook Navigator: Open monthly note |
notebook-navigator:open-quarterly-note |
Notebook Navigator: Open quarterly note |
notebook-navigator:open-yearly-note |
Notebook Navigator: Open yearly note |
notebook-navigator:toggle-descendants |
Notebook Navigator: Toggle descendants |
notebook-navigator:toggle-hidden |
Notebook Navigator: Toggle hidden items (folders, tags, notes) |
notebook-navigator:toggle-tag-sort |
Notebook Navigator: Toggle tag sort |
notebook-navigator:toggle-compact-mode |
Notebook Navigator: Toggle compact mode |
notebook-navigator:collapse-expand |
Notebook Navigator: Collapse / expand all items |
notebook-navigator:new-note |
Notebook Navigator: Create new note |
notebook-navigator:new-note-from-template |
Notebook Navigator: Create new note from template |
notebook-navigator:move-files |
Notebook Navigator: Move files |
notebook-navigator:select-next-file |
Notebook Navigator: Select next file |
notebook-navigator:select-previous-file |
Notebook Navigator: Select previous file |
notebook-navigator:convert-to-folder-note |
Notebook Navigator: Convert to folder note |
notebook-navigator:set-as-folder-note |
Notebook Navigator: Set as folder note |
notebook-navigator:detach-folder-note |
Notebook Navigator: Detach folder note |
notebook-navigator:pin-all-folder-notes |
Notebook Navigator: Pin all folder notes (requires folder notes enabled and an unpinned folder note) |
notebook-navigator:delete-files |
Notebook Navigator: Delete files |
notebook-navigator:add-tag |
Notebook Navigator: Add tag to selected files |
notebook-navigator:set-property |
Notebook Navigator: Set property on selected files |
notebook-navigator:remove-tag |
Notebook Navigator: Remove tag from selected files |
notebook-navigator:remove-all-tags |
Notebook Navigator: Remove all tags from selected files |
notebook-navigator:rebuild-cache |
Notebook Navigator: Rebuild cache |
Notebook Navigator runs locally, but some features make HTTP requests from Obsidian.
https://api.github.com/repos/johansan/notebook-navigator/releases/latesthttps://raw.githubusercontent.com/johansan/notebook-navigator/main/icon-assets/... (manifest, font, metadata)https://raw.githubusercontent.com/johansan/notebook-navigator/main/images/youtube-thumbnail.jpg.https://raw.githubusercontent.com/johansan/notebook-navigator/main/images/version-banners/<id>.jpg for release notes that include a banner.https://img.youtube.com/vi/<id>/... for release notes that include a YouTube link.Notebook Navigator is built and maintained by Johan Sanneblad. Johan has a PhD in Software Development and has worked with innovation development for companies such as Apple, Electronic Arts, Google, Microsoft, Lego, SKF, Volvo Cars, Volvo Group and Yamaha.
Feel free to connect with me on LinkedIn.
Join our Discord for support and discussions, or open an issue on the
GitHub repository.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.