동작 방식
리포에 무엇이 저장되고, 받을 때 이 컴퓨터에 무엇이 쓰이는지 설명합니다.
프로필
프로필은 Claude Code 설정 한 벌입니다. 리포 안에서는 이렇게 생겼습니다.
aisync-config/
aisync.json
secrets.json 암호화된 토큰
profiles/
default/
profile.json 설정 폴더, 물려받을 프로필, 환경변수
mcp.json MCP 서버 정의 (토큰은 참조)
files/ ~/.claude에 놓일 파일
settings.json
CLAUDE.md
skills/…
프로필마다 설정 폴더가 하나씩 있습니다. default는 ~/.claude, 다른 이름은 ~/.claude-<이름>을 씁니다. Claude Code의 CLAUDE_CONFIG_DIR와 같은 단위라서, 프로필 하나가 Claude Code 계정 하나와 맞물립니다.
옮기는 것과 남기는 것
| 옮기는 것 | 남기는 것 |
|---|---|
settings.json, CLAUDE.md, keybindings.json |
Claude 로그인 정보 |
skills/, agents/, commands/, output-styles/, workflows/ |
projects/, history.jsonl, 세션, 캐시 |
사용자 MCP 서버(.claude.json의 mcpServers) |
.claude.json의 나머지 항목 |
skills/synced/, skills/.trash/ (Claude가 직접 관리) |
|
플러그인 바이너리 (settings.json의 enabledPlugins는 옮김) |
받을 때는 이 목록에 있는 파일과 MCP 서버만 건드립니다. 직접 추가한 MCP 서버나 다른 파일은 그대로 둡니다.
경로 바꾸기
hooks나 MCP 서버 명령에는 /Users/alice/... 같은 절대 경로가 들어가곤 합니다. aisync는 올릴 때 홈 경로를 {{home}}으로 바꾸고, 받을 때 그 컴퓨터의 홈 경로로 되돌립니다. 그래서 사용자 이름이 다른 컴퓨터에서도 경로가 맞습니다.
받을 때 일어나는 일
- 리포의 최신 상태를 내려받습니다.
- 무엇을 추가하고 바꾸고 지울지 계획을 보여 줍니다.
--dry-run이면 여기서 끝납니다. - 프로필이 쓰는 토큰을 이 컴퓨터에서 풀 수 있는지 확인합니다. 키가 없으면 이때 패스프레이즈를 묻습니다. 풀 수 없으면 아무것도 쓰지 않고 멈춥니다.
- 바꾸거나 지울 파일은
<설정 폴더>/.aisync/backup/<시각>/에 먼저 복사합니다. - 파일을 쓰고,
.claude.json의mcpServers중 이 프로필의 서버만 바꿉니다. 다른 항목은 그대로 둡니다. - 무엇을 놓았는지
<설정 폴더>/.aisync/manifest.json에 기록합니다.
이 기록 덕분에 다음 받기 때 "지난번 이후 내가 고친 파일"과 "리포에서 바뀐 파일"을 구별할 수 있습니다.
올릴 때 일어나는 일
- 지난번에 받은 파일과 서버를 다시 읽습니다. 새 파일은
--add, 새 서버는--add-server로 추가합니다. - 바뀐 내용에서 홈 경로를
{{home}}으로 되돌리고 토큰이 섞이지 않았는지 검사합니다. - 바뀐 파일을 한 커밋으로 만들어 GitHub API로 올립니다. git은 필요 없습니다.
실행 중인 Claude Code와 함께
Claude Code는 .claude.json을 쓰기 직전에 디스크에서 다시 읽기 때문에, 실행 중인 세션이 aisync가 바꾼 내용을 지우지 않습니다. 다만 MCP 서버는 세션을 시작할 때만 읽으니, 받은 뒤에는 세션을 다시 시작하세요.
이 문서는 aisync 0.1 기준입니다.