Migration
If you have ideas scattered across Notion databases, Obsidian vaults, or other tools, NeuralRepo makes it straightforward to bring them all into one place.
From Notion
Section titled “From Notion”-
Export from Notion. Open your Notion database, click the
...menu, and select Export. Choose CSV or Markdown & CSV format. Unzip the downloaded file. -
Map fields. Notion properties map to NeuralRepo fields as follows:
Notion Property NeuralRepo Field Notes Name / Title titleRequired Notes / Content bodySupports markdown Tags (multi-select) tagsArray of strings Status (select) statusMap to: captured,exploring,building,shipped,shelvedURL source_urlOptional -
Import via API. Use a script to read the CSV and push each row:
#!/bin/bashAPI_KEY="nrp_your_key_here"API_URL="https://neuralrepo.com/api/v1/ideas"# Skip header line, read CSVtail -n +2 exported.csv | while IFS=',' read -r title body tags status; do# Convert comma-separated tags to JSON arraytags_json=$(echo "$tags" | sed 's/;/","/g' | sed 's/^/["/' | sed 's/$/"]/')curl -s -X POST "$API_URL" \-H "X-API-Key: $API_KEY" \-H "Content-Type: application/json" \-d "{\"title\": \"$title\",\"body\": \"$body\",\"tags\": $tags_json,\"status\": \"captured\"}"echo " -> Imported: $title"done
From Obsidian
Section titled “From Obsidian”Obsidian vaults are folders of markdown files, which makes migration straightforward.
-
Identify your ideas folder. If your vault has a specific folder for ideas (e.g.,
Ideas/orInbox/), use that. Otherwise, you can import the entire vault. -
Push each file via CLI.
Terminal window for file in ~/obsidian-vault/Ideas/*.md; dotitle=$(head -1 "$file" | sed 's/^# //')body=$(cat "$file")nrepo push "$title" --body "$body" --tag obsidian --tag importeddone -
Handle frontmatter. If your Obsidian notes use YAML frontmatter with tags, you can extract them:
Terminal window for file in ~/obsidian-vault/Ideas/*.md; dotitle=$(head -1 "$file" | sed 's/^# //')body=$(cat "$file")# Extract tags from frontmatter (assumes format: tags: [tag1, tag2])tags=$(grep '^tags:' "$file" | sed 's/tags: \[//' | sed 's/\]//' | tr -d ' ')if [ -n "$tags" ]; thenIFS=',' read -ra tag_array <<< "$tags"tag_flags=""for t in "${tag_array[@]}"; do tag_flags="$tag_flags --tag $t"; donenrepo push "$title" --body "$body" $tag_flagselsenrepo push "$title" --body "$body" --tag obsidianfidone
From Plain Text or JSON
Section titled “From Plain Text or JSON”If you have ideas in a JSON file, you can import them directly:
[ { "title": "Build a habit tracker", "body": "Mobile app with streak counting and push notifications", "tags": ["mobile", "react-native"] }, { "title": "API rate limiter library", "body": "Token bucket implementation for Express middleware", "tags": ["api", "node"] }]#!/bin/bashAPI_KEY="nrp_your_key_here"
# Use jq to iterate over the arrayjq -c '.[]' ideas.json | while read -r idea; do curl -s -X POST "https://neuralrepo.com/api/v1/ideas" \ -H "X-API-Key: $API_KEY" \ -H "Content-Type: application/json" \ -d "$idea"
echo " -> Imported: $(echo "$idea" | jq -r '.title')" sleep 0.3doneUsing the CLI for Bulk Import
Section titled “Using the CLI for Bulk Import”The nrepo CLI supports pushing from files directly:
# Single idea from a filenrepo push "My idea" --body "$(cat ./idea.md)" --tag imported
# Batch import with a loopfor file in ./ideas/*.md; do filename=$(basename "$file" .md) nrepo push "$filename" --body "$(cat "$file")" --tag importeddonePost-Migration Checklist
Section titled “Post-Migration Checklist”After importing, take these steps to organize your new repository:
- Review tags. Consolidate similar tags (e.g.,
jsandjavascript) using the web dashboard. - Set statuses. Imported ideas default to
captured. Move active ones toexploringorbuilding. - Create relations. Link related ideas together. The mind map in the web app helps visualize clusters.
- Check for duplicates. NeuralRepo’s duplicate detection runs automatically on import. Review flagged duplicates in the web dashboard.
- Delete junk. Remove ideas that are no longer relevant to keep your repository focused.