# 시작하기

> 설치부터 새 컴퓨터에서 설정을 받기까지, 처음 한 번 하는 과정입니다.

## 준비물

- macOS 또는 Linux
- [GitHub CLI](https://cli.github.com)와 `gh auth login`으로 된 로그인
- 지금 쓰고 있는 Claude Code 설정(`~/.claude`)

aisync는 서버를 따로 두지 않습니다. 설정은 내 GitHub 계정의 private 리포에 저장되고, GitHub 로그인은 gh가 맡습니다.

## 설치

```sh
wget -qO- https://raw.githubusercontent.com/CreatiCoding/aisync/main/install.sh | sh
```

wget 대신 curl도 됩니다. 설치 스크립트는 운영체제에 맞는 파일을 받아 체크섬을 확인한 뒤 `~/.local/bin/aisync`에 둡니다.

```sh
curl -fsSL https://raw.githubusercontent.com/CreatiCoding/aisync/main/install.sh | sh
```

설치한 위치를 바꾸지 마세요. 받기를 하면 `.claude.json`의 MCP 서버가 이 실행 파일의 절대 경로를 가리킵니다. 옮겼다면 `aisync pull <프로필>`을 다시 하면 경로가 새로 맞춰집니다.

Go 1.24 이상이 있다면 소스에서 설치할 수도 있습니다.

```sh
go install github.com/CreatiCoding/aisync/cmd/aisync@latest
```

> 지금은 비공개 베타라서 위 명령은 소스가 공개된 뒤부터 동작합니다.

## 1. 하드코딩된 토큰부터 확인하기

올리기 전에 지금 설정에 평문 토큰이 어디 있는지 봅니다. 로그인도 필요 없고 아무것도 올리지 않습니다.

```sh
aisync scan
```

```text
Hardcoded secrets in ~/.claude (+ ~/.claude.json):
  BLOCKS    settings.json (OPENAI_API_KEY)        sk-p…(34 chars)
  encrypt   mcp github (Authorization)            ghp_…(40 chars)
  encrypt   mcp slack (SLACK_BOT_TOKEN)           xoxb…(32 chars)
```

| 표시 | 뜻 | 할 일 |
|---|---|---|
| `encrypt` | MCP 서버 설정 안의 토큰 | 없음. 올릴 때 암호화 저장소로 옮겨집니다 |
| `BLOCKS` | settings.json, CLAUDE.md 같은 파일 안의 토큰 | 파일에서 빼야 올릴 수 있습니다 |
| `local` | 올리지 않는 파일 안의 토큰 | 없음. 평문 사본이 이 컴퓨터에 있다는 안내입니다 |

`BLOCKS`가 있으면 그 값을 파일에서 지우거나 다른 곳으로 옮긴 뒤 다시 확인합니다. 자세한 내용은 [시크릿](/docs/secrets/)을 보세요.

## 2. 로그인하고 올리기

```sh
aisync login
aisync capture default
```

`login`은 gh 로그인을 그대로 쓰고, `<내 계정>/aisync-config` 리포가 없으면 private으로 만듭니다. 다른 이름을 쓰려면 `--repo owner/name`을 붙입니다.

`capture`는 같은 검사를 한 번 더 보여 주고, 처음이라면 패스프레이즈를 정하라고 합니다. 이 패스프레이즈로 토큰을 암호화하고, 새 컴퓨터에서 한 번 입력합니다. 잊어버리면 저장된 토큰을 되살릴 수 없으니 비밀번호 관리자에 적어 두세요.

```text
Captured default from ~/.claude: 4 files, 3 MCP servers → you/aisync-config 62cefe5
Secrets moved to the encrypted store: github-authorization, slack-bot
```

올리고 나면 이 컴퓨터의 `~/.claude.json`에 있던 평문 토큰도 참조로 바뀝니다.

## 3. 새 컴퓨터에서 받기

새 컴퓨터에서도 aisync를 설치하고 gh에 로그인한 뒤 실행합니다.

```sh
aisync login
aisync pull default
```

처음 받을 때 패스프레이즈를 한 번 묻습니다. 이후로는 키체인에 기억해 두어 다시 묻지 않습니다. 원래 있던 파일은 바꾸기 전에 `~/.claude/.aisync/backup/`에 백업합니다.

```text
default → ~/.claude
  add      file   CLAUDE.md
  replace  file   settings.json  (existing file, will be backed up)
  add      server slack
Backed up replaced files to ~/.claude/.aisync/backup/20261011-105256
Applied default at 62cefe5.
```

실행 중인 Claude Code 세션이 있다면 다시 시작해야 새 MCP 서버를 읽습니다.

## 4. 평소에는

한쪽에서 고친 것은 `push`로 올리고, 다른 쪽에서 `pull`로 받습니다. 받기 전에 `diff`로 무엇이 바뀌는지 볼 수 있습니다.

```sh
aisync push default -m "규칙 추가"
aisync diff default
aisync pull default
```

양쪽에서 같은 파일을 고쳤을 때 어떻게 되는지는 [동기화와 충돌](/docs/sync/)에 있습니다.
