---
read_when:
    - '`openclaw.ai/install.sh`を理解したい場合'
    - インストールを自動化したい場合（CI / headless）
    - GitHubチェックアウトからインストールしたい場合
summary: インストーラスクリプト（install.sh、install-cli.sh、install.ps1）の仕組み、フラグ、自動化
title: インストーラーの内部動作
x-i18n:
    generated_at: "2026-04-05T12:49:02Z"
    model: gpt-5.4
    provider: openai
    source_hash: eced891572b8825b1f8a26ccc9d105ae8a38bd8ad89baef2f1927e27d4619e04
    source_path: install/installer.md
    workflow: 15
---

# インストーラーの内部動作

OpenClawは、`openclaw.ai`から配信される3つのインストーラスクリプトを提供しています。

| Script                             | Platform             | 役割                                                                                                   |
| ---------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------ |
| [`install.sh`](#installsh)         | macOS / Linux / WSL  | 必要に応じてNodeをインストールし、npm（デフォルト）またはgit経由でOpenClawをインストールし、オンボーディングを実行できます。 |
| [`install-cli.sh`](#install-clish) | macOS / Linux / WSL  | Node + OpenClawをローカルprefix（`~/.openclaw`）にnpmまたはgit checkoutモードでインストールします。rootは不要です。 |
| [`install.ps1`](#installps1)       | Windows (PowerShell) | 必要に応じてNodeをインストールし、npm（デフォルト）またはgit経由でOpenClawをインストールし、オンボーディングを実行できます。 |

## クイックコマンド

<Tabs>
  <Tab title="install.sh">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
    ```

    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --help
    ```

  </Tab>
  <Tab title="install-cli.sh">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash
    ```

    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --help
    ```

  </Tab>
  <Tab title="install.ps1">
    ```powershell
    iwr -useb https://openclaw.ai/install.ps1 | iex
    ```

    ```powershell
    & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag beta -NoOnboard -DryRun
    ```

  </Tab>
</Tabs>

<Note>
インストールは成功したが新しいターミナルで`openclaw`が見つからない場合は、[Node.js troubleshooting](/install/node#troubleshooting)を参照してください。
</Note>

---

<a id="installsh"></a>

## install.sh

<Tip>
macOS/Linux/WSLでのほとんどの対話的インストールに推奨されます。
</Tip>

### フロー（install.sh）

<Steps>
  <Step title="OSを検出する">
    macOSおよびLinux（WSLを含む）をサポートします。macOSが検出された場合、Homebrewがなければインストールします。
  </Step>
  <Step title="デフォルトでNode.js 24を確保する">
    Nodeバージョンを確認し、必要ならNode 24をインストールします（macOSではHomebrew、Linuxではapt/dnf/yum向けNodeSourceセットアップスクリプト）。OpenClawは互換性のため、現在`22.14+`のNode 22 LTSも引き続きサポートしています。
  </Step>
  <Step title="Gitを確保する">
    Gitがなければインストールします。
  </Step>
  <Step title="OpenClawをインストールする">
    - `npm`メソッド（デフォルト）: グローバルnpmインストール
    - `git`メソッド: リポジトリをclone/updateし、pnpmで依存関係をインストールし、ビルドしてから、`~/.local/bin/openclaw`にラッパーをインストール
  </Step>
  <Step title="インストール後の処理">
    - 読み込み済みgateway serviceをベストエフォートで更新（`openclaw gateway install --force`、その後再起動）
    - アップグレード時とgitインストール時に`openclaw doctor --non-interactive`を実行（ベストエフォート）
    - 適切な場合にオンボーディングを試行（TTYが利用可能、オンボーディングが無効化されていない、bootstrap/configチェックに通る）
    - デフォルトで`SHARP_IGNORE_GLOBAL_LIBVIPS=1`を設定
  </Step>
</Steps>

### ソースcheckoutの検出

OpenClaw checkout内（`package.json` + `pnpm-workspace.yaml`）で実行した場合、スクリプトは次を提案します:

- checkoutを使う（`git`）、または
- グローバルインストールを使う（`npm`）

TTYが利用できず、インストール方法も設定されていない場合、デフォルトで`npm`を使用し、警告を表示します。

スクリプトは、無効なメソッド選択または無効な`--install-method`値に対して終了コード`2`で終了します。

### 例（install.sh）

<Tabs>
  <Tab title="デフォルト">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
    ```
  </Tab>
  <Tab title="オンボーディングをスキップ">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-onboard
    ```
  </Tab>
  <Tab title="gitインストール">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --install-method git
    ```
  </Tab>
  <Tab title="npm経由でGitHub main">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --version main
    ```
  </Tab>
  <Tab title="ドライラン">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --dry-run
    ```
  </Tab>
</Tabs>

<AccordionGroup>
  <Accordion title="フラグリファレンス">

| Flag                                  | 説明                                                |
| ------------------------------------- | --------------------------------------------------- |
| `--install-method npm\|git`           | インストール方法を選択（デフォルト: `npm`）。別名: `--method`  |
| `--npm`                               | npmメソッドのショートカット                                    |
| `--git`                               | gitメソッドのショートカット。別名: `--github`                 |
| `--version <version\|dist-tag\|spec>` | npmバージョン、dist-tag、またはpackage spec（デフォルト: `latest`） |
| `--beta`                              | 利用可能ならbeta dist-tagを使用し、なければ`latest`にフォールバック  |
| `--git-dir <path>`                    | checkoutディレクトリ（デフォルト: `~/openclaw`）。別名: `--dir` |
| `--no-git-update`                     | 既存checkoutの`git pull`をスキップ                      |
| `--no-prompt`                         | プロンプトを無効化                                            |
| `--no-onboard`                        | オンボーディングをスキップ                                            |
| `--onboard`                           | オンボーディングを有効化                                          |
| `--dry-run`                           | 変更を適用せず、実行内容のみ表示                     |
| `--verbose`                           | デバッグ出力を有効化（`set -x`、npmのnotice-levelログ）      |
| `--help`                              | 使い方を表示（`-h`）                                          |

  </Accordion>

  <Accordion title="環境変数リファレンス">

| Variable                                                | 説明                                   |
| ------------------------------------------------------- | -------------------------------------- |
| `OPENCLAW_INSTALL_METHOD=git\|npm`                      | インストール方法                                |
| `OPENCLAW_VERSION=latest\|next\|main\|<semver>\|<spec>` | npmバージョン、dist-tag、またはpackage spec        |
| `OPENCLAW_BETA=0\|1`                                    | 利用可能ならbetaを使用                         |
| `OPENCLAW_GIT_DIR=<path>`                               | checkoutディレクトリ                            |
| `OPENCLAW_GIT_UPDATE=0\|1`                              | git updateの有効/無効                            |
| `OPENCLAW_NO_PROMPT=1`                                  | プロンプトを無効化                               |
| `OPENCLAW_NO_ONBOARD=1`                                 | オンボーディングをスキップ                               |
| `OPENCLAW_DRY_RUN=1`                                    | ドライランモード                                  |
| `OPENCLAW_VERBOSE=1`                                    | デバッグモード                                    |
| `OPENCLAW_NPM_LOGLEVEL=error\|warn\|notice`             | npmログレベル                                 |
| `SHARP_IGNORE_GLOBAL_LIBVIPS=0\|1`                      | sharp/libvipsの動作を制御（デフォルト: `1`） |

  </Accordion>
</AccordionGroup>

---

<a id="install-clish"></a>

## install-cli.sh

<Info>
すべてをローカルprefix
（デフォルト`~/.openclaw`）配下に置き、システムNode依存を避けたい環境向けに設計されています。デフォルトでnpmインストールをサポートし、同じprefixフロー内でgit-checkoutインストールもサポートします。
</Info>

### フロー（install-cli.sh）

<Steps>
  <Step title="ローカルNodeランタイムをインストールする">
    固定されたサポート対象のNode LTS tarball（バージョンはスクリプト内に埋め込まれ、独立して更新される）を`<prefix>/tools/node-v<version>`へダウンロードし、SHA-256を検証します。
  </Step>
  <Step title="Gitを確保する">
    Gitがない場合、Linuxではapt/dnf/yum、macOSではHomebrew経由でのインストールを試みます。
  </Step>
  <Step title="prefix配下にOpenClawをインストールする">
    - `npm`メソッド（デフォルト）: prefix配下にnpmでインストールし、その後`<prefix>/bin/openclaw`にラッパーを書き込む
    - `git`メソッド: checkoutをclone/updateし（デフォルト`~/openclaw`）、やはり`<prefix>/bin/openclaw`にラッパーを書き込む
  </Step>
  <Step title="読み込み済みgateway serviceを更新する">
    その同じprefixからgateway serviceがすでに読み込まれている場合、スクリプトは
    `openclaw gateway install --force`、続いて`openclaw gateway restart`を実行し、
    ベストエフォートでgatewayの正常性をprobeします。
  </Step>
</Steps>

### 例（install-cli.sh）

<Tabs>
  <Tab title="デフォルト">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash
    ```
  </Tab>
  <Tab title="カスタムprefix + バージョン">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --prefix /opt/openclaw --version latest
    ```
  </Tab>
  <Tab title="gitインストール">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --install-method git --git-dir ~/openclaw
    ```
  </Tab>
  <Tab title="自動化向けJSON出力">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --json --prefix /opt/openclaw
    ```
  </Tab>
  <Tab title="オンボーディングを実行">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --onboard
    ```
  </Tab>
</Tabs>

<AccordionGroup>
  <Accordion title="フラグリファレンス">

| Flag                        | 説明                                                                     |
| --------------------------- | ------------------------------------------------------------------------ |
| `--prefix <path>`           | インストールprefix（デフォルト: `~/.openclaw`）                                         |
| `--install-method npm\|git` | インストール方法を選択（デフォルト: `npm`）。別名: `--method`                       |
| `--npm`                     | npmメソッドのショートカット                                                         |
| `--git`, `--github`         | gitメソッドのショートカット                                                         |
| `--git-dir <path>`          | Git checkoutディレクトリ（デフォルト: `~/openclaw`）。別名: `--dir`                  |
| `--version <ver>`           | OpenClawバージョンまたはdist-tag（デフォルト: `latest`）                                |
| `--node-version <ver>`      | Nodeバージョン（デフォルト: `22.22.0`）                                               |
| `--json`                    | NDJSONイベントを出力                                                              |
| `--onboard`                 | インストール後に`openclaw onboard`を実行                                            |
| `--no-onboard`              | オンボーディングをスキップ（デフォルト）                                                       |
| `--set-npm-prefix`          | Linuxで、現在のprefixが書き込み不可ならnpm prefixを`~/.npm-global`へ強制設定 |
| `--help`                    | 使い方を表示（`-h`）                                                               |

  </Accordion>

  <Accordion title="環境変数リファレンス">

| Variable                                    | 説明                                   |
| ------------------------------------------- | -------------------------------------- |
| `OPENCLAW_PREFIX=<path>`                    | インストールprefix                                |
| `OPENCLAW_INSTALL_METHOD=git\|npm`          | インストール方法                                |
| `OPENCLAW_VERSION=<ver>`                    | OpenClawバージョンまたはdist-tag                  |
| `OPENCLAW_NODE_VERSION=<ver>`               | Nodeバージョン                                  |
| `OPENCLAW_GIT_DIR=<path>`                   | gitインストール時のGit checkoutディレクトリ       |
| `OPENCLAW_GIT_UPDATE=0\|1`                  | 既存checkoutのgit updateの有効/無効     |
| `OPENCLAW_NO_ONBOARD=1`                     | オンボーディングをスキップ                               |
| `OPENCLAW_NPM_LOGLEVEL=error\|warn\|notice` | npmログレベル                                 |
| `SHARP_IGNORE_GLOBAL_LIBVIPS=0\|1`          | sharp/libvipsの動作を制御（デフォルト: `1`） |

  </Accordion>
</AccordionGroup>

---

<a id="installps1"></a>

## install.ps1

### フロー（install.ps1）

<Steps>
  <Step title="PowerShell + Windows環境を確保する">
    PowerShell 5+が必要です。
  </Step>
  <Step title="デフォルトでNode.js 24を確保する">
    存在しない場合、winget、次にChocolatey、次にScoop経由でのインストールを試みます。互換性のため、現在`22.14+`のNode 22 LTSも引き続きサポートされています。
  </Step>
  <Step title="OpenClawをインストールする">
    - `npm`メソッド（デフォルト）: 選択した`-Tag`を使ってグローバルnpmインストール
    - `git`メソッド: リポジトリをclone/updateし、pnpmでインストール/ビルドし、`%USERPROFILE%\.local\bin\openclaw.cmd`にラッパーをインストール
  </Step>
  <Step title="インストール後の処理">
    - 可能な場合は必要なbinディレクトリをユーザーPATHへ追加
    - 読み込み済みgateway serviceをベストエフォートで更新（`openclaw gateway install --force`、その後再起動）
    - アップグレード時とgitインストール時に`openclaw doctor --non-interactive`を実行（ベストエフォート）
  </Step>
</Steps>

### 例（install.ps1）

<Tabs>
  <Tab title="デフォルト">
    ```powershell
    iwr -useb https://openclaw.ai/install.ps1 | iex
    ```
  </Tab>
  <Tab title="gitインストール">
    ```powershell
    & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -InstallMethod git
    ```
  </Tab>
  <Tab title="npm経由でGitHub main">
    ```powershell
    & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag main
    ```
  </Tab>
  <Tab title="カスタムgitディレクトリ">
    ```powershell
    & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -InstallMethod git -GitDir "C:\openclaw"
    ```
  </Tab>
  <Tab title="ドライラン">
    ```powershell
    & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -DryRun
    ```
  </Tab>
  <Tab title="デバッグトレース">
    ```powershell
    # install.ps1には専用の-Verboseフラグはまだありません。
    Set-PSDebug -Trace 1
    & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
    Set-PSDebug -Trace 0
    ```
  </Tab>
</Tabs>

<AccordionGroup>
  <Accordion title="フラグリファレンス">

| Flag                        | 説明                                                |
| --------------------------- | --------------------------------------------------- |
| `-InstallMethod npm\|git`   | インストール方法（デフォルト: `npm`）                            |
| `-Tag <tag\|version\|spec>` | npm dist-tag、バージョン、またはpackage spec（デフォルト: `latest`） |
| `-GitDir <path>`            | checkoutディレクトリ（デフォルト: `%USERPROFILE%\openclaw`）     |
| `-NoOnboard`                | オンボーディングをスキップ                                            |
| `-NoGitUpdate`              | `git pull`をスキップ                                            |
| `-DryRun`                   | 実行内容のみ表示                                         |

  </Accordion>

  <Accordion title="環境変数リファレンス">

| Variable                           | 説明        |
| ---------------------------------- | ----------- |
| `OPENCLAW_INSTALL_METHOD=git\|npm` | インストール方法     |
| `OPENCLAW_GIT_DIR=<path>`          | checkoutディレクトリ |
| `OPENCLAW_NO_ONBOARD=1`            | オンボーディングをスキップ    |
| `OPENCLAW_GIT_UPDATE=0`            | git pullを無効化   |
| `OPENCLAW_DRY_RUN=1`               | ドライランモード       |

  </Accordion>
</AccordionGroup>

<Note>
`-InstallMethod git`を使用し、かつGitが存在しない場合、スクリプトは終了してGit for Windowsへのリンクを表示します。
</Note>

---

## CIと自動化

予測可能な実行のために、非対話フラグ/環境変数を使用してください。

<Tabs>
  <Tab title="install.sh（非対話npm）">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash -s -- --no-prompt --no-onboard
    ```
  </Tab>
  <Tab title="install.sh（非対話git）">
    ```bash
    OPENCLAW_INSTALL_METHOD=git OPENCLAW_NO_PROMPT=1 \
      curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
    ```
  </Tab>
  <Tab title="install-cli.sh（JSON）">
    ```bash
    curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install-cli.sh | bash -s -- --json --prefix /opt/openclaw
    ```
  </Tab>
  <Tab title="install.ps1（オンボーディングをスキップ）">
    ```powershell
    & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
    ```
  </Tab>
</Tabs>

---

## トラブルシューティング

<AccordionGroup>
  <Accordion title="なぜGitが必要なのですか？">
    Gitは`git`インストール方法に必要です。`npm`インストールでも、依存関係がgit URLを使う場合の`spawn git ENOENT`失敗を避けるため、Gitの確認/インストールが行われます。
  </Accordion>

  <Accordion title="なぜLinuxでnpmがEACCESになるのですか？">
    一部のLinux環境では、npmのグローバルprefixがroot所有パスを指しています。`install.sh`は、prefixを`~/.npm-global`へ切り替え、シェルrcファイルが存在する場合はPATH exportを追記できます。
  </Accordion>

  <Accordion title="sharp/libvipsの問題">
    スクリプトは、sharpがシステムlibvipsに対してビルドされるのを避けるため、デフォルトで`SHARP_IGNORE_GLOBAL_LIBVIPS=1`を設定します。上書きするには:

    ```bash
    SHARP_IGNORE_GLOBAL_LIBVIPS=0 curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash
    ```

  </Accordion>

  <Accordion title='Windows: "npm error spawn git / ENOENT"'>
    Git for Windowsをインストールし、PowerShellを開き直して、インストーラーを再実行してください。
  </Accordion>

  <Accordion title='Windows: "openclaw is not recognized"'>
    `npm config get prefix`を実行し、そのディレクトリをユーザーPATHへ追加してください（Windowsでは`\bin`サフィックスは不要です）。その後、PowerShellを開き直してください。
  </Accordion>

  <Accordion title="Windows: 詳細なインストーラー出力を得る方法">
    `install.ps1`は現在`-Verbose`スイッチを公開していません。
    スクリプトレベルの診断にはPowerShellトレースを使用してください:

    ```powershell
    Set-PSDebug -Trace 1
    & ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard
    Set-PSDebug -Trace 0
    ```

  </Accordion>

  <Accordion title="インストール後にopenclawが見つからない">
    通常はPATHの問題です。[Node.js troubleshooting](/install/node#troubleshooting)を参照してください。
  </Accordion>
</AccordionGroup>
