Nix 설치
Nix로 OpenClaw를 실행하는 권장 방법은 nix-openclaw — 배터리 포함 Home Manager 모듈을 사용하는 것입니다.
빠른 시작
AI agent (Claude, Cursor 등)에 다음을 붙여넣으세요:
Mac에서 nix-openclaw를 설정하고 싶습니다.
저장소: github:openclaw/nix-openclaw
수행해야 할 작업:
1. Determinate Nix가 설치되어 있는지 확인 (없으면 설치)
2. templates/agent-first/flake.nix를 사용하여 ~/code/openclaw-local에 로컬 flake 생성
3. Telegram 봇 생성 (@BotFather) 및 내 채팅 ID 가져오기 (@userinfobot) 도와주기
4. 비밀 설정 (봇 토큰, Anthropic 키) - ~/.secrets/에 일반 파일로 괜찮음
5. 템플릿 플레이스홀더 채우고 home-manager switch 실행
6. 확인: launchd 실행 중, 봇이 메시지에 응답
모듈 옵션은 nix-openclaw README를 참조하세요.
📦 전체 가이드: github.com/openclaw/nix-openclaw
nix-openclaw 저장소가 Nix 설치의 신뢰할 수 있는 소스입니다. 이 페이지는 빠른 개요일 뿐입니다.
제공되는 기능
- Gateway + macOS 앱 + 도구 (whisper, spotify, cameras) — 모두 고정됨
- 재부팅 후에도 유지되는 Launchd 서비스
- 선언적 구성이 있는 Plugin 시스템
- 즉시 롤백: home-manager switch --rollback
Nix 모드 런타임 동작
OPENCLAW_NIX_MODE=1이 설정된 경우 (nix-openclaw와 함께 자동):
OpenClaw는 구성을 결정론적으로 만들고 자동 설치 플로우를 비활성화하는 Nix 모드를 지원합니다. 내보내기로 활성화:
OPENCLAW_NIX_MODE=1
macOS에서 GUI 앱은 셸 환경 변수를 자동으로 상속하지 않습니다. 다음을 통해 Nix 모드를 활성화할 수도 있습니다:
defaults write bot.molt.mac openclaw.nixMode -bool true
Config + 상태 경로
OpenClaw는 OPENCLAW_CONFIG_PATH에서 JSON5 구성을 읽고 OPENCLAW_STATE_DIR에 변경 가능한 데이터를 저장합니다.
- OPENCLAW_STATE_DIR (기본값: ~/.openclaw)
- OPENCLAW_CONFIG_PATH (기본값: $OPENCLAW_STATE_DIR/openclaw.json)
Nix에서 실행할 때 런타임 상태와 구성이 불변 저장소 밖에 유지되도록 이들을 Nix 관리 위치로 명시적으로 설정하세요.
Nix 모드의 런타임 동작
- 자동 설치 및 자체 변경 플로우가 비활성화됨
- 누락된 의존성은 Nix 관련 개선 메시지를 표시
- 있는 경우 UI에 읽기 전용 Nix 모드 배너 표시
패키징 참고사항 (macOS)
macOS 패키징 플로우는 다음에서 안정적인 Info.plist 템플릿을 예상합니다:
apps/macos/Sources/OpenClaw/Resources/Info.plist
scripts/package-mac-app.sh는 이 템플릿을 앱 번들에 복사하고 동적 필드를 패치합니다 (bundle ID, version/build, Git SHA, Sparkle 키). 이것은 SwiftPM 패키징 및 Nix 빌드(전체 Xcode 도구 체인에 의존하지 않음)를 위해 plist를 결정론적으로 유지합니다.
관련 자료
- nix-openclaw — 전체 설정 가이드
- Wizard — 비Nix CLI 설정
- Docker — 컨테이너화된 설정