Agent Skills: Apple Notes Migration Deep Dive

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/apple-notes-migration-deep-dive

Install this agent skill to your local

pnpm dlx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/HEAD/plugins/saas-packs/apple-notes-pack/skills/apple-notes-migration-deep-dive

Skill Files

Browse the full folder contents for apple-notes-migration-deep-dive.

Download Skill

Loading file tree…

plugins/saas-packs/apple-notes-pack/skills/apple-notes-migration-deep-dive/SKILL.md

Skill Metadata

Name
apple-notes-migration-deep-dive
Description
|

Apple Notes Migration Deep Dive

Migration Paths

| From | To | Method | |------|----|--------| | Apple Notes | Obsidian | Export HTML → convert to Markdown → copy to vault | | Apple Notes | Notion | Export JSON → Notion API import | | Obsidian | Apple Notes | Read .md → convert to HTML → JXA create | | Evernote | Apple Notes | File > Import from Evernote (built-in) |

Apple Notes → Obsidian Migration

#!/bin/bash
# Export all Apple Notes to Obsidian vault
VAULT_DIR="$HOME/obsidian-vault/Apple Notes Import"
mkdir -p "$VAULT_DIR"

osascript -l JavaScript -e "
  const Notes = Application(\"Notes\");
  Notes.defaultAccount.notes().map(n => JSON.stringify({
    title: n.name(),
    body: n.body(),
    folder: n.container().name(),
    created: n.creationDate().toISOString(),
  })).join(\"\\n---SEP---\\n\");
" | while IFS= read -r line; do
  [ "$line" = "---SEP---" ] && continue
  title=$(echo "$line" | jq -r ".title" 2>/dev/null || continue)
  body=$(echo "$line" | jq -r ".body" 2>/dev/null)
  folder=$(echo "$line" | jq -r ".folder" 2>/dev/null)
  created=$(echo "$line" | jq -r ".created" 2>/dev/null)

  # Convert HTML to Markdown (basic)
  md=$(echo "$body" | sed "s/<h1>/# /g; s/<\/h1>//g; s/<h2>/## /g; s/<\/h2>//g; s/<br>/\\n/g; s/<[^>]*>//g")

  safe_title=$(echo "$title" | tr "/:*?\"<>|" "-" | head -c 100)
  mkdir -p "$VAULT_DIR/$folder"
  echo -e "---\ncreated: $created\nsource: apple-notes\n---\n\n# $title\n\n$md" > "$VAULT_DIR/$folder/$safe_title.md"
done
echo "Migration complete: $VAULT_DIR"

Obsidian → Apple Notes Import

#!/bin/bash
for md_file in "$VAULT_DIR"/*.md; do
  title=$(head -1 "$md_file" | sed "s/^#\s*//")
  body=$(cat "$md_file" | sed "s/^# /<h1>/;s/$/<\/h1>/" | sed "s/\n/<br>/g")
  osascript -l JavaScript -e "
    const Notes = Application(\"Notes\");
    const note = Notes.Note({name: \"$title\", body: \"$body\"});
    Notes.defaultAccount.folders[0].notes.push(note);
  "
  sleep 1
done

Resources