{“content”:”---\nname: obsidian-skills-migration\ndescription: 从 Termux Hermes (/.hermes/skills/) 迁移 skills 到 Sozo 的 Obsidian Wiki via Local REST API\n---\n\n# Obsidian Skills Migration\n\n## 背景\n2026-05-05 完成首次大迁移:从 Termux Hermes (/.hermes/skills/) 迁移 28 个核心 skills 到 Sozo 的 Obsidian Wiki(Google Drive 本地挂载)。\n\n## Obsidian Vault 位置\n- 路径:/data/data/com.termux/files/home/storage/shared/Obsidian Vault/\n- 即 Sozo PC 上的 H:\\My Drive\\Jakephone\\Obsidian Vault\n- Google Drive 本地挂载(Termux 内访问)\n\n## 迁移方法\n使用 Obsidian Local REST API(必须先在 Obsidian 里启用 Community Plugin “Local REST API”):\n\npython\nimport urllib.request, json\n\nAPI = \"http://localhost:27123\"\n\ndef create_or_update_note(title, content, folder=\"skills/\"):\n path = folder + title\n url = f\"{API}/vault/{path}\"\n data = json.dumps({\"body\": content}).encode()\n req = urllib.request.Request(url, data=data, headers={\"Content-Type\": \"application/json\"}, method='PUT')\n with urllib.request.urlopen(req) as r:\n return json.loads(r.read())\n\ndef append_to_note(title, content, folder=\"\"):\n path = folder + title\n url = f\"{API}/vault/{path}\"\n # GET existing\n req = urllib.request.Request(f\"{API}/vault/{path}\")\n with urllib.request.urlopen(req) as r:\n existing = r.read().decode()\n # PUT merged\n merged = existing + \"\\n\" + content\n data = json.dumps({\"body\": merged}).encode()\n req2 = urllib.request.Request(url, data=data, headers={\"Content-Type\": \"application/json\"}, method='PUT')\n with urllib.request.urlopen(req2) as r:\n return json.loads(r.read())\n\n\n## 已上传的 28 个 Skills(2026-05-05)\nskills/ 目录下所有 .md 文件,共 28 个:\nautonomous-ai-agents, blender-windows-cli, brainstorming, browser,\nchrome-remote-desktop-setup, claude-code, cloudflare-pages-custom-domain,\ncloudflare-pages-setup, cloudflare-worker-debugging, cloudflare-workers,\ncodex, coding-protocol, creative, daily-news-podcast-pipeline,\ndevops, discord-bot-setup, dogfood, email,\nfreecad-windows-cli, gaming, github, godot-2d-rpg,\ngodot-pc-remote-workflow, google-drive-oauth-termux, large-file-upload-to-windows,\nllm-wiki, logging, mcporter, media, mcp, mlops,\nnote-taking, obsidian, open-design-skill, productivity,\nreading, receiving-code-review, red-teaming, remote-file-patch-via-ssh,\nresearch, session-auto-summary, smart-home, software-development,\nsystem-management, terminal-hacks, testing, writing-skills\n\n## Pitfalls\n1. PUT 是覆盖式,不是 append\n2. index.md 追加后内容丢失(原因待查:vault 同步延迟或 API 问题)\n3. 文件夹需手动创建\n\n## 后续工作\n1. [ ] 修复 index.md 导航页面\n2. [ ] 补充完整 skills 页面内容\n3. [ ] 创建 HERMES_SOUL.md\n4. [ ] 上传剩余 30 个 skills\n5. [ ] 建立 skills/ 和 daily/ 的双向链接\n”}