Build your first local AI assistant on DGX Station using NemoClaw in a secure sandbox, with optional Telegram.
This single command handles everything: installs Node.js (if needed), installs OpenShell, clones the pinned NemoClaw v0.0.55 release (set via NEMOCLAW_INSTALL_TAG; v0.0.55 is the version the NemoClaw team currently recommends as the most stable), builds the CLI, and runs the onboard wizard to create a sandbox.
curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_INSTALL_TAG=v0.0.55 bash
The installation wizard walks you through setup:
yesYThe installer requires Node.js 22.16+ (installed automatically if missing). It walks you through Node.js, NemoClaw CLI and Onboarding phases. See more details of Onboarding configuration in the next step.
NOTE
If you chose express install in Step 1, all settings are auto-configured with recommended defaults. Skip to Step 3.
During custom setup, the onboard wizard walks you through:
7) Local Ollama.qwen3.6:35b automatically.Y to confirm setting up local inference.telegram, discord or slack) and paste your bot token when prompted.Balanced recommended) and accept/edit the suggested presets when prompted (confirm with Enter).When complete you will see output like:
──────────────────────────────────────────────────
Sandbox my-assistant (Landlock + seccomp + netns)
Model <your-selected-model> (Local Ollama)
──────────────────────────────────────────────────
Run: nemoclaw my-assistant connect
Status: nemoclaw my-assistant status
Logs: nemoclaw my-assistant logs --follow
──────────────────────────────────────────────────
NOTE
nemoclaw is not found after install, run source ~/.bashrc to reload your shell path.NemoClaw Onboarding can be run repeatedly to create multiple sandboxes for independent usecases. Use --name <new-name> to create an additional sandbox alongside any existing ones:
nemoclaw onboard --gpu --name <new-name>
IMPORTANT
Use --name <new-name> to create an additional sandbox without affecting existing ones. The --fresh flag is a destructive option reserved for starting a completely new onboard session — if a sandbox with the same name already exists, --fresh will destroy and recreate it. Only use --fresh when you intend to wipe and re-onboard (see Step 4 for an example where re-prompting is required).
There are two ways to interact with your OpenClaw, Web UI or terminal UI.
Get the full dashboard URL (includes the auto-assigned port and token):
nemoclaw my-assistant dashboard-url --quiet
This prints a URL like http://127.0.0.1:18790/#token=<token>. The port is auto-assigned (commonly 18789 or 18790) and may differ between installs.
If accessing the Web UI directly on the DGX Station (keyboard and monitor attached), open the dashboard URL in a browser.
If accessing the Web UI from a remote machine, you need to set up an SSH tunnel.
First, note the port number from the dashboard URL above (e.g. 18790).
Find your DGX Station's IP address:
hostname -I | awk '{print $1}'
This prints the primary IP address (e.g. 192.168.1.42). You can also find it in Settings > Wi-Fi or Settings > Network on the DGX Station's desktop, or check your router's connected-devices list.
From your remote machine, create an SSH tunnel using the port from above (replace <port> and <your-station-ip>):
ssh -L <port>:127.0.0.1:<port> <your-user>@<your-station-ip>
Now open the dashboard URL in your remote machine's browser.
IMPORTANT
Use 127.0.0.1, not localhost -- the gateway origin check requires an exact match.
NOTE
If the Web UI fails to load and the port forward may be stale, get the port from nemoclaw my-assistant dashboard-url --quiet and reset:
openshell forward stop <port> my-assistant || true
openshell forward start <port> my-assistant --background
Connect to the sandbox:
nemoclaw my-assistant connect
Then launch the terminal UI inside the sandbox:
openclaw tui
You can start chatting with OpenClaw. Press Ctrl+C to exit the terminal UI.
To exit the sandbox:
exit
To add Brave Web Search to an existing sandbox, re-run the onboard wizard with --fresh to start a new session that re-prompts all options (including previously skipped features):
nemoclaw onboard --fresh --gpu
NOTE
Without --fresh, the onboard wizard resumes the previous session and will not re-prompt for features you already skipped.
When you reach Enable Brave Web Search, choose yes and paste the key from the Brave Search API console. Confirm the same sandbox name and inference choices where prompted. The wizard will rebuild the sandbox so the key is applied.
NOTE
Alternatively, set BRAVE_API_KEY in your environment before running the installer and Brave Search will be enabled automatically during onboard.
To confirm web search is enabled, relaunch your OpenClaw WebUI or terminal UI. Ask the agent for something that needs live web search. If requests still fail, recheck policy-list and re-read the onboard output for Brave/API errors.
These steps apply when your sandbox exists but Telegram was never configured (you skipped Messaging channels in Step 2, or the sandbox policy tier never included Telegram-related egress). Replace <sandbox-name> with your sandbox (for example my-assistant).
In Telegram, open @BotFather, send /newbot, and complete the prompts. Copy the bot token BotFather returns and keep it ready for the next step.
nemoclaw <sandbox-name> channels add telegram
Paste the token when prompted. NemoClaw persists credentials and rebuilds the sandbox so OpenClaw can use Telegram as a messaging channel.
If messages fail with network or policy errors after the channel is registered, inspect presets and add Telegram-related egress if your tier omitted it:
nemoclaw <sandbox-name> policy-list
nemoclaw <sandbox-name> policy-add telegram
Preset names follow your selected tier; confirm against Network policies.
Telegram uses long-polling (getUpdates) — the sandbox actively pulls messages from Telegram servers. No public URL or cloudflared tunnel is required for Telegram to work.
Open Telegram, find your bot, and send a message. The bot should forward traffic to the agent in your NemoClaw sandbox and reply.
NOTE
The first response may take longer depending on model size (30B models respond in a few seconds; larger models may take longer on first inference).
NOTE
If the bot does not respond:
nemoclaw <sandbox-name> status to confirm the sandbox is running and inference is healthy.nemoclaw <sandbox-name> logs --follow and look for Telegram-related errors.nemoclaw <sandbox-name> policy-add and select telegram.nemoclaw <sandbox-name> channels add telegram.NOTE
The channels add telegram wizard also prompts for an optional Telegram User ID to restrict who can DM the bot. Send /start to @userinfobot on Telegram to get your numeric user ID. If you skip this, the bot will require device pairing (a terminal-based code confirmation) before responding to messages.
NOTE
For details on restricting which Telegram chats can interact with the agent, see the NemoClaw Telegram bridge documentation.
The cloudflared tunnel provides a public URL for the Web UI dashboard — it is not related to Telegram messaging.
Install cloudflared (DGX Station is aarch64):
curl -L --output cloudflared.deb \
https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb
sudo dpkg -i cloudflared.deb
Start the tunnel:
nemoclaw tunnel start
Verify:
nemoclaw status
You should see ● cloudflared with a trycloudflare.com public URL.
Set up NemoClaw Agents in general require three steps: Configure NemoClaw security policy, Run Agent Workflow Prompt, Personalize the Workflow for your own use case.
Checkout these Example NemoClaw Agents for reference.
Stop the cloudflared tunnel:
nemoclaw tunnel stop
Stop the port forward:
openshell forward list # find active forwards and their ports
openshell forward stop <port> # stop the dashboard forward (use the port shown above)
The NemoClaw CLI includes a built-in uninstaller. It removes all sandboxes, the OpenShell gateway, Docker containers/images/volumes, the CLI, and all state files. Docker, Node.js, npm, and Ollama are preserved.
nemoclaw uninstall --yes
To remove everything including the Ollama model:
nemoclaw uninstall --yes --delete-models
Uninstaller flags:
| Flag | Effect |
|---|---|
--yes | Skip the confirmation prompt |
--keep-openshell | Leave the openshell binary in place |
--delete-models | Also remove the Ollama models pulled by NemoClaw |
NOTE
If the nemoclaw CLI is not available (e.g. install failed partway), use the remote uninstaller as a fallback:
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NemoClaw/refs/heads/main/uninstall.sh | bash -s -- --yes
The uninstaller runs 6 steps:
nemoclaw npm package--delete-models)~/.nemoclaw, ~/.config/openshell, ~/.config/nemoclaw) and the OpenShell binaryNOTE
If you have a local clone at ~/.nemoclaw/source you want to keep, move or back it up before running the uninstaller — it is removed as part of state cleanup in step 6.
| Command | Description |
|---|---|
nemoclaw my-assistant connect | Shell into the sandbox |
nemoclaw my-assistant status | Show sandbox status and inference config |
nemoclaw my-assistant logs --follow | Stream sandbox logs in real time |
nemoclaw list | List all registered sandboxes |
nemoclaw tunnel start | Start cloudflared tunnel (public URL for remote Web UI access) |
nemoclaw tunnel stop | Stop the cloudflared tunnel |
nemoclaw my-assistant dashboard-url --quiet | Print the full tokenized Web UI URL (includes auto-assigned port) |
openshell term | Open the monitoring TUI on the host |
openshell forward list | List active port forwards |
nemoclaw uninstall --yes | Remove NemoClaw (preserves Docker, Node.js, Ollama) |
nemoclaw uninstall --yes --delete-models | Remove NemoClaw and Ollama models |