Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 31 additions & 26 deletions .agents/skills/nemoclaw-user-get-started/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -280,17 +280,31 @@ The example below shows the result if you picked an OpenAI-compatible endpoint d

```text
──────────────────────────────────────────────────
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
──────────────────────────────────────────────────
NemoClaw is ready

Sandbox: my-gpt-claw
Model: openai/openai/gpt-5.5 (Other OpenAI-compatible endpoint)

Start chatting

To change settings later:
Model: nemoclaw inference get
nemoclaw inference set --model <model> --provider <provider> --sandbox my-gpt-claw
Browser:
http://127.0.0.1:18789/

Terminal:
nemoclaw my-gpt-claw connect
then run: openclaw tui

Authenticated dashboard URL, if needed:
nemoclaw my-gpt-claw dashboard-url --quiet

Manage later

Status: nemoclaw my-gpt-claw status
Logs: nemoclaw my-gpt-claw logs --follow
Model: nemoclaw inference set --model <model> --provider <provider> --sandbox my-gpt-claw
Policies: nemoclaw my-gpt-claw policy-add
Credentials: nemoclaw credentials reset <KEY> && nemoclaw onboard
──────────────────────────────────────────────────

[INFO] === Installation complete ===
```
Expand All @@ -307,34 +321,25 @@ The onboard wizard starts a background port forward to the sandbox dashboard, th
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.
If the chosen port becomes occupied after the sandbox build starts, onboarding rolls back the newly-created sandbox and asks you to retry instead of printing an unreachable dashboard URL.
The gateway token is redacted from displayed output; retrieve it explicitly when the browser asks for authentication.
The install transcript does not print the gateway token.
If the browser requires authentication, use the `dashboard-url --quiet` command to print a complete URL explicitly.

```text
──────────────────────────────────────────────────
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.
──────────────────────────────────────────────────
nemoclaw my-gpt-claw dashboard-url --quiet
```

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.
If the browser asks for authentication, run `nemoclaw my-gpt-claw dashboard-url --quiet` and open the returned URL.
Treat the authenticated URL like a password.

### Chat with the Agent from the Terminal

Connect to the sandbox and use the OpenClaw CLI.

```bash
nemoclaw my-assistant connect
```

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

```bash
openclaw agent --agent main --local -m "hello" --session-id test
# inside the sandbox:
openclaw tui
Comment on lines 340 to +342
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use the same sandbox name as the surrounding example.

Line 340 switches to my-assistant, but this section’s walkthrough uses my-gpt-claw. Keeping one sandbox name avoids copy/paste mistakes for first-time users.

Suggested doc fix
-nemoclaw my-assistant connect
+nemoclaw my-gpt-claw connect
 # inside the sandbox:
 openclaw tui
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
nemoclaw my-assistant connect
```
In the sandbox shell, send a single message and print the response.
```bash
openclaw agent --agent main --local -m "hello" --session-id test
# inside the sandbox:
openclaw tui
nemoclaw my-gpt-claw connect
# inside the sandbox:
openclaw tui
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/nemoclaw-user-get-started/SKILL.md around lines 340 - 342,
Update the sandbox name to match the surrounding example by changing the command
that currently uses "my-assistant" to use "my-gpt-claw" (the line with the
command "nemoclaw my-assistant connect"); keep the subsequent sandbox
instruction ("openclaw tui") unchanged so the walkthrough consistently
references "my-gpt-claw".

```

## References
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,16 +79,27 @@ Hermes exposes an OpenAI-compatible API on port `8642`, not a browser dashboard.

```text
──────────────────────────────────────────────────
Sandbox my-hermes (Landlock + seccomp + netns)
Model nvidia/nemotron-3-super-120b-a12b (NVIDIA Endpoints)
──────────────────────────────────────────────────
Run: nemohermes my-hermes connect
Status: nemohermes my-hermes status
Logs: nemohermes my-hermes logs --follow
NemoHermes is ready

Sandbox: my-hermes
Model: nvidia/nemotron-3-super-120b-a12b (NVIDIA Endpoints)

Access

Hermes Agent OpenAI-compatible API
Port 8642 must be forwarded before connecting.
http://127.0.0.1:8642/v1

Terminal:
nemohermes my-hermes connect

Manage later

Hermes Agent OpenAI-compatible API
Port 8642 must be forwarded before connecting.
http://127.0.0.1:8642/v1
Status: nemohermes my-hermes status
Logs: nemohermes my-hermes logs --follow
Model: nemohermes inference set --model <model> --provider <provider> --sandbox my-hermes
Policies: nemohermes my-hermes policy-add
Credentials: nemohermes credentials reset <KEY> && nemohermes onboard
──────────────────────────────────────────────────
```

Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/nemoclaw-user-reference/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: "Describes the NemoClaw plugin and blueprint architecture and how t
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
<!-- SPDX-License-Identifier: Apache-2.0 -->

