Nix 설치

Nix로 OpenClaw를 실행하는 권장 방법은 **nix-openclaw**입니다. 배터리 포함형 Home Manager 모듈입니다.

빠른 시작

AI 에이전트(Claude, Cursor 등)에 다음을 붙여넣으세요:

I want to set up nix-openclaw on my Mac.
Repository: github:openclaw/nix-openclaw

What I need you to do:
1. Check if Determinate Nix is installed (if not, install it)
2. Create a local flake at ~/code/openclaw-local using templates/agent-first/flake.nix
3. Help me create a Telegram bot (@BotFather) and get my chat ID (@userinfobot)
4. Set up secrets (bot token, model provider API key) - plain files at ~/.secrets/ is fine
5. Fill in the template placeholders and run home-manager switch
6. Verify: launchd running, bot responds to messages

Reference the nix-openclaw README for module options.

📦 전체 가이드: github.com/openclaw/nix-openclaw

nix-openclaw 저장소가 Nix 설치의 정본입니다. 이 페이지는 간략한 개요입니다.

제공 기능

  • 게이트웨이 + macOS 앱 + 도구(whisper, spotify, cameras) — 모두 고정
  • 재부팅에도 생존하는 Launchd 서비스
  • 선언적 설정의 플러그인 시스템
  • 즉시 롤백: home-manager switch --rollback

Nix 모드 런타임 동작

OPENCLAW_NIX_MODE=1이 설정되면(nix-openclaw에서 자동):

OpenClaw는 설정을 결정론적으로 만들고 자동 설치 플로우를 비활성화하는 Nix 모드를 지원합니다. 다음을 내보내서 활성화합니다:

OPENCLAW_NIX_MODE=1

macOS에서 GUI 앱은 쉘 환경 변수를 자동으로 상속하지 않습니다. defaults로도 Nix 모드를 활성화할 수 있습니다:

defaults write ai.openclaw.mac openclaw.nixMode -bool true

설정 + 상태 경로

OpenClaw는 OPENCLAW_CONFIG_PATH에서 JSON5 설정을 읽고 OPENCLAW_STATE_DIR에 가변 데이터를 저장합니다. 필요한 경우 OPENCLAW_HOME을 설정하여 내부 경로 해석에 사용되는 기본 홈 디렉토리를 제어할 수 있습니다.

  • OPENCLAW_HOME (기본 우선순위: HOME / USERPROFILE / os.homedir())
  • 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가 이 템플릿을 앱 번들에 복사하고 동적 필드(번들 ID, 버전/빌드, Git SHA, Sparkle 키)를 패치합니다. 이렇게 하면 SwiftPM 패키징과 Nix 빌드(전체 Xcode 도구 체인에 의존하지 않음)에서 plist가 결정론적으로 유지됩니다.

관련 문서