Migrate to Fundamento

Import your notes and documents

Bring your existing knowledge base to Fundamento in one command. Works with Obsidian vaults — resolving wiki links, frontmatter, and heading fragments — or any directory of markdown and office files.

Choose your import path

Same command, two flavours

The importer auto-detects Obsidian vaults. For other sources, any directory works out of the box.

Auto-detected

Obsidian vault

Full-fidelity import. Fundamento recognises the .obsidian/ directory and enables Obsidian-specific processing automatically.

  • Folder hierarchy
  • Documents & attachments
  • Wiki links resolved
  • YAML frontmatter parsed
  • Heading fragment links
See full details
Any directory

Generic folder

Logseq, Bear, Notion exports, or any folder of markdown and office files. Structure and attachments are preserved as-is.

  • Folder hierarchy
  • Documents & attachments
  • Wiki links resolved
  • YAML frontmatter parsed
  • Heading fragment links
See full details

Obsidian import

Everything migrates automatically

Point the CLI at your vault directory and Fundamento handles the rest — from structure to links to attachments.

Documents

All .md files become Fundamento documents, preserving your content and formatting exactly as written.

Folder structure

Your vault hierarchy is recreated as nested documents in Fundamento, keeping everything organized just as you had it.

Images & attachments

Images, PDFs, and videos are uploaded and linked directly to their parent documents — nothing is left behind.

Wiki links

[[page]], [[page|alias]], and [[folder/page]] links are all resolved to the correct document after import.

Frontmatter

YAML frontmatter is parsed automatically — document titles and tags are extracted and applied to each imported document.

Heading links

[[page#Heading]] fragment links are resolved to the correct section within the target document.

Link resolution

Every Obsidian link format supported

Fundamento understands Obsidian's wiki link syntax in all its forms. After your vault is uploaded, a link resolution pass walks every document and converts each reference into a live Fundamento link.

Links to files that weren't imported (or that don't exist in the vault) are kept as text so you never lose content.

SyntaxWhat happens
[[Note Name]]Resolved to document by name (case-insensitive)
[[Note Name|Alias]]Resolved with custom display text
[[Folder/Note]]Resolved by full vault path
[[Note#Heading]]Links to a specific heading within the document
![[image.png]]Embedded as inline attachment
![[Note]]Converted to a document mention
![alt](./path/image.png)Standard markdown image, resolved to attachment
[[Note#^blockid]]Resolved as a document link — block anchor is dropped
https://external.comExternal URLs left unchanged

File formats

Documents and attachments, all covered

Markdown is the primary format, but the importer also converts Word and OpenDocument files. All common image, video, and PDF types are imported as document attachments. These formats apply to both Obsidian and generic imports.

Document formats

Converted to Fundamento rich-text documents

  • Markdown .md
  • Word .docx, .doc
  • OpenDocument .odt

Attachment formats

Stored and linked to their parent documents

  • Images PNG, JPG, GIF, WebP, SVG
  • Video MP4, MOV, AVI
  • PDF PDF

Generic import

Any folder of documents

Don't use Obsidian? No problem. The same CLI command works with any directory — Logseq exports, Bear backups, Notion markdown exports, or a plain folder of notes.

Folder hierarchy, documents, and attachments are all preserved. Wiki-style link syntax and frontmatter are Obsidian-specific features and won't be processed in generic mode.

What generic import preserves

  • Folder hierarchy

    Subfolders become nested documents

  • Markdown documents

    .md, .docx, .doc, .odt

  • Attachments

    Images, video, PDF linked to parent docs

  • Wiki links

    Obsidian-only — not resolved

  • YAML frontmatter

    Obsidian-only — not parsed

  • Heading fragment links

    Obsidian-only — not resolved

Command-line import

Import using the CLI

The Fundamento CLI handles everything — uploading files, resolving links, and tracking progress. Resumable if interrupted.

1. Install the CLI

# Point npm to the GitHub Packages registry for @ikigai-systems
npm config set @ikigai-systems:registry https://npm.pkg.github.com

npm install -g @ikigai-systems/fundamento-cli

2. Set your API key

export FUNDAMENTO_API_KEY=your_api_key

Find your API key in Workspace Settings → API tokens.

3. Start the import

Obsidian vault — auto-detected

funcli import start <space-id> ./my-vault

# Useful options:
funcli import start <space-id> ./my-vault --concurrency 10
funcli import start <space-id> ./my-vault --ignore "**/.trash/**"

Obsidian vaults are detected automatically via the .obsidian/ directory.

Any other directory

funcli import start <space-id> ./my-notes

No extra flags needed. Folder structure and attachments are preserved; Obsidian-specific processing is skipped.

4. Monitor progress

funcli import status ./my-vault   # overall progress
funcli import log ./my-vault      # per-file status
funcli import retry ./my-vault    # retry failed files

Find your Space ID in the URL when viewing the space in Fundamento.

Ready to migrate?

Create a free workspace and bring your notes over in minutes.