# Architecture
# Architecture Details

## References

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
<!-- SPDX-License-Identifier: Apache-2.0 -->
# Architecture
# Architecture Details

NemoClaw combines a host CLI, a TypeScript plugin that runs with OpenClaw inside the sandbox, and a versioned YAML blueprint that defines the sandbox image, policies, and inference profiles applied through OpenShell.

Expand Down
25 changes: 24 additions & 1 deletion .agents/skills/nemoclaw-user-reference/references/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -425,10 +425,33 @@ If one log source is unavailable, NemoClaw prints a warning and keeps reading th
$ nemoclaw my-assistant logs [--follow] [--tail <lines>|-n <lines>] [--since <duration>]
```

### `nemoclaw <name> dashboard-url`

Print the authenticated OpenClaw dashboard URL for a running sandbox.
Use this when you are on a remote machine, using an SSH or reverse tunnel, or need a complete URL for a browser session.

```console
$ nemoclaw my-assistant dashboard-url
$ nemoclaw my-assistant dashboard-url --quiet
```

The default output includes a label and a warning.
Pass `--quiet` or `-q` to print only the URL to stdout so scripts can capture it:

```console
$ URL=$(nemoclaw my-assistant dashboard-url --quiet)
```

**Warning:**

Treat the authenticated dashboard URL like a password.
Do not log it, share it, or commit it to version control.

### `nemoclaw <name> gateway-token`

Print the OpenClaw gateway auth token for a running sandbox to stdout.
The token is required by `openclaw tui` and the OpenClaw dashboard URL, but onboarding only prints it once.
The token is required by `openclaw tui` and the OpenClaw dashboard URL.
Use `dashboard-url` for browser access; use `gateway-token` only when automation needs the raw token.
Pipe it into automation or capture it into an environment variable:

```console
Expand Down
29 changes: 20 additions & 9 deletions docs/get-started/quickstart-hermes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -88,16 +88,27 @@ Hermes exposes an OpenAI-compatible API on port `8642`, not a browser dashboard.

```text
──────────────────────────────────────────────────
Sandbox my-hermes (Landlock + seccomp + netns)
Model nvidia/nemotron-3-super-120b-a12b (NVIDIA Endpoints)
──────────────────────────────────────────────────
Run: nemohermes my-hermes connect
Status: nemohermes my-hermes status
Logs: nemohermes my-hermes logs --follow
NemoHermes is ready

Sandbox: my-hermes
Model: nvidia/nemotron-3-super-120b-a12b (NVIDIA Endpoints)

Access

Hermes Agent OpenAI-compatible API
Port 8642 must be forwarded before connecting.
http://127.0.0.1:8642/v1

Terminal:
nemohermes my-hermes connect

Manage later

Hermes Agent OpenAI-compatible API
Port 8642 must be forwarded before connecting.
http://127.0.0.1:8642/v1
Status: nemohermes my-hermes status
Logs: nemohermes my-hermes logs --follow
Model: nemohermes inference set --model <model> --provider <provider> --sandbox my-hermes
Policies: nemohermes my-hermes policy-add
Credentials: nemohermes credentials reset <KEY> && nemohermes onboard
──────────────────────────────────────────────────
```

Expand Down
57 changes: 31 additions & 26 deletions docs/get-started/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -294,17 +294,31 @@ The example below shows the result if you picked an OpenAI-compatible endpoint d

```text
──────────────────────────────────────────────────
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
──────────────────────────────────────────────────
NemoClaw is ready

Sandbox: my-gpt-claw
Model: openai/openai/gpt-5.5 (Other OpenAI-compatible endpoint)

Start chatting

To change settings later:
Model: nemoclaw inference get
nemoclaw inference set --model <model> --provider <provider> --sandbox my-gpt-claw
Browser:
http://127.0.0.1:18789/

Terminal:
nemoclaw my-gpt-claw connect
then run: openclaw tui

Authenticated dashboard URL, if needed:
nemoclaw my-gpt-claw dashboard-url --quiet

Manage later

Status: nemoclaw my-gpt-claw status
Logs: nemoclaw my-gpt-claw logs --follow
Model: nemoclaw inference set --model <model> --provider <provider> --sandbox my-gpt-claw
Policies: nemoclaw my-gpt-claw policy-add
Credentials: nemoclaw credentials reset <KEY> && nemoclaw onboard
──────────────────────────────────────────────────

[INFO] === Installation complete ===
```
Expand All @@ -321,34 +335,25 @@ The onboard wizard starts a background port forward to the sandbox dashboard, th
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.
If the chosen port becomes occupied after the sandbox build starts, onboarding rolls back the newly-created sandbox and asks you to retry instead of printing an unreachable dashboard URL.
The gateway token is redacted from displayed output; retrieve it explicitly when the browser asks for authentication.
The install transcript does not print the gateway token.
If the browser requires authentication, use the `dashboard-url --quiet` command to print a complete URL explicitly.

