---
title: "Export"
description: "Download a space or a folder as a single ZIP archive of Markdown files — structure and identity preserved, nothing lost."
---

# Export

Export downloads an entire space, or a single folder, as one ZIP archive of Markdown files. Because your files are the source of truth (the file-first principle), export reads them straight off disk instead of rebuilding them from an index: the archive carries the **actual files**, including the `notarium-id` in each file's frontmatter.

That is exactly why export is **reversible** — you can bring it back with [import](/docs/import-export/import/), or move it to another instance without losing structure, identity, or dates. Export isn't really "hauling data out"; it's a convenient way to package what already lives on disk as your files.

## How to export

Export lives on the **Export** tab in a space's settings:

- The button queues a job, and from there you get a progress bar with percentages (once the note count is known) plus a **Cancel** button.
- When it's ready, the archive downloads automatically; the **Download .zip** (download again) and **Export again** (re-run the export) buttons stay put alongside it.
- Leaving the tab and coming back is safe: on your return you'll see the running job again, or a file ready to download.

You can export a **single folder** from the tree's context menu — the **Export folder** item. It's the same job scoped to a subtree; progress shows up in a "sticky" toast with a cancel button.

## Options

Both export paths accept the same set of parameters:

| Parameter | Values | What it does |
|---|---|---|
| `scope` | `user` (default) · `all` | `user` — your notes only; `all` — everything the space holds, including the agent's memory mount (`.notarium/memory`). |
| `frontmatter` | `keep` (default) · `strip` | `keep` writes the file as-is; `strip` cuts the YAML block — a clean copy for reading. |
| `folder` | path | Scope the export to a subtree (what **Export folder** does). |

> [!warning] `frontmatter=strip` breaks re-import
> Stripping frontmatter yields a lossy copy: along with the YAML block you lose the `notarium-id` and tags. Such an archive is convenient for handing notes off for reading, but you can no longer import it back without loss. For moving data, stick with `keep` (the default).

> [!important] Export is not an instance backup
> Even with `scope=all`, an export archive carries nothing but the space's Markdown files. It contains no metadata database: no accounts, no access rights, no version history, no job state. You cannot restore an instance from it. Backups are a separate operation, run with a built-in command of the image — see [Backup and restore](/docs/self-hosting/backup/).

## How it works under the hood

Export is built to stream, so that an arbitrarily large knowledge base is never held in memory:

- **Asynchronous job by default.** When the host has a metadata database (the norm for self-host), export is a durable job: a background worker assembles the ZIP into artifact storage and serves the finished file with resumable-download support. A closed tab, a dropped connection, or a server restart won't derail the export.
- **The download isn't buffered.** The browser streams the finished archive straight to disk, taking the name from the response header — a large knowledge base isn't held in the tab's memory.
- **Canceling stops the work.** A canceled download stops pulling notes — the server won't sit reading the whole knowledge base for nothing.

```mermaid
flowchart LR
  notes[(Markdown notes)] -->|read from disk| worker[Background worker]
  worker -->|ZIP| artifact[Job artifact]
  artifact -->|download| user([Browser])
```

> [!note] Export without a metadata database
> On a host with no metadata database (it's absent only in `AUTH_MODE=none` mode) there's no job layer: export takes the synchronous streaming path — the same ZIP is served as a direct download within a single request, with no progress and no resumable download. Only the delivery method changes; the result is the same.

## Boundaries

- **One space at a time.** Spaces are isolated stores with their own access control; to export several, export each one separately.
- **The artifact has a TTL.** The finished ZIP is kept for a limited time (7 days by default) and removed by the garbage collector; you can re-download it until it expires.
- **Binary attachments aren't exported.** The archive carries note text — Markdown files.
- **Cancel, but not pause.** A job can be canceled; there's no pausing and resuming.

## Next

- [Import](/docs/import-export/import/) — bring an archive back, or move a knowledge base to another instance.
- [Section overview](/docs/import-export/) — why file-first makes import and export cheap.
