choisungwook60 downloadsSync your vault's markdown notes to Notion pages.
Desktop-only Obsidian plugin that syncs every markdown note in your vault to Notion as child pages of a parent page.
~/.config/akbun-notion-sync/sync-state.json).Two options, selectable in the settings tab:
http://localhost:43110/callback as its redirect URI, then click Connect. Your browser opens Notion's consent page and the plugin receives the code on a temporary localhost server.Credentials are stored in ~/.config/akbun-notion-sync/credentials.json with 0600 permissions — never inside the vault, so syncing your vault with git or cloud storage cannot leak tokens.
Notion's OAuth flow requires your own public integration — Notion does not support a client-less (PKCE-only) flow, so a client ID and secret are always needed. Set one up once:
Open notion.so/my-integrations and click New integration.
Under Type, choose Public. Fill in the required fields (name, company/website, privacy policy and terms URLs — personal links are fine for private use).
In Redirect URIs, add exactly:
http://localhost:43110/callback
The plugin listens on this port only while the Connect button is waiting for the callback.
Save, then copy the OAuth client ID and OAuth client secret from the integration's Configuration tab.
In Obsidian, open the plugin settings, select OAuth as the authentication method, paste the client ID and secret, and click Connect.
Your browser opens Notion's consent page. Pick the workspace and pages to share (include the parent page you sync into), then approve. The tab will say you can close it, and Obsidian shows a "Connected to Notion" notice.
The client secret and the access token are saved to ~/.config/akbun-notion-sync/credentials.json; you only need the secret again if you reconnect.
If this feels heavy, the Integration token method is simpler for a single personal workspace — create an internal integration, paste its token, and share the parent page with it.
notes, work/projects). Empty syncs the whole vault. Notes outside these folders are never created, updated, or archived — narrowing the scope leaves already-synced Notion pages untouched.0 means manual only; otherwise the vault syncs automatically at that interval.npm install
npm run dev # watch build
npm test # vitest unit tests
npm run build # type-check + production bundle (main.js)
Copy main.js and manifest.json into <vault>/.obsidian/plugins/akbun-notion-sync/ to install a local build.