Containers
Nix
nix-openclaw を使用して、OpenClaw を宣言的にインストールします。これは、必要な機能をすべて備えた公式の Home Manager モジュールです。
導入されるもの
- 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 の両方のサービス環境に適用されます。