Import brings an existing folder of notes in as a new knowledge graph. The source folder is only ever read; your original graph or vault stays exactly as it was.

An import always creates a new graph. It cannot add documents to an existing graph, and it does not convert the source folder in place. Moving a local graph into synced storage therefore leaves the local graph untouched and creates a separate synced graph.

Supported sources

Source Detected by Notes
Logseq A logseq/ directory in the folder Namespaces, task markers and journal names are converted
Obsidian A .obsidian/ directory Folder clashes, piped links and the Tasks plugin's emoji are converted
EtherPK The journals/, pages/, assets/ layout A local graph's folder or a Local Mirror; the way to rebuild a synced graph from its copy, or move one to another account
Plain markdown Anything else A folder of .md files

Import a folder

  1. On the Graphs page, select Import.
  2. Choose the source folder. The picker reads the folder once and writes nothing to it.
  3. Check the detected format (you can override it), give the graph a name, and choose where it lives:
    • Local folder: plain markdown files in a new, empty folder you choose. Needs a Chromium-based desktop browser. If the folder you pick is not empty the import refuses; it never adopts or overwrites an existing folder.
    • Synced graph: end-to-end encrypted on your Sync Server, available on every device. There is no destination folder, because EtherPK creates a new graph on the server.
  4. Select Import. The window closes and the import carries on in the corner as an activity.

Only one import runs in a browser tab at a time. You can close the window, open another graph and keep working while it reports progress.

Before importing into a synced graph

Synced graph is offered only after this device is connected to a Sync Server and the server has confirmed your account. Connect through Graphs > Sync settings first (Synced Graphs).

If your account already has encryption keys and they are locked on this device, the import asks you to unlock them before it starts: approve from a device that is unlocked, or enter your Recovery Code. Nothing is created on the server until the keys are in hand, and cancelling the prompt cancels the import.

If this is your account's first synced graph, EtherPK creates your encryption keys first and shows you the Recovery Code. Save it and confirm, and the import begins; nothing is uploaded before that. The order is deliberate: the graph's content is encrypted under a key that lives in your key bundle, and until the bundle is stored, anything already uploaded could not be opened again. See Recovery Code And Device Approval.

While it runs and when it ends

For a synced destination, EtherPK converts the source, encrypts and uploads its assets, prepares the documents, then waits for the server to confirm the encrypted changes. The graph joins this device's graph list only when the import has reached its final step.

  • Imported means the server has confirmed every document. Select Open on the activity to enter the graph; EtherPK does not move you there on its own.
  • Still syncing to the server means the encrypted work is safe in this browser's cache but the server has not yet confirmed every document. Open the graph to resume delivery.
  • A failure or a cancellation removes the destination graph rather than leaving a half-imported one in your list: the graph, every document already pushed and every asset chunk already stored are all removed. Killing the browser tab mid-import is different: the partly populated graph can then appear under Synced graphs as Not on this device, where its Owner can delete it.

What is converted

Documents, assets, journals and links all come across.

  • Tasks become markdown checkboxes with task tags: priorities map to #P1, #P2 and #P3, waiting to #W, deadlines to #D-2026-03-20 style dates. Logseq's TODO, DOING and DONE markers and the Obsidian Tasks plugin's emoji are both understood. See Tasks.
  • Journals are named by their ISO date (2026-07-16.md), and links to journal pages such as [[Jul 16th, 2026]] are rewritten to match.
  • Logseq namespaces (physics/quantum) and Obsidian folder clashes become scoped concepts, [[[[physics]] quantum]]. See Scoped Concepts.
  • Piped links ([[Target|label]]) keep the label when it is the target or one of its aliases; otherwise the label stays in the prose with the link beside it.
  • Highlights written the older Logseq way, ^^text^^, become ==text==.
  • Indentation is put on EtherPK's two-space grid: a four-space vault or a tab-indented page lands nested exactly as it was, with the deeper lines of each bullet moved by the same amount.
  • Images are copied as they are. An import never optimises them, so a vault of screenshots arrives at full size.
  • Constructs with no EtherPK equivalent (embeds, block references, queries) degrade to the nearest readable markdown. Nothing is silently deleted.
  • Protected documents in an EtherPK source are carried through unchanged and named in the report. They stay encrypted under the passphrase of the graph they came from, and the new graph cannot open them. See Protected Documents.
  • An EtherPK folder's AGENTS.md and CLAUDE.md are not imported as pages. They belong to the folder they came from; a local destination graph writes its own the first time it opens.

The Import Report

Every conversion that could not be lossless is listed on an Import Report page created inside the new graph, with a link to each affected document. Two kinds of entry sit side by side: conversion losses, which the source expressed and EtherPK cannot, and would be identical on a re-run; and storage refusals, where an asset could not be stored, usually because it is larger than the plan's per-asset allowance, which you may be able to act on.

The report is an ordinary page. Read it, follow up anything that matters, then delete it.