Skip to content

맥미니 ↔ 맥북 메모리 동기화

실전 시나리오: 두 Mac 에서 같은 메모리/CLAUDE.md 사용.

시나리오

  • 사무실: 맥미니 (24/7 켜져있음)
  • 카페/이동: 맥북에어 (간헐적 사용)
  • 양쪽에서 17개 프로젝트 작업, CLAUDE.md / 메모리 / .cursorrules 모두 동기화 필요

1회 셋업 (맥미니 — 메인)

A. CLI / 환경

bash
# ~/.zshrc
export AINOTE_API_URL="https://api.ainote.dev/api/mcp"
export AINOTE_API_KEY="<MACMINI_KEY>"

ainote() {
  # ... shell 함수
}
source ~/.zshrc

B. 모든 CLAUDE.md 일괄 등록

bash
ainote-push() { ... }   # 정의

# 전역
ainote-push ~/CLAUDE.md global-claude-guidelines.md claude

# 17개 프로젝트
for proj in ~/launchcrew ~/tennis_bracket ~/keeps ~/triphelper \
            ~/realpick ~/talkk ~/krx_listing ~/krx_ai ...; do
  if [ -f "$proj/CLAUDE.md" ]; then
    name=$(basename "$proj" | tr '_' '-')
    ainote-push "$proj/CLAUDE.md" "${name}-claude.md" claude
  fi
done

# .cursorrules 들
for proj in ~/launchcrew ~/krx_ai; do
  [ -f "$proj/.cursorrules" ] || continue
  name=$(basename "$proj" | tr '_' '-')
  ainote-push "$proj/.cursorrules" "${name}-cursorrules.md" cursor
done

C. 메모리 등록

bash
for md in ~/.claude/projects/*/memory/*.md; do
  proj=$(basename $(dirname $(dirname "$md")) | sed 's/-Users-seunghan-//' | sed 's/-Users-seunghan/global/')
  fname=$(basename "$md" .md)
  title="${proj}-${fname}.md"
  ainote-push "$md" "$title" memory
done

D. 정기 cron (맥미니)

bash
# crontab -e
*/15 * * * * /Users/seunghan/scripts/ainote-sync-all.sh >> /tmp/ainote.log 2>&1

2회 셋업 (맥북 — 새 기기)

A. 같은 CLI 셋업

bash
# ~/.zshrc 동일하게
# 단 AINOTE_API_KEY 는 새로 발급 (맥북용)

키 발급:

bash
ainote login_and_get_key '{
  "email":"me@example.com",
  "password":"...",
  "name":"Seunghan"
}'

B. 일괄 pull

bash
# 모든 dev_doc 받기
ainote pull_dev_docs '{}'

응답:

✓ /Users/seunghan/CLAUDE.md (created)
✓ /Users/seunghan/launchcrew/CLAUDE.md (created)
✓ /Users/seunghan/launchcrew/.cursorrules (created)
✓ /Users/seunghan/.claude/projects/-Users-seunghan-launchcrew/memory/MEMORY.md (created)
... (53 files)

✅ 53 dev_docs pulled, 0 errors

C. 같은 cron 설정

일상 사용

맥미니에서 CLAUDE.md 수정

bash
$EDITOR ~/launchcrew/CLAUDE.md
ainote-push ~/launchcrew/CLAUDE.md launchcrew-claude.md claude

15분 뒤 맥북에서 자동 받음

cron 이 pull_dev_docs '{"since":"<last_sync>"}' 실행 → 변경된 파일만 갱신.

또는 Claude 에서 명시적

맥북 Claude:

ainote 에서 변경된 CLAUDE.md 다 받아줘

충돌 시나리오

A. 맥미니 14:00 / 맥북 14:01 동시 수정

같은 파일 → 5분 임계 안 → conflict 디렉토리:

~/.claude/ainote-sync/conflicts/
└── 2026-05-07T14-01-00__claude-md__launchcrew-claude.md.diff

다음 sync 막힘. 사용자가 수동:

bash
cat ~/.claude/ainote-sync/conflicts/...diff
$EDITOR /tmp/merged.md   # 양쪽 합침
ainote sync_resolve launchcrew-claude.md --merge /tmp/merged.md

B. 맥미니 14:00 / 맥북 16:00

5분 이상 → LWW → 맥북 (HLC 더 큼) 이김. 맥미니 변경은 git history 에:

bash
cd ~/.ainote-vault/projects/launchcrew
git log -p CLAUDE.md

추가 디바이스 (iPad)

iPad 는 stdio/SSE 어려움 → ChatGPT/Claude iOS 앱 + ainote 의 mobile app 사용.

ainote iOS 앱은 자체 sync 처리 — manifest 기반 시스템과 별개 (REST API).

비용

  • 맥미니: 24/7 cron → 96 호출/일 (sync_list)
  • 맥북: 15분마다 → 96 호출/일
  • 합 192/20000 (free tier 의 1%)

여유 충분.

다음

MIT License · ainote.dev