NemoClaw Quickstart with OpenClaw#

Follow these steps to get started with NemoClaw and your first sandboxed OpenClaw agent.

Note

Make sure you have completed reviewing the Prerequisites before following this guide.

Install NemoClaw and Onboard OpenClaw Agent#

Download and run the installer script. The script installs Node.js if it is not already present, then runs the guided onboard wizard to create a sandbox, configure inference, and apply security policies.

Note

NemoClaw creates a fresh OpenClaw instance inside the sandbox during the onboarding process.

curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash

The piped installer prompts through your terminal. In headless scripts or CI, pass explicit acceptance to the bash side of the pipe:

$ curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_NON_INTERACTIVE=1 NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE=1 bash

If you use nvm or fnm to manage Node.js, the installer might not update your current shell’s PATH. If nemoclaw is not found after install, run source ~/.bashrc (or source ~/.zshrc for zsh) or open a new terminal.

Note

The onboard flow builds the sandbox image with NEMOCLAW_DISABLE_DEVICE_AUTH=1 so the dashboard is immediately usable during setup. This is a build-time setting baked into the sandbox image, not a runtime knob. If you export NEMOCLAW_DISABLE_DEVICE_AUTH after onboarding finishes, it has no effect on an existing sandbox.

Respond to the Onboard Wizard#

After the installer launches nemoclaw onboard, the wizard runs preflight checks, starts or reuses the OpenShell gateway, and asks for an inference provider, sandbox name, optional web search, optional messaging channels, and network policy presets. At any prompt, press Enter to accept the default shown in [brackets], type back to return to the previous prompt, or type exit to quit. If existing sandbox sessions are running, the installer warns before onboarding because the setup can rebuild or upgrade sandboxes after the new sandbox launches.

The inference provider prompt presents a numbered list.

  1) NVIDIA Endpoints
  2) OpenAI
  3) Other OpenAI-compatible endpoint
  4) Anthropic
  5) Other Anthropic-compatible endpoint
  6) Google Gemini
  7) Local Ollama (localhost:11434)
  Choose [1]:

Pick the option that matches where you want inference traffic to go, then expand the matching helper below for the follow-up prompts and the API key environment variable to set. For the full list of providers and validation behavior, refer to Inference Options. Local Ollama appears when NemoClaw detects a usable local Ollama path or can offer an install or start action for your platform.

Tip

Export the API key before launching the installer so the wizard does not have to ask for it. For example, run export NVIDIA_API_KEY=<your-key> before curl ... | bash. If you entered a key incorrectly, refer to Reset a Stored Credential to clear and re-enter it.

Option 1: NVIDIA Endpoints

Routes inference to models hosted on build.nvidia.com.

Use NVIDIA_API_KEY for the API key. Get one from the NVIDIA build API keys page.

Respond to the wizard as follows.

  1. At the Choose [1]: prompt, press Enter (or type 1) to select NVIDIA Endpoints.

  2. At the NVIDIA_API_KEY: prompt, paste your key if it is not already exported.

  3. At the Choose model [1]: prompt, pick a curated model from the list (for example, Nemotron 3 Super 120B, GLM-5, MiniMax M2.7, GPT-OSS 120B, or DeepSeek V4 Pro), or pick Other... to enter any model ID from the NVIDIA Endpoints catalog.

NemoClaw validates the model against the catalog API before creating the sandbox.

Tip

Use this option for Nemotron and other models hosted on build.nvidia.com. If you run NVIDIA Nemotron from a self-hosted NIM, an enterprise gateway, or any other endpoint, choose Option 3 instead, since all Nemotron models expose OpenAI-compatible APIs.

Option 2: OpenAI

Routes inference to the OpenAI API at https://api.openai.com/v1.

Use OPENAI_API_KEY for the API key. Get one from the OpenAI API keys page.

Respond to the wizard as follows.

  1. At the Choose [1]: prompt, type 2 to select OpenAI.

  2. At the OPENAI_API_KEY: prompt, paste your key if it is not already exported.

  3. At the Choose model [1]: prompt, pick a curated model (for example, gpt-5.4, gpt-5.4-mini, gpt-5.4-nano, or gpt-5.4-pro-2026-03-05), or pick Other… to enter any OpenAI model ID.

Option 3: Other OpenAI-Compatible Endpoint

Routes inference to any server that implements /v1/chat/completions, including OpenRouter, LocalAI, llama.cpp, vLLM behind a proxy, and any compatible gateway.

Use COMPATIBLE_API_KEY for the API key. Set it to whatever credential your endpoint expects. If your endpoint does not require auth, use any non-empty placeholder.

