Skip to content

vault_sync

🚧 설계 단계 — 아직 구현 안 됨

이 페이지는 ainote 의 향후 기능을 미리 문서화한 것입니다. 현재 @ainote/mcp v1.1.x 에는 vault / sync 도구가 포함돼 있지 않습니다. 도구 호출 시 Tool not found 에러를 받게 됩니다.

vault 양방향 동기화 — pull 후 push.

시그니처

json
{
  "name": "personal",
  "auto_commit": true,
  "commit_message": "sync from macbook"
}
파라미터타입기본설명
namestringvault 이름
auto_commitbooleantrue미커밋 변경 자동 commit
commit_messagestring"sync from <hostname>"커밋 메시지
strategymerge / rebase / theirs / oursmerge충돌 시

동작

1. cd ~/notes/personal
2. (auto_commit) git add -A && git commit -m "..."
3. git pull --strategy=<strategy>
4. git push
5. 변경 파일 목록 응답

응답

json
{
  "vault": "personal",
  "pulled": 3,         // 받은 commit 수
  "pushed": 1,         // 보낸 commit 수
  "files_changed": [
    { "path": "daily/2026-05-07.md", "action": "added" },
    { "path": "projects/ainote.md", "action": "modified" },
    { "path": "old.md", "action": "deleted" }
  ],
  "conflicts": []
}

Claude 사용

ainote 에서 personal vault 동기화

또는 모든 vault:

ainote vault 다 sync 해줘

→ Claude 가 vault_list → 각각 vault_sync 순차 호출.

충돌 시

conflicts 배열에 파일 목록:

json
{
  "conflicts": [
    {
      "path": "ideas.md",
      "marker_lines": [12, 24]
    }
  ]
}

수동 해결:

bash
cd ~/notes/personal
# editor 로 ideas.md 열어서 <<<<<<< 마커 해결
git add ideas.md
git commit
ainote vault_sync personal   # 다시

또는 자동 해결 전략:

  • theirs — 원격 우선 (로컬 변경 무시)
  • ours — 로컬 우선 (원격 받은 거 무시)
  • rebase — 로컬 commit 을 원격 위에 올려놓기

정기 자동 sync

cron + script:

bash
# crontab -e
*/15 * * * * /Users/seunghan/scripts/ainote-vault-sync-all.sh
bash
#!/bin/bash
# ainote-vault-sync-all.sh
ainote vault_list '{}' | jq -r '.[].name' | while read name; do
  ainote vault_sync "{\"name\":\"$name\"}"
done

launchd (macOS, 더 안정적)

~/Library/LaunchAgents/com.ainote.vault-sync.plist:

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.ainote.vault-sync</string>
  <key>ProgramArguments</key>
  <array>
    <string>/Users/seunghan/scripts/ainote-vault-sync-all.sh</string>
  </array>
  <key>StartInterval</key>
  <integer>900</integer>
</dict>
</plist>
bash
launchctl load ~/Library/LaunchAgents/com.ainote.vault-sync.plist

에러

코드메시지해결
-32603merge conflict수동 해결 또는 strategy 변경
-32603local repo missingvault_clone 먼저
-32603network error재시도 (Render cold start)

다음

MIT License · ainote.dev