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, 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.
📦 完全ガイド: github.com/openclaw/nix-openclaw
nix-openclaw リポジトリは、Nix インストールに関する単一の正確な情報源です。このページは簡単な概要にすぎません。 このページは簡単な概要です。
あなたが得るもの¶
- Gateway + 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 モードを有効化することもできます。 34. デフォルト設定から Nix モードを有効にすることもできます:
defaults write bot.molt.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 の決定論性が維持されます。 これにより、SwiftPM
パッケージングとNixビルド(完全なXcodeツールチェーンに依存しない)のリスト決定性が維持されます。
関連¶
- nix-openclaw — 完全なセットアップガイド
- ウィザード — 非 Nix の CLI セットアップ
- Docker — コンテナ化されたセットアップ