nemoclaw-setup について
nemoclaw-setup は、Linux で NVIDIA NemoClaw を導入・設定するためのガイドです。サンドボックス化された AI エージェント環境を構築する人向けに、初期設定、Web UI、リモートアクセス、カスタムスキルを説明します。
主な機能
- 01NemoClaw と OpenShell の確認・導入
- 02Docker、cgroup、NVIDIA API key の設定
- 03オンボーディングウィザードでのサンドボックス作成
- 04Web UI のポートフォワーディング設定
- 05Cloudflare Tunnel によるリモートアクセス設定
- 06カスタムスキルの導入とワークスペース設定
活用シーン
- 01Linux ホストでの NemoClaw サンドボックス構築
- 02Web UI またはターミナルからのサンドボックス接続
- 03NemoClaw Web UI のリモートアクセス設定
- 04Docker、ポート転送、ゲートウェイの問題調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jezweb/ claude-skills --skill nemoclaw-setupインストール後、Claude Code で/nemoclaw-setupを入力して読み込まれたか確認します。
詳細
NemoClaw のセットアップ
NVIDIA NemoClaw をインストールします。NemoClaw は、Landlock + seccomp + ネットワーク名前空間による分離機能を備えた、OpenClaw ベースのサンドボックス型 AI エージェントプラットフォームです。k3s(OpenShell)を介して Docker 内で実行されます。
利用できる機能
- Web UI とターミナル CLI を備えたサンドボックス型 AI エージェント
- NVIDIA Nemotron モデルを利用(クラウドまたはローカル)
- ネットワークポリシーによって制御される外部サービスへのアクセス
- Cloudflare Tunnel を利用したオプションのリモートアクセス
前提条件
| 要件 | 確認方法 | インストール方法 |
|---|---|---|
| Linux(Ubuntu 22.04 以降) | uname -a | — |
| Docker | docker ps | sudo apt install docker.io |
| Node.js 20 以降(22 を推奨) | node --version | nvm install 22 |
| NVIDIA GPU(任意ですが推奨) | nvidia-smi | — |
| NVIDIA API キー | — | https://build.nvidia.com/settings/api-keys |
ワークフロー
ステップ 1:事前確認
# Check Docker
docker ps 2>/dev/null || echo "Docker not running or no access"
# Check Node.js
node --version
# Check if already installed
which nemoclaw && nemoclaw --version
which openshell && openshell --version
すでに nemoclaw がインストールされている場合は、ステップ 4 に進んでください。
ステップ 2:NemoClaw をインストール
curl -fsSL https://nvidia.com/nemoclaw.sh | bash
これにより、npm を使って NemoClaw と OpenClaw がグローバルにインストールされます(~/.npm-global/bin/ 内)。
インストーラーが Node.js を見つけられない場合は、先にインストールしてください。
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
ステップ 3:OpenShell をインストール
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
~/.local/bin/openshell にインストールされます。
ステップ 4:Docker の権限と cgroup を修正
Docker グループ — ユーザーは docker グループに所属している必要があります。
sudo usermod -aG docker $USER
newgrp docker
# or log out and back in
cgroup v2 の修正 — Docker 内で k3s を実行するために必要です。
# Check if needed
grep cgroup2 /proc/filesystems && echo "cgroup v2 detected — fix needed"
# Apply fix (needs sudo)
sudo $HOME/.npm-global/bin/nemoclaw setup-spark
/etc/docker/daemon.json に "default-cgroupns-mode": "host" を追加し、Docker を再起動します。
重要:nemoclaw setup-spark コマンドでは NVIDIA API キーも求められます。あらかじめ用意してください(nvapi- で始まります)。https://build.nvidia.com/settings/api-keys から取得できます。
ステップ 5:初期設定を実行
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw onboard
対話型ウィザードでは、次の操作を行います。
- Docker と OpenShell を確認します
- OpenShell ゲートウェイを起動します(Docker 内の k3s)
- サンドボックス名を尋ねられます。
clawまたは任意の名前を使用してください - NVIDIA API キーを設定します
- 推論を設定します(クラウド API 経由の Nemotron 3 Super 120B)
- サンドボックス内で OpenClaw を起動します
- ネットワークポリシーのプリセットを適用します。必要なものを選択してください
よくあるポート競合:ポート 8080 が使用中の場合は、プロセスを探して終了してください。
fuser -k 8080/tcp
ステップ 6:確認
# Check sandbox is running
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw claw status
# Connect via terminal
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw claw connect
ステップ 7:Web UI へのアクセスを設定
Web UI はサンドボックス内で実行されるため、ポートフォワードが必要です。
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH openshell forward start 18789 claw
次に、http://127.0.0.1:18789/ を開きます。
既知のバグ(OpenClaw ≤ v2026.3.11):「device identity required」エラーが発生します。回避策として、ゲートウェイトークンを URL に追加してください。
# Get the token
ssh -F /tmp/nemoclaw-ssh-config openshell-claw \
"python3 -c \"import json; print(json.load(open('/sandbox/.openclaw/openclaw.json'))['gateway']['auth']['token'])\""
次に、http://127.0.0.1:18789/#token=<gateway-token> にアクセスします。
修正方法:OpenClaw v2026.3.12 以降に更新してください(下記の「更新」セクションを参照)。
ステップ 8:ポートフォワードを永続化
ヘルスチェック付きのキープアライブスクリプトを作成します。
cat > ~/.local/bin/nemoclaw-keepalive.sh << 'KEEPALIVE'
#!/bin/bash
export PATH="$HOME/.npm-global/bin:$HOME/.local/bin:/usr/local/bin:/usr/bin:/bin"
cleanup() { kill %1 2>/dev/null; exit 0; }
trap cleanup SIGTERM SIGINT
while true; do
fuser -k 18789/tcp 2>/dev/null; sleep 1
openshell forward start 18789 claw &
FORWARD_PID=$!; sleep 3
while kill -0 $FORWARD_PID 2>/dev/null; do
if ! curl -sf -o /dev/null --connect-timeout 3 http://127.0.0.1:18789/ 2>/dev/null; then
echo "$(date): Health check failed, restarting..."
kill $FORWARD_PID 2>/dev/null; wait $FORWARD_PID 2>/dev/null; break
fi
sleep 10
done
echo "$(date): Forward died, restarting in 3s..."; sleep 3
done
KEEPALIVE
chmod +x ~/.local/bin/nemoclaw-keepalive.sh
systemd サービスを作成します。
sudo tee /etc/systemd/system/nemoclaw-forward.service << 'SERVICE'
[Unit]
Description=NemoClaw Port Forward with Health Check
After=docker.service
Requires=docker.service
[Service]
Type=simple
User=$USER
Group=docker
Environment=PATH=/home/$USER/.npm-global/bin:/home/$USER/.local/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=/home/$USER/.local/bin/nemoclaw-keepalive.sh
Restart=always
RestartSec=5
KillMode=control-group
[Install]
WantedBy=multi-user.target
SERVICE
sudo systemctl daemon-reload
sudo systemctl enable nemoclaw-forward
sudo systemctl start nemoclaw-forward
ステップ 9:Cloudflare Tunnel 経由のリモートアクセス(任意)
すでに Cloudflare Tunnel を実行している場合は、NemoClaw を追加します。
DNS ルートを追加:
cloudflared tunnel route dns <tunnel-name> nemoclaw.<domain>
トンネル設定を更新(/etc/cloudflared/config.yml):
- hostname: nemoclaw.<domain>
service: http://localhost:18789
originRequest:
httpHostHeader: "127.0.0.1:18789"
トンネルを再起動:
sudo systemctl restart cloudflared
サンドボックスの許可オリジンを更新 — サンドボックスに SSH で接続し、ドメインを追加します。
openshell sandbox ssh-config claw > /tmp/nemoclaw-ssh-config
ssh -F /tmp/nemoclaw-ssh-config openshell-claw 'python3 -c "
import json
with open(\"/sandbox/.openclaw/openclaw.json\") as f:
config = json.load(f)
config[\"gateway\"][\"controlUi\"][\"allowedOrigins\"].append(\"https://nemoclaw.<domain>\")
config[\"gateway\"][\"trustedProxies\"] = [\"127.0.0.1\", \"::1\", \"172.0.0.0/8\", \"10.0.0.0/8\"]
config[\"gateway\"][\"allowRealIpFallback\"] = True
with open(\"/sandbox/.openclaw/openclaw.json\", \"w\") as f:
json.dump(config, f, indent=2)
print(\"Done. Token:\", config[\"gateway\"][\"auth\"][\"token\"])
"'
Cloudflare Access で保護 — Zero Trust ダッシュボードの Access アプリケーションにホスト名を追加します。
アクセス URL:https://nemoclaw.<domain>/#token=<gateway-token>
ステップ 10:カスタムスキルをインストール
スキルは /sandbox/.openclaw/skills/<name>/SKILL.md にある Markdown ファイルです。サンドボックスに SSH で接続して作成します。
ssh -F /tmp/nemoclaw-ssh-config openshell-claw
mkdir -p /sandbox/.openclaw/skills/my-skill
cat > /sandbox/.openclaw/skills/my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: What this skill does.
tools: [exec, read, write]
---
# My Skill
Instructions for the agent...
EOF
openclaw skills list で確認します。
ステップ 11:ワークスペースを設定
エージェントがあなたについて把握できるように、ワークスペースファイルを更新します。
/sandbox/.openclaw/workspace/USER.md— プロフィールと設定/sandbox/.openclaw/workspace/TOOLS.md— 利用可能なツールとアクセス権/sandbox/.openclaw/workspace/SOUL.md— エージェントの個性と振る舞い
OpenClaw の更新
サンドボックスには、インストール時の OpenClaw が含まれています。更新するには、次の手順を実行します。
# 1. Update host-side packages
npm install -g openclaw@latest
# 2. Destroy and recreate sandbox
nemoclaw claw destroy
nemoclaw onboard
# 3. Reconfigure remote access (Step 9) and skills (Step 10)
注:サンドボックスのネットワークポリシーにより、サンドボックス内では npm/PyPI がブロックされます。更新するには再ビルドする必要があります。
トラブルシューティング
| 問題 | 原因 | 対処方法 |
|---|---|---|
Docker is not running | Docker サービスが停止しているか、ユーザーが docker グループに属していません | sudo systemctl start docker を実行してから newgrp docker を実行します |
cgroup v2 detected | Docker が cgroupns=host 用に設定されていません | sudo nemoclaw setup-spark |
| ポート 8080 が使用中です | そのポートで別のサービスが実行されています | fuser -k 8080/tcp |
nemoclaw: command not found | PATH に含まれていません | PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH |
device identity required | OpenClaw ≤ v2026.3.11 のバグです | URL に #token=<gateway-token> を追加するか、v2026.3.12 以降に更新します |
gateway token mismatch | サンドボックスの再構築後にトークンが変更されました | サンドボックス設定から新しいトークンを取得します |
too many failed auth attempts | 古いトークンでの試行によりレート制限されています | ゲートウェイを再起動します:ssh -F /tmp/nemoclaw-ssh-config openshell-claw 'pkill -f "openclaw gateway"; sleep 2; openclaw gateway &' |
origin not allowed | ドメインが allowedOrigins に含まれていません | サンドボックス設定の gateway.controlUi.allowedOrigins に追加します |
| ポート 18789 が応答しません | SSH トンネルが切断されました | sudo systemctl restart nemoclaw-forward(13 秒以内に自動復旧します) |
| サンドボックス内で npm 403 Forbidden が発生します | ネットワークポリシーが TLS をブロックしています | サンドボックス内にはパッケージをインストールできません。代わりに再構築してください |
DNS ルートで Tunnel not found が発生します | Cloudflare アカウントまたは証明書が誤っています | cloudflared tunnel list が証明書と一致することを確認します |
| Cloudflare でエラー 502 が発生します | トンネル接続が切断されました | sudo systemctl restart cloudflared |
| Cloudflare 経由でアセットが 404 になります | ブラウザーがサブリクエストで認証されていません | Cloudflare Access にログインした後、ハードリフレッシュします(Ctrl+Shift+R) |
アーキテクチャ
Docker (openshell-cluster-<name>)
└─ k3s cluster
├─ NVIDIA device plugin
└─ OpenShell sandbox
├─ OpenClaw agent
├─ NemoClaw plugin
├─ Gateway (WebSocket + REST)
└─ Workspace (SOUL.md, USER.md, TOOLS.md, skills/)
Port forward (systemd): localhost:18789 ←SSH tunnel→ sandbox:18789
Cloudflare Tunnel (optional): nemoclaw.domain → localhost:18789