Quick Export

by mikagosz
5
4
3
2
1
Score: 50/100

Description

Right-click an Obsidian note or selection to save a copy outside the vault as .md or .txt.

Reviews

No reviews yet.

Stats

0
stars
38
downloads
0
forks
9
days
1
days
1
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
15
commits

Latest Version

a day ago

Changelog

1.0.2 — an export that fails now says so

Fixed

  • An unexpected error during an export used to be swallowed: the menu item did nothing at all and there was no way to tell why. Every export path now reports its failure in a notice.
  • The native save dialog reaches a part of Electron that Electron itself removed in version 14 and that Obsidian puts back for compatibility. If that ever stops, the export falls back to the configured export folder and says so, instead of failing on a click.
  • With "Ask where to save" turned off, an existing file of the same name is no longer overwritten. The export folder sits outside the vault, where a name collision means somebody else's file. With the dialog on, the path is one you confirmed yourself, so overwriting stays your decision.

Also

  • First test suite: the naming and path rules, including that the timestamp is local time rather than UTC — the reason an evening export is not stamped with yesterday's date.
  • README: install from the community catalogue.
  • Internals: Node imports use the node: prefix, and linting is part of the build, so a green build means a clean one.

README file from

Github

Quick Export

An Obsidian plugin that saves a copy of a note — or just the text you selected — to a folder outside the vault, as .md or .txt.

Desktop only: it uses Node's filesystem APIs, which are not available on iOS or Android.

Right-click a note

In the file explorer, on a tab, or on the note title:

  • Export a copy as Markdown
  • Export a copy as plain text

The note does not have to be open. If it is open with unsaved edits, the export takes the live editor content rather than the older copy on disk.

Only markdown notes get these items; right-clicking an image or a PDF leaves the menu untouched.

Right-click a selection

Select text inside a note, then right-click it:

  • Export selection as Markdown
  • Export selection as plain text

These items appear only when something is selected, so the editor's context menu stays clean during ordinary writing.

Command palette and hotkeys

The same four operations are also registered as commands, visible only while an editor is active:

Command Writes
Export note as Markdown whole note → .md
Export selection as Markdown selection → .md
Export note as plain text whole note → .txt
Export selection as plain text selection → .txt

Assign a hotkey under Settings → Hotkeys, filtering by "Quick Export". Four hotkeys for four variants is usually overkill — bind the one you actually use and reach the rest from the menus.

File naming

Exports are named <note name>-<timestamp>.<ext>, for example Meeting notes-2026-08-07_143045.md.

Characters that are illegal in file names (/ \ : * ? " < > |) are replaced with -, and the note-name portion is capped at 80 characters. The timestamp uses local time, not UTC, so an evening export is not stamped with the previous day.

Settings

Setting Default Effect
Export folder ~/Desktop Destination directory. A leading ~ expands to your home folder.
Timestamp format Readable 2026-08-07_143045 or 2026-08-07T14-30-45.
Also copy to clipboard Off Mirrors the exported text to the clipboard. A clipboard failure never invalidates a successful write to disk.

Development

Requires Node 18 or newer.

npm install
npm run dev

npm run dev watches src/ and rebuilds main.js on save. To pick up changes in Obsidian without restarting it, install Hot Reload into your development vault.

Production build — this one also runs tsc -noEmit, so type errors fail the build:

npm run build

Lint, including the Obsidian-specific guideline rules:

npm run lint

Testing against a vault

Symlink the repo into a development vault rather than copying it:

ln -s /path/to/this/repo ~/obsidian-dev-vault/.obsidian/plugins/quick-export

Do not develop against a vault you care about — a half-finished export plugin has write access to real files.

Installing into a real vault

Settings → Community plugins → Browse, search for Quick Export, install and enable it. Updates then arrive on their own.

Copy the two build artifacts (not the whole repo) into <vault>/.obsidian/plugins/quick-export/:

cp main.js manifest.json <vault>/.obsidian/plugins/quick-export/

Then Settings → Community plugins → Reload plugins, and enable Quick Export.

A copy installed this way does not update itself.

Layout

src/main.ts        plugin entry, commands, file-menu and editor-menu wiring
src/exporter.ts    text extraction, file naming, disk write, clipboard
src/settings.ts    settings interface, defaults, settings tab

exporter.ts exposes two entry points over a shared write path: exportText for anything driven by an open editor, and exportFile for the context-menu case where a note may not be open at all.

What it touches

The plugin reads; it never modifies the vault. There are no calls to vault.modify, vault.delete, vault.trash, vault.rename or vault.create, and no replaceSelection / replaceRange on the editor.

The only filesystem operation is a single fs.writeFile into the configured export folder. The plugin does not create that folder — a path that does not exist produces an error notice rather than a surprise directory.

License

MIT