Containers
Nix
nix-openclaw(公式の機能完備な Home Manager モジュール)を使用して、OpenClaw を宣言的にインストールします。
利用できるもの
- Gateway、macOS アプリ、ツール(whisper、spotify、カメラ)。すべてバージョン固定
- 再起動後も稼働する launchd サービス
- 宣言的設定に対応した Plugin システム
- 即時ロールバック:
home-manager switch --rollback
クイックスタート
Determinate Nix をインストール
Nix がまだインストールされていない場合は、Determinate Nix インストーラーの手順に従ってください。
ローカル flake を作成
nix-openclaw リポジトリのエージェントファーストテンプレートを使用します。
mkdir -p ~/code/openclaw-local# nix-openclaw リポジトリから templates/agent-first/flake.nix をコピーシークレットを設定
メッセージングボットのトークンとモデルプロバイダーの API キーを設定します。~/.secrets/ にあるプレーンファイルで問題なく動作します。
テンプレートのプレースホルダーを入力して切り替え
home-manager switch確認
launchd サービスが実行中であり、ボットがメッセージに応答することを確認します。
すべてのモジュールオプションと例については、nix-openclaw README を参照してください。
Nix モードのランタイム動作
OPENCLAW_NIX_MODE=1 が設定されている場合(nix-openclaw では自動設定)、OpenClaw は Nix 管理のインストール向けの決定論的モードに移行します。他の Nix パッケージでも同じモードを設定できます。nix-openclaw が公式のリファレンス実装です。
手動で設定することもできます。
export OPENCLAW_NIX_MODE=1macOS では、GUI アプリはシェルの環境変数を継承しません。代わりに defaults を使用して Nix モードを有効にします。
defaults write ai.openclaw.mac openclaw.nixMode -bool trueNix モードでの変更点
- 自動インストールと自己変更フローが無効になります。
openclaw.jsonは不変として扱われます。起動時に導出されるデフォルトはランタイム内にのみ保持され、設定を書き込む機能(セットアップ、オンボーディング、openclaw updateの変更、Plugin のインストール/更新/アンインストール/有効化、doctor --fix、doctor --generate-gateway-token、openclaw config set)はファイルの編集を拒否します。- 代わりに Nix ソースを編集してください。nix-openclaw では、エージェントファーストのクイックスタートを使用し、
programs.openclaw.configまたはinstances.<name>.config配下に設定を指定します。 - 依存関係が不足している場合、Nix 固有の修正メッセージが表示されます。
- UI に読み取り専用の Nix モードバナーが表示されます。
設定と状態のパス
OpenClaw は OPENCLAW_CONFIG_PATH から JSON5 設定を読み込み、変更可能なデータを OPENCLAW_STATE_DIR に保存します。Nix では、ランタイム状態と設定が不変ストアに入らないように、これらを Nix 管理の場所へ明示的に設定してください。
| 変数 | デフォルト |
|---|---|
OPENCLAW_HOME |
HOME / USERPROFILE / os.homedir() |
OPENCLAW_STATE_DIR |
~/.openclaw |
OPENCLAW_CONFIG_PATH |
$OPENCLAW_STATE_DIR/openclaw.json |
サービスの PATH 検出
launchd/systemd の Gateway サービスは Nix プロファイルのバイナリを自動検出するため、nix でインストールされた実行可能ファイルをシェルから呼び出す Plugin やツールは、PATH を手動設定せずに動作します。
NIX_PROFILESが設定されている場合、すべてのエントリが右から左の優先順位でサービスの PATH に追加されます(Nix シェルの優先順位と同じで、右端が優先されます)。NIX_PROFILESが未設定の場合、フォールバックとして~/.nix-profile/binが追加されます。
これは macOS の launchd と Linux の systemd の両方のサービス環境に適用されます。