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 インストールの正式なリファレンスです。このページは概要のみを記載しています。

構成内容

  • 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 モードを有効にできます:

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 固有の修復メッセージが表示されます
  • Nix モードが有効な場合、UI に読み取り専用バナーが表示されます

パッケージングに関する注意(macOS)

macOS のパッケージングフローでは、以下の場所に安定した Info.plist テンプレートが必要です:

apps/macos/Sources/OpenClaw/Resources/Info.plist

scripts/package-mac-app.sh がこのテンプレートをアプリバンドルにコピーし、動的フィールド(バンドル ID、バージョン/ビルド、Git SHA、Sparkle キー)をパッチします。これにより、SwiftPM パッケージングと Nix ビルド(完全な Xcode ツールチェーンに依存しない)で plist が確定的に保たれます。

関連情報