One-shot importer from an Obsidian vault to Notion.
It creates regular Notion pages (not databases), preserves folder nesting, and sets each note title from:
- frontmatter
title - first Markdown
# Heading - filename (fallback)
-
Install dependencies:
npm install
-
Create your env file:
cp .env.example .env
-
Fill
.env:NOTION_KEY: integration token fromhttps://www.notion.so/my-integrationsNOTION_PARENT_PAGE_ID: parent page ID in NotionOBSIDIAN_VAULT_PATH: absolute vault pathCONCURRENCY(optional, default5)
-
Share the target Notion parent page with your integration.
npm run sync- This script reads your local vault and does not delete or modify your source files.
- Local image/embed syntax is converted to text placeholders (attachments are not uploaded).
- Re-running is idempotent for already-existing sibling page titles (it skips duplicates).