Respond to the wizard as follows.

  1. At the Choose [1]: prompt, type 3 to select Other OpenAI-compatible endpoint.

  2. At the OpenAI-compatible base URL prompt, enter the provider’s base URL. Find the exact value in your provider’s API documentation. NemoClaw appends /v1 automatically, so leave that suffix off.

  3. At the COMPATIBLE_API_KEY: prompt, paste your key if it is not already exported.

  4. At the Other OpenAI-compatible endpoint model []: prompt, enter the model ID exactly as it appears in your provider’s model catalog.

For example, when you use NVIDIA’s OpenAI-compatible inference endpoint, enter https://inference-api.nvidia.com as the base URL and the model ID your endpoint exposes, such as openai/openai/gpt-5.5.

NemoClaw sends a real inference request to validate the endpoint and model. If the endpoint does not return the streaming events OpenClaw needs from the Responses API, NemoClaw falls back to the chat completions API and configures OpenClaw to use openai-completions.

Tip

NVIDIA Nemotron models expose OpenAI-compatible APIs, so this option is the right choice for any Nemotron deployment that does not live on build.nvidia.com. Common examples include a self-hosted NIM container, an enterprise NVIDIA AI Enterprise gateway, or a vLLM/SGLang server running Nemotron weights. Point the base URL at your endpoint and enter the Nemotron model ID exactly as your server reports it.

Option 4: Anthropic

Routes inference to the Anthropic Messages API at https://api.anthropic.com.

Use ANTHROPIC_API_KEY for the API key. Get one from the Anthropic console keys page.

Respond to the wizard as follows.

  1. At the Choose [1]: prompt, type 4 to select Anthropic.

  2. At the ANTHROPIC_API_KEY: prompt, paste your key if it is not already exported.

  3. At the Choose model [1]: prompt, pick a curated model (for example, claude-sonnet-4-6, claude-haiku-4-5, or claude-opus-4-6), or pick Other… to enter any Claude model ID.

Option 5: Other Anthropic-Compatible Endpoint

Routes inference to any server that implements the Anthropic Messages API at /v1/messages, including Claude proxies, Bedrock-compatible gateways, and self-hosted Anthropic-compatible servers.

Use COMPATIBLE_ANTHROPIC_API_KEY for the API key. Set it to whatever credential your endpoint expects.

Respond to the wizard as follows.

  1. At the Choose [1]: prompt, type 5 to select Other Anthropic-compatible endpoint.

  2. At the Anthropic-compatible base URL prompt, enter the proxy or gateway’s base URL from its documentation.

  3. At the COMPATIBLE_ANTHROPIC_API_KEY: prompt, paste your key if it is not already exported.

  4. At the Other Anthropic-compatible endpoint model []: prompt, enter the model ID exactly as it appears in your gateway’s model catalog.

Option 6: Google Gemini

Routes inference to Google’s OpenAI-compatible Gemini endpoint at https://generativelanguage.googleapis.com/v1beta/openai/.

Use GEMINI_API_KEY for the API key. Get one from Google AI Studio API keys.

Respond to the wizard as follows.

  1. At the Choose [1]: prompt, type 6 to select Google Gemini.

  2. At the GEMINI_API_KEY: prompt, paste your key if it is not already exported.

  3. At the Choose model [5]: prompt, pick a curated model (for example, gemini-3.1-pro-preview, gemini-3.1-flash-lite-preview, gemini-3-flash-preview, gemini-2.5-pro, gemini-2.5-flash, or gemini-2.5-flash-lite), or pick Other… to enter any Gemini model ID.

Option 7: Local Ollama

Routes inference to a local Ollama instance. Depending on your platform, the wizard can use an existing daemon, start an installed daemon, or offer an install action.

No API key is required. On non-WSL hosts, NemoClaw generates a token and starts an authenticated proxy so containers can reach Ollama without exposing the daemon directly to your network. On WSL, NemoClaw can also use Ollama on the Windows host through host.docker.internal.

Respond to the wizard as follows.

  1. At the Choose [1]: prompt, type 7 to select Local Ollama.

  2. At the Choose model [1]: prompt, pick from Ollama models if any are already installed. If none are installed, pick a starter model to pull and load now, or pick Other… to enter any Ollama model ID.

For setup details, including GPU recommendations and starter model choices, refer to Use a Local Inference Server.

Experimental: Local NIM and Local vLLM

