Migrate Skill
SkillFiles & storageMoves notes and files into your workspace from Obsidian, Notion, Logseq, Roam, markdown, CSV, or JSON.
Use Migrate Skill in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Migrate Skill and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Migrate Skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
Universal migration from Obsidian, Notion, Logseq, markdown, CSV, JSON, Roam
What this skill tells your AI
The instructions your AI receives, as published by inbrainfun/inbrain in skills/migrate/SKILL.md and read by Ahel’s review.
Universal migration from any wiki, note tool, or brain system into Inbrain.
Contract
- Source data is never modified or deleted; migration is additive only.
- Every migrated page is verified round-trip: written to inbrain, read back, spot-checked.
- Cross-references from the source system (wikilinks, block refs, tags) are converted to inbrain equivalents.
- Migration is tested on a sample (5-10 files) before bulk execution.
- Post-migration health check confirms page count, link integrity, and embedding coverage.
Supported Sources
| Source | Format | Strategy |
|---|---|---|
| Obsidian | Markdown + [[wikilinks]] | Direct import, convert wikilinks to inbrain links |
| Notion | Exported markdown or CSV | Parse Notion's export structure |
| Logseq | Markdown with ((block refs)) | Convert block refs to page links |
| Plain markdown | Any .md directory | Import directory into inbrain directly |
| CSV | Tabular data | Map columns to frontmatter fields |
| JSON | Structured data | Map keys to page fields |
| Roam | JSON export | Convert block structure to pages |
Phases
- Assess the source. What format? How many files? What structure?
- Plan the mapping. How do source fields map to inbrain fields (type, title, tags, compiled_truth, timeline)?
- Test with a sample. Import 5-10 files, verify by reading them back from inbrain and exporting.
- Bulk import. Import the full directory into inbrain.
- Verify. Check inbrain health and statistics, spot-check pages.
- Build links. Extract cross-references from content and create typed links in inbrain.
Obsidian Migration
-
Import the vault directory into inbrain (Obsidian vaults are markdown directories)
-
Wire the graph with native wikilink support (v0.12.1+):
inbrain extract links --source db --dry-run | head -20 # preview inbrain extract links --source db # commitextract linksnatively parses[[relative/path]]and[[relative/path|Display Text]]alongside standard[text](page.md)markdown syntax. Ancestor-search resolution handles wiki KBs where authors omit one or more leading../prefixes. The.mdsuffix is inferred automatically for wikilinks.
Obsidian-specific:
- Tags (
#tag) become inbrain tags - Frontmatter properties map to inbrain frontmatter
- Attachments (images, PDFs) are noted but handled separately via file storage
Notion Migration
- Export from Notion: Settings > Export > Markdown & CSV
- Notion exports nested directories with UUIDs in filenames
- Strip UUIDs from filenames for clean slugs
- Map Notion's database properties to frontmatter
- Import the cleaned directory into inbrain
CSV Migration
For tabular data (e.g., CRM exports, contact lists):
- For each row in the CSV, create a page with column values as frontmatter
- Use a designated column as the slug (e.g., name)
- Use another column as compiled_truth (e.g., notes)
- Store each page in inbrain
Verification
After any migration:
- Check inbrain statistics to verify page count matches source
- Check inbrain health for orphans and missing embeddings
- Export pages from inbrain for round-trip verification
- Spot-check 5-10 pages by reading them from inbrain
- Test search: search inbrain for "someone you know is in the data"
Anti-Patterns
- Bulk import without sample test. Never import the full dataset before verifying with 5-10 files. The cost of cleaning up hundreds of bad pages is enormous.
- Destroying source data. Migration is additive. Never modify, move, or delete the source files.
- Ignoring cross-references. Wikilinks, block refs, and tags from the source system must be converted to inbrain equivalents. Dropping them loses the knowledge graph.
- Skipping verification. A migration without post-import health check, page count comparison, and spot-check reads is incomplete.
Output Format
MIGRATION REPORT -- [source] -> Inbrain
=======================================
Source: [format] ([file count] files, [size])
Mapping: [field mapping summary]
Sample Test (N files):
- Imported: N/N
- Round-trip verified: N/N
- Cross-refs converted: N
Bulk Import:
- Total imported: N
- Skipped (duplicates/errors): N
- Links created: N
- Tags migrated: N
Verification:
- Page count match: [yes/no]
- Health check: [pass/fail]
- Search test: [query] -> [result count] hits
Tools Used
- Store/update pages in inbrain (put_page)
- Read pages from inbrain (get_page)
- Link entities in inbrain (add_link)
- Tag pages in inbrain (add_tag)
- Get inbrain statistics (get_stats)
- Check inbrain health (get_health)
- Search inbrain (query)
Signals
- GitHub stars
- 143
- Forks
- 126
- Last commit
- Jul 2026
Advanced
- Item type
- skill
- Key
migrate-inbrainfun- Source
- github.com/inbrainfun/inbrain