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를 결정론적으로 유지합니다.

관련 자료