These options appear when NEMOCLAW_EXPERIMENTAL=1 is set and the prerequisites are met.

  • Local NVIDIA NIM requires a NIM-capable GPU. NemoClaw pulls and manages a NIM container.

  • Local vLLM uses a vLLM server already running on localhost:8000, or installs and starts a managed vLLM container on supported DGX Spark, DGX Station, and Linux NVIDIA GPU hosts. NemoClaw auto-detects the loaded model.

For setup, refer to Use a Local Inference Server.

Review the Configuration Before the Sandbox Build#

After you enter the sandbox name, the wizard prints a review summary and asks for final confirmation before registering the provider, prompting for optional integrations, and building the sandbox image. For example, if you picked an OpenAI-compatible endpoint, the summary looks like the following:

  ──────────────────────────────────────────────────
  Review configuration
  ──────────────────────────────────────────────────
  Provider:      compatible-endpoint
  Model:         openai/openai/gpt-5.5
  API key:       COMPATIBLE_API_KEY (staged for OpenShell gateway registration)
  Web search:    disabled
  Messaging:     none
  Sandbox name:  my-gpt-claw
  Note:          Sandbox build typically takes 5–15 minutes on this host.
  ──────────────────────────────────────────────────
  Web search and messaging channels will be prompted next.
  Apply this configuration? [Y/n]:

The default is Y, so you can press Enter once to continue. Answer n to abort cleanly, fix the entries, and re-run nemoclaw onboard.

Non-interactive runs (NEMOCLAW_NON_INTERACTIVE=1) print the summary for log clarity but skip the prompt.

Configure Web Search and Messaging#

After you confirm the summary, NemoClaw registers the selected provider with the OpenShell gateway and sets the inference.local route. The wizard then asks whether to enable Brave Web Search. If you enable it, enter a Brave Search API key when prompted.

The wizard also offers messaging channels such as Telegram, Discord, and Slack. Press a channel number to toggle it, then press Enter to continue. If you select a channel, NemoClaw validates the token format before it bakes the channel configuration into the sandbox. For example, Slack bot tokens must start with xoxb-.

Choose Network Policy Presets#

After the sandbox image builds and OpenClaw starts inside the sandbox, NemoClaw asks which network policy tier to apply. The default Balanced tier includes common development presets such as npm, PyPI, Hugging Face, Homebrew, and Brave Search. Use the arrow keys or j and k to move, Space to select, and Enter to confirm.

The preset selector lets you include more destinations, such as GitHub, Jira, Slack, Telegram, or local inference. Press r to toggle a selected preset between read-only and read-write when the preset supports both modes.

When the install completes, a summary confirms the running environment. The Model and provider line reflects the inference option you picked during onboarding. The example below shows the result if you picked an OpenAI-compatible endpoint during onboarding.

──────────────────────────────────────────────────
Sandbox      my-gpt-claw (Landlock + seccomp + netns)
Model        openai/openai/gpt-5.5 (Other OpenAI-compatible endpoint)
──────────────────────────────────────────────────
Run:         nemoclaw my-gpt-claw connect
Status:      nemoclaw my-gpt-claw status
Logs:        nemoclaw my-gpt-claw logs --follow
──────────────────────────────────────────────────

[INFO]  === Installation complete ===

If you picked a different option, the Model line shows that provider’s model and label instead. For example, you might see gpt-5.4 (OpenAI), claude-sonnet-4-6 (Anthropic), gemini-2.5-flash (Google Gemini), llama3.1:8b (Local Ollama), or <your-model> (Other OpenAI-compatible endpoint).

Run Your First Agent Prompt#

You can chat with the agent from the terminal or the browser.

Open the OpenClaw UI in a Browser to Chat with the Agent#

The onboard wizard starts a background port forward to the sandbox dashboard, then prints the dashboard URL in the install summary. The default host port is 18789. If that port is already taken, NemoClaw uses the next free dashboard port, such as 18790, and prints that port in the final URL. The gateway token is redacted from displayed output; retrieve it explicitly when the browser asks for authentication.

──────────────────────────────────────────────────
OpenClaw UI (auth token redacted from displayed URLs)
Port 18790 must be forwarded before opening these URLs.
Dashboard: http://127.0.0.1:18790/
Token:       nemoclaw my-gpt-claw gateway-token --quiet
             append  #token=<token> locally if the browser asks for auth.
──────────────────────────────────────────────────

Open the dashboard URL in your browser. If the browser asks for authentication, run the printed gateway-token --quiet command and append #token=<token> locally. Treat the token like a password.

Chat with the Agent from the Terminal#

Connect to the sandbox and use the OpenClaw CLI.

nemoclaw my-assistant connect

In the sandbox shell, send a single message and print the response.

openclaw agent --agent main --local -m "hello" --session-id test

Next Steps#