# Import notes

Import an Obsidian vault, a Notion export, Bear or Apple Notes as plain Markdown, after a dry run that shows what changes.

This page shows how to import an Obsidian vault into Loam, what the import converts and copies, and what it leaves behind. The import only reads the Obsidian vault and never changes it. Notion, Bear and Apple Notes have importers too, described under Other apps below.

In the app, the **Import Notes…** command opens an import page. It previews an Obsidian vault, imports it into `Imported/<vault name>`, and writes an `Import report.md` there. The steps below use the command line.

## Preview, then import

1. Run a dry run, which writes nothing: `loam --vault ~/Notes import.obsidian source=~/ObsidianVault dry-run=true`.
2. Read the report. `converted` and `copied` count the files, `skipped` lists files that already exist, and `warnings` lists links and files that need a look.
3. Run the import without `dry-run`: `loam --vault ~/Notes import.obsidian source=~/ObsidianVault`.

Add `into=Imported` to import into one folder of your vault. Add `overwrite=true` only if you want to replace files that already exist.

## What is converted

- Notes (`.md` files): wikilinks and embeds become standard Markdown links. For example, `[[Projects/Roadmap|roadmap]]` becomes `[roadmap](Projects/Roadmap.md)`.
- Callouts become GitHub alerts, such as `> [!NOTE]`.
- `%%comments%%` are removed. Code blocks stay as they are.
- Canvas boards (`.canvas` files) are copied. Their wikilinks in text cards become standard links, and their file paths move into the destination folder.
- Other files, such as images and PDFs, are copied unchanged.
- A link to a note that does not exist becomes plain text, and the report lists it as a warning.

## What is not copied

- The `.obsidian/` folder, which holds the Obsidian settings, themes and plugins.
- The `.trash/` and `.git/` folders, and `.DS_Store` files.
- Files that already exist in the destination. They are listed as skipped.
- The Obsidian daily notes folder and template. The report shows them, but Loam does not apply them.

To match the daily notes folder, set it in the daily-notes plugin: `loam --vault ~/Notes plugins.set-setting id=daily-notes key=folder value=Journal`.

## Other apps

Three more importers copy notes as plain Markdown into `Imported/<app>` of your vault. They only read the source, they never overwrite a file that exists, and they accept `into=<folder>` and `dry-run=true`. Each prints a JSON report with `converted`, `copied`, `collections`, `skipped` and `warnings`.

| Command | Source | What it does |
| --- | --- | --- |
| `import.notion source=<path>` | A Notion export (Markdown & CSV), as a folder or its `.zip`. | Removes the ids from names and links, turns page properties into frontmatter, and turns databases into collections. |
| `import.bear` | Bear, read from its database on this Mac. | Copies the notes with their pictures and files. Archived notes go in `Archive/`. Trashed and locked notes stay behind. |
| `import.apple-notes` | Apple Notes, read through Notes. macOS asks for permission once. | Copies every note, with one folder per Notes folder, and their pictures. |

```bash
loam --vault ~/Notes import.notion source=~/Downloads/Export.zip dry-run=true
```

For any other app that exports plain Markdown files, copy that folder and open it as a vault. Then check the links, because only standard Markdown links feed backlinks and renames.

> **Tip:** For AI agents: run each import with `dry-run=true` first, and read the report it returns before you run it for real.
