All articles

Import a Markdown vault into ScholarThread

Bring notes in from Obsidian or a ScholarThread export: any .md or .zip with [[wikilinks]] imports through one button, idempotently, with links reconstructed. Here's how it behaves.

The ScholarThread team20 July 20262 min read

Export is only half of a portable notes story — you also need to bring notes back. ScholarThread imports any .md or .zip that follows its export format, or plain Obsidian Markdown with [[wikilinks]], through a single button.

The basic flow

  1. In the notes tree, click Import.
  2. Pick a .md (a single note) or a .zip (a whole vault or a folder subtree).
  3. When the upload finishes, a summary appears under the tree: "Imported N notes (X created, Y updated, Z skipped)."
  4. The tree refreshes automatically. New notes land under the folder named in each file's frontmatter, or under Unfiled when the frontmatter is missing.

That's the happy path. What makes import trustworthy is how it behaves on the edges.

How it behaves

It's idempotent. If a file's id: frontmatter matches a note already in your account, that note is updated in place — no duplicates. Importing the same ZIP twice is a no-op, so you can re-run an import without fear of littering your tree with copies.

Wikilinks are reconstructed. After every note in the batch is imported, a ## Related section in each note's body is parsed. Wikilinks that point to other files in the same batch become real :LINKS_TO connections in ScholarThread. Wikilinks pointing outside the batch are dropped silently — the same "unresolved link" behaviour Obsidian itself has.

Foreign vaults are safe. If you import a ZIP that was exported from a different ScholarThread account, the ids are re-minted on the way in. You can't accidentally overwrite someone else's notes by importing their export.

There's a size cap. Uploads are limited to 50 MB. If your vault is larger than that, use Git sync instead — it streams rather than uploading in one shot.

Import vs. Git sync

A one-shot import is right for a migration or a merge: you have a vault (from Obsidian, or from a ScholarThread export) and you want it inside ScholarThread once. For an ongoing, two-way relationship where edits flow both directions continuously — and for vaults over the 50 MB cap — reach for Git sync, described in Connect a private Git repo — and get two-way Obsidian sync.

The design goal behind both is the same: notes move in and out of ScholarThread as ordinary Markdown, on your terms.