ソースコードからビルドする理由
多くのユーザーは npm install -g openclaw@latest で素早く OpenClaw をインストールできます。しかし、特定のケースではソースコードからのビルドがより良い選択肢となります。コード修正や新機能の追加に貢献したい場合、安定版リリースではなく最新の開発版を使用したい場合、OpenClaw の内部実装を深く理解したい場合、または特定のニーズに合わせてソースコードをカスタマイズする必要がある場合です。
本記事では、git clone からビルド完了までの完全な手順を詳しく紹介します。
前提条件
ソースコードから OpenClaw をビルドするには、以下のツールが必要です。
- Node.js 22+:OpenClaw の最低動作要件です。Bun は使用しないでください。WhatsApp や Telegram の接続処理に既知のバグがあります
- pnpm:OpenClaw プロジェクトはパッケージマネージャーとして pnpm を使用しています
- Git:ソースコードリポジトリのクローンに使用
- C/C++ ビルドツールチェーン:一部のネイティブ依存関係のコンパイルに必要
Node.js 22 のインストール
Node.js がまだインストールされていない場合は、nvm での管理を推奨します。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22
バージョンを確認します。
node --version # v22.x.x と表示されるはずです
pnpm のインストール
Node.js 付属の corepack で pnpm を有効にします。
corepack enable
corepack prepare pnpm@latest --activate
または npm 経由でインストールします。
npm install -g pnpm
インストールを確認します。
pnpm --version
ビルドツールチェーンのインストール
Ubuntu/Debian の場合:
sudo apt install -y build-essential python3
macOS の場合:
xcode-select --install
ソースコードリポジトリのクローン
GitHub から OpenClaw リポジトリをクローンします。
git clone https://github.com/openclaw/openclaw.git
cd openclaw
最新の開発版を使用したい場合:
git checkout dev
特定の安定版をベースにビルドしたい場合:
git tag -l
git checkout v1.0.0 # 実際のバージョン番号に置き換えてください
依存関係のインストール
pnpm を使用してすべてのプロジェクト依存関係をインストールします。
pnpm install
OpenClaw は monorepo プロジェクトで、pnpm がワークスペース内の各パッケージ間の依存関係を自動的に処理します。インストール中に一部のネイティブ Node.js モジュールのコンパイルが必要になる場合があり、これが先に C/C++ ビルドツールチェーンのインストールが必要な理由です。
ネイティブビルドの承認
一部の依存関係にはコンパイルが必要なネイティブコードが含まれています。pnpm はセキュリティ上の理由から、これらのビルドの明示的な承認を要求します。
pnpm approve-builds -g
このコマンドはネイティブコンパイルが必要なすべてのパッケージを一覧表示し、確認を求めます。リストを確認して異常がないことを確認した上で承認してください。
プロジェクトのビルド
OpenClaw のビルドは 2 つのステップに分かれます。まずフロントエンド UI をビルドし、次にプロジェクト全体をビルドします。
フロントエンド Dashboard のビルド
pnpm ui:build
これにより OpenClaw の管理パネルのフロントエンドコードがコンパイルされます。マシンの性能にもよりますが、通常 1〜3 分かかります。
メインプロジェクトのビルド
pnpm build
このコマンドは TypeScript ソースコードのコンパイル、各モジュールのバンドル、最終的な実行可能な成果物の生成を行います。
ビルドが完了すると、プロジェクトのルートディレクトリにビルド成果物が確認できます。
ビルド結果の検証
テストを実行してビルドが正しいことを確認します。
pnpm test
続いて OpenClaw の起動を試みます。
pnpm start
またはビルドされた CLI を直接実行します。
node ./dist/cli.js --version
グローバルコマンドとしてリンク
npm でインストールした場合と同様に、任意の場所で openclaw コマンドを使用したい場合は、pnpm の link 機能を使用できます。
pnpm link --global
その後、システムの任意の場所で実行できます。
openclaw --version
openclaw doctor
設定の初期化
OpenClaw を初めて実行する場合、ガイダンスプログラムを実行します。
openclaw onboard --install-daemon
ガイダンスプログラムが AI モデルの設定、チャットプラットフォームの接続設定を案内し、お使いの OS に応じてデーモンプロセスをインストールします(macOS では LaunchAgent、Linux では systemd サービス)。
設定ファイルは ~/.openclaw/openclaw.json に保存されます。
開発モード
コード貢献を目的とする場合は、開発モードで起動できます。
pnpm dev
開発モードではホットリロードが有効になり、ソースコードの変更後に自動的に再コンパイルとサービスの再起動が行われ、開発効率が大幅に向上します。
プロジェクト構造の概要
プロジェクト構造を理解すると、修正したいコードの場所を特定しやすくなります。
openclaw/
├── packages/
│ ├── core/ # コアエンジン、メッセージルーティングとAIモデルスケジューリング
│ ├── cli/ # コマンドラインツール
│ ├── ui/ # Dashboardフロントエンド
│ ├── whatsapp/ # WhatsAppコネクター
│ ├── telegram/ # Telegramコネクター
│ ├── discord/ # Discordコネクター
│ └── ... # その他のプラットフォームコネクター
├── pnpm-workspace.yaml
└── package.json
ソースコードの更新
アップストリームリポジトリに更新があった場合、最新のコードを取得して再ビルドできます。
git pull origin main
pnpm install
pnpm approve-builds -g
pnpm ui:build
pnpm build
ローカルに変更がある場合は、事前に stash するかブランチ上で作業して、マージコンフリクトを避けることを推奨します。
よくあるビルドの問題
pnpm install が失敗する
Node.js のバージョンが 22 以上で、pnpm のバージョンが十分新しいことを確認してください。キャッシュをクリアして再試行します。
pnpm store prune
rm -rf node_modules
pnpm install
ネイティブモジュールのコンパイルが失敗する
完全なビルドツールチェーンがインストールされているか確認してください。Ubuntu では build-essential と python3 がインストールされていることを確認します。
ui:build でメモリ不足
フロントエンドのビルドは多くのメモリを消費する場合があります。Node.js のメモリ制限を増やすことができます。
NODE_OPTIONS="--max-old-space-size=4096" pnpm ui:build
ビルド後の実行でエラー
openclaw doctor を実行して環境設定を確認し、すべての依存関係のバージョンが互換性があることを確認してください。
まとめ
ソースコードからの OpenClaw のビルド・インストールは、npm で直接インストールするよりも手順が多いですが、完全な制御権を得ることができます。オープンソース貢献への参加、開発版の新機能の利用、OpenClaw の深いカスタマイズなど、ソースコードビルドは欠かせないスキルです。この手順をマスターすれば、OpenClaw の最新の開発進捗に追いつき、コミュニティへの積極的な貢献が可能になります。