Cài đặt Nix
Cách được khuyên dùng để chạy OpenClaw với Nix là thông qua nix-openclaw — một Home Manager module đầy đủ tính năng.
Bắt đầu nhanh
Paste đoạn này cho AI agent của các bạn (Claude, Cursor, v.v.):
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, Anthropic 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.
📦 Hướng dẫn đầy đủ: github.com/openclaw/nix-openclaw
Repo nix-openclaw là nguồn thông tin chính thức cho việc cài đặt Nix. Trang này chỉ là tổng quan nhanh thôi.
Các bạn sẽ có gì
- Gateway + macOS app + tools (whisper, spotify, cameras) — tất cả đều được pin
- Launchd service tự động chạy lại sau khi reboot
- Plugin system với config declarative
- Rollback tức thì:
home-manager switch --rollback
Hành vi Runtime của Nix Mode
Khi OPENCLAW_NIX_MODE=1 được set (tự động với nix-openclaw):
OpenClaw hỗ trợ Nix mode giúp config trở nên deterministic và tắt các flow tự động cài đặt. Bật nó bằng cách export:
OPENCLAW_NIX_MODE=1
Trên macOS, GUI app không tự động kế thừa shell env vars. Các bạn cũng có thể bật Nix mode qua defaults:
defaults write bot.molt.mac openclaw.nixMode -bool true
Đường dẫn config + state
OpenClaw đọc JSON5 config từ OPENCLAW_CONFIG_PATH và lưu dữ liệu có thể thay đổi trong OPENCLAW_STATE_DIR.
OPENCLAW_STATE_DIR(mặc định:~/.openclaw)OPENCLAW_CONFIG_PATH(mặc định:$OPENCLAW_STATE_DIR/openclaw.json)
Khi chạy dưới Nix, hãy set các biến này một cách rõ ràng đến các vị trí do Nix quản lý để runtime state và config không nằm trong immutable store.
Hành vi runtime trong Nix mode
- Các flow tự động cài đặt và self-mutation bị tắt
- Các dependency thiếu sẽ hiển thị thông báo khắc phục dành riêng cho Nix
- UI hiển thị banner Nix mode ở chế độ read-only khi có
Lưu ý về packaging (macOS)
Flow packaging macOS cần một template Info.plist ổn định tại:
apps/macos/Sources/OpenClaw/Resources/Info.plist
scripts/package-mac-app.sh copy template này vào app bundle và patch các trường động
(bundle ID, version/build, Git SHA, Sparkle keys). Điều này giữ cho plist deterministic cho SwiftPM
packaging và Nix builds (không phụ thuộc vào full Xcode toolchain).
Liên quan
- nix-openclaw — hướng dẫn setup đầy đủ
- Wizard — setup CLI không dùng Nix
- Docker — setup dạng container