yidachen-1430 downloadsBrowse creative vaults visually, with whole-Canvas thumbnails.
Browse your Obsidian vault as a visual card gallery, with thumbnails of the whole Canvas, not just its first image. Visual Gallery is an independent community plugin, with desktop and mobile interaction paths starting in 0.1.19.
cover frontmatter or the first embedded local image; readable excerpts for notes without covers.Visual Gallery is listed in the Obsidian Community directory. In Obsidian, install it from Settings → Community plugins → Browse when the catalog has propagated to your client.
You can also install manually from the GitHub releases:
main.js, manifest.json and styles.css from the same release.<vault>/.obsidian/plugins/visual-gallery/ and put those three files inside it.PDF rendering is included in main.js; no separate worker, external service or download is needed. When updating manually, disable the plugin, replace those three files, and re-enable it. Keep your data.json to retain settings.
Click the gallery ribbon icon, or run Visual Gallery: Open Visual Gallery in the command palette. The gallery opens in the active note's folder. Use breadcrumbs to navigate, the file-type filter to narrow the cards, and the sort menu to reorder files. Folders remain first and sorted A–Z, like the native file explorer.
For multiple selections, use Command on macOS or Ctrl on Windows/Linux. Command/Ctrl+A selects currently displayed filtered cards. Shift-click and Shift+arrow keys extend a range. Drag from blank gallery space to select files and folders together.
On iPhone, iPad and Android, use the touch selection and destination menu described above instead of desktop HTML drag-and-drop or modifier keys. The mobile card menu omits Finder/system file manager and omits Rename when multiple items are selected. Delete still acts on the pressed item only and uses Obsidian's confirmation/trash preferences. Desktop mouse behavior is unchanged. The header retains exactly Create (+), Sort, Filter, with larger mobile touch targets.
Drag-and-drop and rename act on original files, not previews. Moves through gallery targets check name conflicts and invalid folder nesting before starting the batch. If a disk error interrupts a batch, a notice reports how many items moved; already completed moves are not automatically rolled back. Link updates follow Obsidian's preferences. Back up your vault before reorganizing important files.
Delete uses Obsidian's native deletion flow and preferences. If you disabled confirmation or selected permanent deletion in Obsidian, those preferences also apply here. The card menu acts on the right-clicked item, not the entire selection.
Settings include a read-only cache location and Clear thumbnail cache. Clearing the cache removes disposable previews only; the next gallery visit regenerates them. Commands can also rebuild all Canvas previews or generate a preview for the active Canvas.
Settings are grouped into Interface, Card layout, Browsing defaults, Icons, Folder cover colors, Note card cover colors and Thumbnail cache. Changing the interface language updates the gallery, settings, command names and ribbon tooltip immediately; it never renames your files or replaces your custom title. The header keeps the folder title alongside three icon-only buttons, in order: Create (+), Sort, Filter. Clicking + opens a native menu ordered New note, New Canvas, New folder; choosing an action then opens the existing naming dialog. Sort and Filter open their respective native text menus. Hover tooltips and accessible labels are translated and show the current sort/filter. Sort and Filter menus mark the active choice; an active filter tints its icon. The title and buttons stay on one row, including narrow windows and very few cards. Only the header expands when needed, without changing card/grid widths. Folder cards and breadcrumbs use Obsidian's native navigation history. The pane's Back/Forward arrows, mouse side buttons and configured native navigation shortcuts share that history, including returning from a note opened in the same pane. Each visited gallery page retains its filter and sort. A new folder destination after going back clears the old forward branch.
<vault>/.obsidian/plugins/visual-gallery/thumbnail-cache/ (or the vault's custom configuration directory).Obsidian 1.13.7 or newer is required. 0.1.19 removes the desktop-only installation restriction and implements iOS/iPadOS/Android touch support. Keep Obsidian and your OS/WebView updated. Native desktop UI integration was previously tested on macOS with Obsidian 1.13.7; Windows/Linux-specific file-manager behavior has not been independently tested.
Mobile validation covers official Obsidian 1.13.8 on Android phone/tablet emulators: plugin enablement, local Canvas/image/PDF thumbnails, native menus, touch selection and batch moves, cache cleanup/rebuilding, offline app restart and portrait/landscape layouts. iPhone/iPad simulator WebKit rendering and touch-logic checks also pass, but use substituted Obsidian APIs and are not iOS Obsidian E2E. Physical devices, older OS/WebViews and full iOS Obsidian integration remain unverified; compatibility with every mobile device is not claimed. See mobile support and verification.
On mobile, Canvas generation is limited to one concurrent job and a 1024 px maximum dimension, with one nested level, to reduce memory pressure. PDF thumbnails have a 900 px size cap. If ImageBitmap or WebP encoding is unavailable, local HTML image decoding and correctly named PNG caching provide fallbacks. PDF worker startup errors/timeouts show an unavailable preview without hanging the thumbnail queue; no remote worker is fetched. Existing desktop rendering limits remain unchanged.
Canvas previews are a Canvas2D reconstruction, not screenshots of Obsidian's Canvas. Full Markdown layout, remote embeds, custom plugin nodes and theme-specific details are not reproduced exactly. Very wide or tall boards preserve the whole board, so individual nodes may look small.
Interoperability with the native file explorer uses a guarded internal drag API. If that API changes, the adapter may need an update. PDF previews show only the first page and do not prompt for encrypted-document passwords.
Use Node.js 22 and pnpm 10.12.1:
corepack enable
corepack prepare [email protected] --activate
pnpm install --frozen-lockfile
pnpm run build
The build runs the type checker and tests before generating main.js. pnpm run dev watches source files. Use a disposable test vault for file-management testing. Build outputs and personal vault contents are not committed.
Card styles follow the locked card geometry contract and development constraints. The build rejects an inset or duplicate outline implementation. Changes also require real-host rendering checks of all four corners in ordinary, selected and drop-target states, in both themes.
The bundled PDF.js 5.4.624 worker is loaded as a local module Blob and released when the plugin unloads. Remote PDF worker/asset fetching, dynamic font evaluation and optional WebAssembly loading are disabled. This version is tested against Obsidian 1.13.7's embedded browser. Third-party attribution and the full PDF.js license are embedded in the distributed bundle as well as included in this repository.
See LICENSE for this project's license and THIRD_PARTY_NOTICES.md for attribution and third-party licenses. PDF.js is licensed under Apache-2.0; its full license is also in PDFJS_LICENSE.txt.
Rendering and cache design draw on Embed Canvas, Gallery Navigator, the JSON Canvas specification and the official Obsidian sample plugin, as documented in the notices. This plugin is not an official Obsidian product.
Report problems through GitHub Issues, including the plugin version, Obsidian version, operating system and reproduction steps. Do not post private vault contents.