xwberry35 downloadsDrag files from file explorer to other applications (local filesystem, browser uploads, email attachments, etc.) with native OS drag handles instead of application URIs.
Drag files from Obsidian's file explorer to other apps using native OS
drag-and-drop instead of dropping an obsidian:// URL.
This is useful for browser upload fields, email attachments, chat apps, file managers, and other places that expect an actual file from your filesystem.
Status: experimental, desktop only. Tested primarily on Windows so far; macOS and Linux feedback is welcome.
Obsidian's file tree is a virtual UI. By default, dragging a note out of the
file tree gives other apps a link like obsidian://open?vault=Vault&file=Note.md
instead of the file itself.
Drag Out intercepts file-tree drags when your configured modifier key is held
and uses Electron's webContents.startDrag API to expose the real on-disk file
path. Normal Obsidian drag behavior is left alone when the modifier is not held.
Drag Out is not in the Obsidian community plugin marketplace yet. To install it manually:
main.js and manifest.json. If the release
includes icon.png, download that too..obsidian/plugins/drag-out/
If Restricted Mode is on, Obsidian will ask you to turn it off before enabling community plugins.
Hold the modifier key while dragging a file or folder from Obsidian's left sidebar file explorer to another app.
The default modifier is:
You can change the modifier in Settings > Drag Out. Available options are Ctrl/Cmd, Alt/Option, Shift, or None.
Multi-select is supported: select multiple files in Obsidian's file explorer, then modifier-drag one of the selected files. If you drag an unselected file while other files are selected, only the file you dragged is sent.
Electron's external drag API takes over the current drag operation. That means Obsidian's own file-tree drag behavior, such as moving notes between folders, cannot run during the same drag.
Using a modifier keeps normal Obsidian drags unchanged. If you always want file drags to go to external apps, set the modifier to None in the plugin settings.
isDesktopOnly.This repo uses Bun for its scripts.
bun install
bun run build
For development watch mode:
bun run dev
The build reads main.ts and writes the bundled plugin entrypoint to
main.js. manifest.json is maintained separately.
Enable Debug logging in the plugin settings, then open Obsidian's developer
console with Ctrl+Shift+I and try a drag. A successful external drag logs
the resolved filesystem paths.
If you see Drag Out: could not access Electron's webContents, please report
your Obsidian version, operating system, and whether you installed from a
release or built from source.
MIT