가이드
Mac 앱
내 코딩 에이전트와 Docker로 Mac에서 Skynet을 실행합니다.
Skynet Mac 앱은 내 컴퓨터에서 Skynet을 실행합니다. 앱은 Mac에서 로그인된 코딩 CLI를 통해 모델 호출을 보내므로, 그 호출 비용은 CLI 요금제가 부담합니다. 앱을 호스팅된 Skynet 계정에 연결할 수도 있습니다.
요구 사항
- Apple silicon이 탑재된 Mac. Intel 빌드도 있지만 Intel 하드웨어에서 테스트한 사람은 없습니다.
- 실행 중인 Docker Desktop. Use Rosetta for x86_64/amd64 emulation이 켜져 있어야 합니다.
- 로그인된 코딩 CLI 하나:
- Claude Code(
claude) 2.1.226 이상, 또는 - Codex(
codex) 0.160.0 이상.
- Claude Code(
Codex 설정하기
Codex는 자격 증명을 파일에 보관해야 합니다. 처음 실행하기 전에 다음 단계를 따르세요.
~/.codex/config.toml을 열고 다음 줄을 추가합니다.
cli_auth_credentials_store = "file"- ChatGPT 계정으로 로그인합니다.
codex login앱 설치하기
빌드는 애드혹(ad hoc) 서명되어 있으며 공증(notarization)을 받지 않았습니다. 격리(quarantine) 플래그를 제거할 때까지 macOS가 앱을 차단합니다.
.dmg파일을 엽니다.- Skynet을 응용 프로그램으로 끌어다 놓습니다.
- 터미널에서 다음 명령을 실행합니다.
xattr -dr com.apple.quarantine /Applications/Skynet.app- 응용 프로그램에서 Skynet을 엽니다.
실행 시 일어나는 일
앱은 다음 단계를 순서대로 수행합니다.
- 로그인 셸에서
PATH를 읽어 Docker와 CLI를 찾을 수 있게 합니다. - Docker와 코딩 CLI를 검사합니다.
- Docker에서 로컬 Postgres 데이터베이스를 시작합니다.
linux/amd64용 샌드박스 이미지skynet-local-sandbox를 빌드합니다. Docker는 이 이미지를 Rosetta에서 실행합니다.- 데이터베이스 스키마를 업데이트합니다.
- 로컬 API와 웹 앱을 시작하고, 창에 웹 앱을 표시합니다.
온보딩 검사
앱은 검사 목록을 보여 줍니다: Docker, Coding CLI, Signed in, Usage limit, Local services, Account. 검사가 실패하면 앱은 해야 할 일을 알려 주는 화면을 보여 줍니다.
| 화면 | 해야 할 일 |
|---|---|
| Install Docker Desktop | Docker Desktop을 설치합니다. |
| Start Docker | Docker Desktop을 시작합니다. |
| Install a coding CLI | Claude Code 또는 Codex를 설치합니다. |
| Update your coding CLI | CLI를 위에 적힌 최소 버전으로 업데이트합니다. |
| Sign in to your CLI | 터미널에서 CLI에 로그인합니다. |
| Usage limit reached | 초기화 시간까지 기다립니다. 초기화 후에 새 작업을 다시 시작할 수 있습니다. |
문제를 고친 후 Check again을 클릭합니다. 로그 파일을 보려면 Open logs를 클릭합니다. Usage limit reached 화면에서는 Open Skynet anyway를 클릭할 수 있습니다.
로컬 실행
앱에서는 모델 호출이 Mac의 CLI를 거칩니다. 모델 메뉴는 이 모드를 로컬로 표시합니다. 힌트에는 "호출 비용은 요금제가 부담하므로 이 모델은 실행에 $0를 더합니다."라고 적혀 있습니다.
앱에서 CLI 이름은 Claude Code와 Codex입니다.
제안자를 내 CLI에서 실행하기
제안자를 내 CLI에서 실행 설정은 제안자 에이전트가 실행되는 위치를 정합니다. 선택지는 **에이전트 엔진 (기본값)**과 **끔 (샌드박스 제안자)**입니다.
제안자 권한은 CLI가 접근할 수 있는 범위를 정합니다.
- 작업 공간만이 기본값입니다. 각 CLI의 자체 샌드박스에 의존합니다.
- 전체 액세스는 내 사용자 권한으로 CLI를 실행합니다.
앱에서 태깅하기
Mac 앱에서 AI 태깅을 하려면 자신의 제공업체 키가 필요합니다. 내 키 사용에서 모델을 선택하세요. 태거로 데이터 라벨링을 참고하세요.
Skynet 계정에 연결하기
계정 없이도 앱을 사용할 수 있습니다. 그러려면 Use without signing in을 클릭합니다. 호스팅된 계정과 동기화하려면 앱을 연결하세요.
이 Mac 연결하기
- Sign in to Skynet 단계에서 앱이 기본 브라우저로 Link a Mac 페이지를 엽니다.
- 브라우저에서 요청하면 Skynet에 로그인합니다.
- 연결하면 이 Mac에서 다음을 할 수 있습니다: 아래 목록을 확인합니다.
- 이 Mac 연결을 클릭합니다. 페이지에 "Mac 앱으로 돌아가는 중…"이 표시됩니다.
로그인이 실패하거나 취소하면 앱에 Try again과 Use without signing in이 표시됩니다.
연결하면 Mac에서 다음을 할 수 있습니다.
- 내 이름과 이메일을 봅니다.
- 내 잔액을 봅니다.
- 실행을 계정과 동기화합니다.
- 잔액에서 비용을 내는 호스팅 모델을 사용합니다.
- 연결된 데이터 소스를 사용합니다.
- Skynet을 통해 웹을 검색하고 탐색합니다.
연결에는 안전한 로그인 흐름(OAuth with PKCE)을 사용합니다. 앱은 토큰을 암호화해 Mac에 저장합니다. 연결을 해제하면 Skynet이 토큰을 해지합니다.
연결 제한
| 제한 | 값 |
|---|---|
| 계정당 연결된 Mac | 10 |
| 액세스 토큰 수명 | 1시간, 이후 앱이 갱신합니다 |
| 연결 유휴 시간 제한 | 30일 동안 사용하지 않을 때 |
| 연결 최대 기간 | 365일 |
유휴 시간 제한이나 최대 기간이 지나면 Mac을 다시 연결하세요.
연결 상태
앱은 다음 상태 중 하나를 표시합니다: 로컬 모드, 이 Mac에 연결됨, 로그인하여 동기화, 연결됨(오프라인).
로컬 서비스와 데이터
모든 로컬 서비스는 127.0.0.1에서만 수신합니다.
| 서비스 | 포트 범위 |
|---|---|
| API | 48100~48119 |
| 웹 앱 | 48120~48139 |
| Postgres | 48140~48159 |
앱은 데이터를 ~/Library/Application Support/Skynet에 보관합니다. logs/ 폴더에는 desktop.log, api.log, frontend.log, migrate.log, sandbox-build.log가 있습니다.
앱을 종료하면 웹 앱, API, Postgres, 모든 작업 컨테이너가 멈춥니다.
앱 초기화하기
먼저 앱을 종료합니다. 그런 다음 실행합니다.
docker volume rm skynet-local-pgdata
rm -rf ~/Library/Application\ Support/Skynet