Dired

approved

by gapmiss

Navigate and manage files directly, inspired by the Dired mode from Emacs. - This plugin has not been manually reviewed by Obsidian staff.

1 stars117 downloadsUpdated 22d agoMIT

Dired

Navigate and manage vault files from a keyboard-driven text buffer, inspired by the Dired mode from Emacs.

The directory listing is a real CodeMirror buffer: the first line is the current path, folders end with /, and every operation is a single key (or two-key chord) away.

Features

  • Text-buffer file manager — navigate with the cursor, no mouse required
  • Marks — mark multiple files, then move or delete them in one batch
  • Rename mode (wdired-style) — press R, edit names directly in the buffer, press Enter to apply. Ctrl+Alt+↑/↓ stacks cursors on adjacent lines to edit many names at once. Renames and moves go through Obsidian's FileManager, so wiki links and embeds are updated automatically
  • Safe deletes — deletions use Obsidian's native per-file confirmation (respecting your "Confirm file deletion" and "Deleted files" preferences), including the prompt to delete linked attachments
  • Bookmarks — bookmark folders and fuzzy-jump to them from anywhere
  • Preview mode — automatically open the file at the cursor in a split as you move
  • Inline key hints — the bottom of the buffer lists every binding; toggle with ?
  • Auto-refresh — the listing stays in sync as the vault changes

Key bindings

KeyAction
mToggle mark (and advance)
tToggle all marks
UUnmark all
*.Mark by file extension
Enter / oOpen file / view directory
RRename mode — edit names in the buffer, Enter applies, Esc cancels
Ctrl+Alt+↑/↓Add cursors above/below for column editing (rename mode only)
MMove marked files (or file at cursor)
DDelete marked files (or file at cursor) to trash
cdCreate directory
cfCreate file
uUp to parent directory
gGo to directory
BGo to bookmark or any directory
abToggle bookmark for current directory
p / nMove to previous / next file
jJump to file/dir name
rRefresh view
PToggle preview mode on/off
?Toggle key hints

Multi-file operations (M, D) apply to marked files, or to the file at the cursor when nothing is marked. In rename mode you can also type a relative path (for example sub/note.md) to move a file into an existing subfolder.

Usage

  • Command palette: Dired: Open (starts in the active file's folder) or Dired: Open vault root
  • Ribbon: the folder-tree icon
  • File explorer: right-click a folder → Open in dired

Customization

The view inherits your theme's monospace font and editor font size. Everything else — fonts, colors, line numbers, spacing — can be overridden with a CSS snippet: see THEME.md for a selector reference, recipes, and a visual showcase snippet.

Notes and limitations

  • Vault-scoped: the listing shows what Obsidian indexes, so hidden folders such as .obsidian do not appear
  • Marks live per view and are pruned automatically when files disappear
  • The buffer is read-only outside rename mode; arrow keys, Home/End, and selection all work as in a normal editor

Installation

Install from community.obsidian.md

From Obsidian's settings or preferences:

  1. Community Plugins > Browse
  2. Search for "Dired"

Manually:

  1. download the latest release archive
  2. uncompress the downloaded archive
  3. move the dired folder to /path/to/vault/.obsidian/plugins/
  4. Settings > Community plugins > reload Installed plugins
  5. enable plugin

or:

  1. download main.js, manifest.json & styles.css from the latest release
  2. create a new folder /path/to/vault/.obsidian/plugins/dired
  3. move all 3 files to /path/to/vault/.obsidian/plugins/dired
  4. Settings > Community plugins > reload Installed plugins
  5. enable plugin

Development

npm install
npm run dev     # esbuild watch
npm run build   # type-check + production build
npm run lint    # eslint (eslint-plugin-obsidianmd)

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.