obsidianmd/obsidian-importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

TypeScript

1,704

638 commits

updated Oct 16, 2026

See the code

README

This Obsidian plugin helps you import notes from other apps and file formats into your Obsidian vault. Notes are converted to plain text Markdown files.

Get started

Install Importer in Obsidian → Community Plugins.

Import guides are hosted on the official Obsidian Help site. You can help contribute to the guides on the obsidian-help repo.

See Import templates for the shared template variables and the additional values provided by each importer.

Contributing

Importer is a community-led project. You can explore pull requests and see the credits below for reference. The Obsidian team is not actively working on adding new import capabilities, but we welcome pull requests for new formats and improvements.

Is a format missing? You can help! See our Contribution guidelines.

Some issues have been tagged with #bounty.

Developers

npm install
npm run dev      # build, copy into a vault, reload the plugin
npm test         # convert every fixture and compare against its recording
npm run build    # typecheck and build for release

Set OBSIDIAN_PATH in .env to the plugin folder npm run dev should copy into, relative to your home directory:

OBSIDIAN_PATH='/Documents/MyVault/.obsidian/plugins'

Tests

Each importer is tested by converting a real file and comparing the result with an expected output:

tests/notion/notion-testspace.zip           a fixture
tests/notion/expected/notion-testspace/…    what converting it produces
tests/notion/local/                         gitignored, for test files that won't be committed

Run one importer's tests while working on it:

npm test -- notion

To record a new fixture's output, or update one after an intended change:

UPDATE_EXPECTED=1 npm test -- notion

Debugging an issue someone reported? Drop their export in tests/<importer>/local/. It is gitignored, and so is the output, so you can work against a real file without committing it.

Credits

This plugin relies on important contributions:

airtable
apple-notes
bases
csv
evernote
google-keep
markdown
md
notion
obsidian
obsidianmd
obsidian-plugin
onenote

obsidianmd/obsidian-importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

TypeScript

1,704

638 commits

updated Oct 16, 2026

See the code

README

This Obsidian plugin helps you import notes from other apps and file formats into your Obsidian vault. Notes are converted to plain text Markdown files.

Get started

Install Importer in Obsidian → Community Plugins.

Import guides are hosted on the official Obsidian Help site. You can help contribute to the guides on the obsidian-help repo.

See Import templates for the shared template variables and the additional values provided by each importer.

Contributing

Importer is a community-led project. You can explore pull requests and see the credits below for reference. The Obsidian team is not actively working on adding new import capabilities, but we welcome pull requests for new formats and improvements.

Is a format missing? You can help! See our Contribution guidelines.

Some issues have been tagged with #bounty.

Developers

npm install
npm run dev      # build, copy into a vault, reload the plugin
npm test         # convert every fixture and compare against its recording
npm run build    # typecheck and build for release

Set OBSIDIAN_PATH in .env to the plugin folder npm run dev should copy into, relative to your home directory:

OBSIDIAN_PATH='/Documents/MyVault/.obsidian/plugins'

Tests

Each importer is tested by converting a real file and comparing the result with an expected output:

tests/notion/notion-testspace.zip           a fixture
tests/notion/expected/notion-testspace/…    what converting it produces
tests/notion/local/                         gitignored, for test files that won't be committed

Run one importer's tests while working on it:

npm test -- notion

To record a new fixture's output, or update one after an intended change:

UPDATE_EXPECTED=1 npm test -- notion

Debugging an issue someone reported? Drop their export in tests/<importer>/local/. It is gitignored, and so is the output, so you can work against a real file without committing it.

Credits

This plugin relies on important contributions:

airtable
apple-notes
bases
csv
evernote
google-keep
markdown
md
notion
obsidian
obsidianmd
obsidian-plugin
onenote

Significant stargazers

Andy Waite

242 followers · starred Aug 2026

Felix Krause

5,631 followers · starred Mar 2026

Paul Berg

2,057 followers · starred Feb 2026

Boninall

779 followers · starred Jul 2023