```text
──────────────────────────────────────────────────
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.
──────────────────────────────────────────────────
nemoclaw my-gpt-claw dashboard-url --quiet
```

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.
If the browser asks for authentication, run `nemoclaw my-gpt-claw dashboard-url --quiet` and open the returned URL.
Treat the authenticated URL like a password.

### Chat with the Agent from the Terminal

Connect to the sandbox and use the OpenClaw CLI.

```bash
nemoclaw my-assistant connect
```

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

```bash
openclaw agent --agent main --local -m "hello" --session-id test
# inside the sandbox:
openclaw tui
```

## Next Steps
Expand Down
25 changes: 24 additions & 1 deletion docs/reference/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -432,10 +432,33 @@ If one log source is unavailable, NemoClaw prints a warning and keeps reading th
$ nemoclaw my-assistant logs [--follow] [--tail <lines>|-n <lines>] [--since <duration>]
```

### `nemoclaw <name> dashboard-url`

Print the authenticated OpenClaw dashboard URL for a running sandbox.
Use this when you are on a remote machine, using an SSH or reverse tunnel, or need a complete URL for a browser session.

```console
$ nemoclaw my-assistant dashboard-url
$ nemoclaw my-assistant dashboard-url --quiet
```

The default output includes a label and a warning.
Pass `--quiet` or `-q` to print only the URL to stdout so scripts can capture it:

```console
$ URL=$(nemoclaw my-assistant dashboard-url --quiet)
```

<Warning>
Treat the authenticated dashboard URL like a password.
Do not log it, share it, or commit it to version control.
</Warning>

### `nemoclaw <name> gateway-token`

Print the OpenClaw gateway auth token for a running sandbox to stdout.
The token is required by `openclaw tui` and the OpenClaw dashboard URL, but onboarding only prints it once.
The token is required by `openclaw tui` and the OpenClaw dashboard URL.
Use `dashboard-url` for browser access; use `gateway-token` only when automation needs the raw token.
Pipe it into automation or capture it into an environment variable:

```console
Expand Down
29 changes: 5 additions & 24 deletions scripts/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -466,41 +466,22 @@ print_done() {
printf " ${C_GREEN}${C_BOLD}%s${C_RESET} ${C_DIM}(%ss)${C_RESET}\n" "$_CLI_DISPLAY" "$elapsed"
printf "\n"
if [[ "$ONBOARD_RAN" == true ]]; then
local sandbox_name agent_name
sandbox_name="$(resolve_default_sandbox_name)"
local agent_name
agent_name="$(resolve_onboarded_agent)"
if [[ "$_needs_cli_refresh" == true ]]; then
printf " ${C_YELLOW}%s installed, but this shell needs PATH refresh before '%s' will run.${C_RESET}\n" "$_CLI_DISPLAY" "$_CLI_BIN"
printf " ${C_DIM}Onboarding completed; refresh PATH before using the CLI from this terminal.${C_RESET}\n"
printf "\n"
printf " ${C_GREEN}For this terminal:${C_RESET}\n"
print_cli_path_refresh_actions
else
if [[ "$agent_name" == "openclaw" || -z "$agent_name" ]]; then
printf " ${C_GREEN}Your OpenClaw Sandbox is live.${C_RESET}\n"
else
printf " ${C_GREEN}Your %s Sandbox is live.${C_RESET}\n" "$(agent_display_name "$agent_name")"
fi
printf " ${C_DIM}Sandbox in, break things, and tell us what you find.${C_RESET}\n"
fi
printf "\n"
printf " ${C_GREEN}Next:${C_RESET}\n"
if [[ "$_needs_cli_refresh" == true ]]; then
print_cli_path_refresh_actions
else
printf " %s$%s source %s\n" "$C_GREEN" "$C_RESET" "$(detect_shell_profile)"
printf " ${C_DIM}Use the Start chatting section above for browser and terminal options.${C_RESET}\n"
fi
printf " %s$%s %s %s connect\n" "$C_GREEN" "$C_RESET" "$_CLI_BIN" "$sandbox_name"
local agent_cmd
case "$agent_name" in
hermes)
agent_cmd="hermes"
;;
"" | openclaw)
agent_cmd="openclaw tui"
;;
*)
agent_cmd="$agent_name"
;;
esac
printf " %ssandbox@%s$%s %s\n" "$C_GREEN" "$sandbox_name" "$C_RESET" "$agent_cmd"
elif [[ "$NEMOCLAW_READY_NOW" == true ]]; then
if [[ "$_needs_cli_refresh" == true ]]; then
printf " ${C_YELLOW}%s CLI is installed, but this shell needs PATH refresh before '%s' will run.${C_RESET}\n" "$_CLI_DISPLAY" "$_CLI_BIN"
Expand Down
Loading
Loading