Skip to content

docs(reference): add env-var index + lifecycle + v0.0.50 runtime (#3059)#4170

Open
latenighthackathon wants to merge 2 commits into
NVIDIA:mainfrom
latenighthackathon:docs/3652-env-var-index-v2
Open

docs(reference): add env-var index + lifecycle + v0.0.50 runtime (#3059)#4170
latenighthackathon wants to merge 2 commits into
NVIDIA:mainfrom
latenighthackathon:docs/3652-env-var-index-v2

Conversation

@latenighthackathon
Copy link
Copy Markdown
Contributor

@latenighthackathon latenighthackathon commented May 25, 2026

Summary

Three documentation additions to the ## Environment Variables section of docs/reference/commands.mdx, plus a v0.0.49/v0.0.50 refresh of the user-facing env-var surface. Closes #3059.

Fresh recreation of the closed #3652 rebuilt on top of current upstream/main (8be998680) with the v0.0.49/v0.0.50 env-var additions folded into the categorized index. Single signed commit.

What changes

### At a Glance — new categorized index. Every documented NEMOCLAW_* env var grouped under eight categories (Service Ports, Onboarding Configuration, Onboarding Behavior Flags, Probe Timeouts, Onboard Timeouts, Gateway Lifecycle Tunables, Sandbox Runtime, Lifecycle Behavior Flags). Each category links into the existing detail subsection. The category rows now include the v0.0.49/v0.0.50 user-tunable additions: NEMOCLAW_MODEL_ROUTER_PYTHON, NEMOCLAW_HERMES_TOOL_GATEWAYS, NEMOCLAW_HERMES_TOOL_GATEWAY_PRESETS, NEMOCLAW_DEFER_OPENSHELL_INSTALL, AWS_BEARER_TOKEN_BEDROCK, COMPATIBLE_ANTHROPIC_API_KEY.

### Gateway Lifecycle Tunables — new subsection. Documents seven knobs that tune the polling and timeout budgets used by gateway-recovery and health-check paths: NEMOCLAW_GATEWAY_START_TIMEOUT, NEMOCLAW_GATEWAY_RECOVERY_WAIT_SECONDS, NEMOCLAW_GATEWAY_RECOVERY_POLL_INTERVAL_SECONDS, NEMOCLAW_HEALTH_POLL_COUNT, NEMOCLAW_HEALTH_POLL_INTERVAL, NEMOCLAW_LOGS_PROBE_TIMEOUT_MS, NEMOCLAW_DOCKER_GPU_SUPERVISOR_RECONNECT_TIMEOUT. Defaults target typical local development; each entry explains when to raise them.

### Sandbox Runtime (v0.0.50) — new subsection. Documents four user-tunable env vars introduced in v0.0.49 and v0.0.50:

Test seams and internal-only timeouts are intentionally excluded. NEMOCLAW_BEDROCK_RUNTIME_ADAPTER_PORT is correctly left in the env-var-doc allowlist per the maintainer reasoning that "users should configure Bedrock through the existing custom Anthropic endpoint flow instead."

Four new entries in the Onboarding Behavior Flags table for existing-but-undocumented macOS VM-driver and Docker-driver GPU patch knobs: NEMOCLAW_DISABLE_VM_DNS_MONKEYPATCH, NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH, NEMOCLAW_DARWIN_VM_COMPAT, NEMOCLAW_DOCKER_GPU_PATCH_NETWORK.

The mirror at .agents/skills/nemoclaw-user-reference/references/commands.md is regenerated by scripts/docs-to-skills.py.

Test plan

  • python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user --doc-platform fern-mdx --dry-run clean.
  • env-var-docs hook clean — verified NEMOCLAW_BEDROCK_RUNTIME_ADAPTER_PORT is NOT mentioned in commands.mdx so the allowlist entry stays valid.
  • markdownlint-cli2 clean.
  • Pre-commit hooks all pass except the pre-existing tsc-plugin infra failure on stock upstream/main.

Signed-off-by: latenighthackathon latenighthackathon@users.noreply.github.com

Summary by CodeRabbit

  • Documentation
    • Added standalone reference for the nemoclaw resources command, including machine-readable --json output and host inventory behavior when gateway is down.
    • Clarified nemoclaw tunnel start behavior: optional host auxiliary services, Cloudflare quick vs named-tunnel token selection, and that messaging bridges are configured during onboarding.
    • Added an “At a Glance” environment-variable index and expanded entries for onboarding, provider/installation modes, GPU/sandbox overrides, gateway lifecycle tunables, and Sandbox Runtime v0.0.50.

Review Change Stack

…DIA#3059)

Three documentation additions to `docs/reference/commands.mdx` under
`## Environment Variables`:

`### At a Glance` is a new categorized index of every documented
`NEMOCLAW_*` env var. Eight categories (Service Ports, Onboarding
Configuration, Onboarding Behavior Flags, Probe Timeouts, Onboard
Timeouts, Gateway Lifecycle Tunables, Sandbox Runtime, Lifecycle
Behavior Flags) link into the existing detail subsections so readers
can find a variable by category instead of grepping the page.

`### Gateway Lifecycle Tunables` documents seven knobs that tune the
polling and timeout budgets used by gateway-recovery and health-check
paths: `NEMOCLAW_GATEWAY_START_TIMEOUT`,
`NEMOCLAW_GATEWAY_RECOVERY_WAIT_SECONDS`,
`NEMOCLAW_GATEWAY_RECOVERY_POLL_INTERVAL_SECONDS`,
`NEMOCLAW_HEALTH_POLL_COUNT`, `NEMOCLAW_HEALTH_POLL_INTERVAL`,
`NEMOCLAW_LOGS_PROBE_TIMEOUT_MS`, and
`NEMOCLAW_DOCKER_GPU_SUPERVISOR_RECONNECT_TIMEOUT`. Defaults target
typical local development; the section explains when to raise them.

`### Sandbox Runtime (v0.0.50)` documents four new user-tunable env
vars introduced in v0.0.49 and v0.0.50: `NEMOCLAW_TOOL_CATALOG`
(OpenClaw compact tool-catalog rollback per NVIDIA#3808),
`NEMOCLAW_OPENCLAW_MANAGED_PROXY` (top-level proxy block emission per
NVIDIA#4005), `NEMOCLAW_SANDBOX_BASE_VERSION_TAG` (versioned base-image
pin per NVIDIA#4082), and `NEMOCLAW_HERMES_TOOL_GATEWAY_REFRESH_TOKEN`
(Nous OAuth refresh token for the Hermes managed-tool gateway broker
per NVIDIA#3742). Test seams and internal-only timeouts (including
`NEMOCLAW_BEDROCK_RUNTIME_ADAPTER_PORT`, which the allowlist marks
as internal-only) are intentionally excluded.

Four new entries are added to the Onboarding Behavior Flags table for
the existing-but-undocumented macOS VM-driver and Docker-driver GPU
patch knobs: `NEMOCLAW_DISABLE_VM_DNS_MONKEYPATCH`,
`NEMOCLAW_FORCE_VM_DNS_MONKEYPATCH`, `NEMOCLAW_DARWIN_VM_COMPAT`,
`NEMOCLAW_DOCKER_GPU_PATCH_NETWORK`.

The mirror at
`.agents/skills/nemoclaw-user-reference/references/commands.md` is
regenerated by `scripts/docs-to-skills.py`.

Fresh recreation of the closed NVIDIA#3652 rebuilt on top of current
upstream/main with the v0.0.49/v0.0.50 env-var additions folded
into the categorized index.

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
@copy-pr-bot
Copy link
Copy Markdown

copy-pr-bot Bot commented May 25, 2026

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 25, 2026

📝 Walkthrough

Walkthrough

This PR updates the NemoClaw command reference by adding nemoclaw resources, clarifying nemoclaw tunnel start, introducing an "At a Glance" environment-variable index, and documenting gateway lifecycle tunables plus expanded onboarding and sandbox runtime environment variables.

Changes

NemoClaw Command Reference and Environment Variables Documentation

Layer / File(s) Summary
CLI commands and tunnel behavior
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
Documents the new nemoclaw resources command (host inventory, --json) and clarifies nemoclaw tunnel start auxiliary-service startup, messaging-bridge handling (managed during nemoclaw onboard), and Cloudflare quick vs named-tunnel token behavior.
Environment variables — At a Glance index
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
Adds an "At a Glance" table grouping all documented NEMOCLAW_* variables by category with anchors to detailed subsections for discoverability.
Environment variable details and new knobs
.agents/skills/nemoclaw-user-reference/references/commands.md, docs/reference/commands.mdx
Updates NEMOCLAW_PROVIDER aliases; adds NEMOCLAW_OLLAMA_INSTALL_MODE; expands onboarding flags (NEMOCLAW_RESOURCE_PROFILE, NEMOCLAW_CPU, NEMOCLAW_RAM, GPU passthrough/patch controls, VM-DNS compatibility toggles); introduces Gateway Lifecycle Tunables (start/recovery/health/log poll budgets); and documents Sandbox Runtime (v0.0.50) overrides (NEMOCLAW_TOOL_CATALOG, NEMOCLAW_OPENCLAW_MANAGED_PROXY, NEMOCLAW_SANDBOX_BASE_VERSION_TAG, NEMOCLAW_HERMES_TOOL_GATEWAY_REFRESH_TOKEN).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • NVIDIA/NemoClaw#4078: Overlapping CLI docs updates for sandbox policy presets, messaging channels, and snapshot/restore semantics.

Suggested labels

documentation

Poem

🐰 A reference blooms with each small hop,
Resources listed, tunnels clarified on top.
Env vars gathered in a single glance,
Gateway timeouts, sandbox tweaks — take a chance.
Docs stitched neatly — now go test and hop!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main documentation changes: adding an environment variable index table, gateway lifecycle configuration, and v0.0.50 runtime documentation.
Linked Issues check ✅ Passed All primary objectives from #3059 and #3652 are met: consolidated env-var index created, Gateway Lifecycle Tunables subsection added, onboarding behavior flags documented, and auto-generated mirror regenerated.
Out of Scope Changes check ✅ Passed All changes are directly aligned with linked issues; only documentation updates to commands.mdx and its auto-generated mirror without unrelated modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
.agents/skills/nemoclaw-user-reference/references/commands.md (2)

976-976: 💤 Low value

Prefer active voice.

The sentence uses passive constructions "is not started" and "is configured." Rewrite using active voice.

Suggested revision: "Channel messaging (Telegram, Discord, Slack) does not start here; nemoclaw onboard configures it and OpenShell-managed constructs run it."

As per coding guidelines, active voice is required and passive constructions should be flagged.

🤖 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-reference/references/commands.md at line 976,
Rewrite the passive sentence in the commands.md entry to active voice: replace
"Channel messaging (Telegram, Discord, Slack) is not started here; it is
configured during `nemoclaw onboard` and runs through OpenShell-managed
constructs." with an active-voice variant such as "Channel messaging (Telegram,
Discord, Slack) does not start here; `nemoclaw onboard` configures it and
OpenShell-managed constructs run it." Update the sentence where the original
passive occurs so the subject performs the actions (use `nemoclaw onboard` and
OpenShell-managed constructs as the actors).

984-985: ⚡ Quick win

Split into one sentence per line.

Lines 984-985 contain two sentences on the same line. The source should have one sentence per line to make diffs readable.

Split like this:

-The named tunnel hostname and `localhost:<dashboard-port>` route must already be configured in the Cloudflare dashboard.
-NemoClaw passes the token to `cloudflared` through the `TUNNEL_TOKEN` environment variable, so the token does not appear in the `cloudflared` command-line arguments.
+The named tunnel hostname and `localhost:<dashboard-port>` route must already be configured in the Cloudflare dashboard.
+NemoClaw passes the token to `cloudflared` through the `TUNNEL_TOKEN` environment variable, so the token does not appear in the `cloudflared` command-line arguments.

As per coding guidelines, one sentence per line in source makes diffs readable.

🤖 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-reference/references/commands.md around lines
984 - 985, Split the two sentences currently on the same line into separate
lines so each sentence is on its own line: place "The named tunnel hostname and
`localhost:<dashboard-port>` route must already be configured in the Cloudflare
dashboard." on one line and "NemoClaw passes the token to `cloudflared` through
the `TUNNEL_TOKEN` environment variable, so the token does not appear in the
`cloudflared` command-line arguments." on the next line to follow the
one-sentence-per-line guideline.
🤖 Prompt for all review comments with 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.

Nitpick comments:
In @.agents/skills/nemoclaw-user-reference/references/commands.md:
- Line 976: Rewrite the passive sentence in the commands.md entry to active
voice: replace "Channel messaging (Telegram, Discord, Slack) is not started
here; it is configured during `nemoclaw onboard` and runs through
OpenShell-managed constructs." with an active-voice variant such as "Channel
messaging (Telegram, Discord, Slack) does not start here; `nemoclaw onboard`
configures it and OpenShell-managed constructs run it." Update the sentence
where the original passive occurs so the subject performs the actions (use
`nemoclaw onboard` and OpenShell-managed constructs as the actors).
- Around line 984-985: Split the two sentences currently on the same line into
separate lines so each sentence is on its own line: place "The named tunnel
hostname and `localhost:<dashboard-port>` route must already be configured in
the Cloudflare dashboard." on one line and "NemoClaw passes the token to
`cloudflared` through the `TUNNEL_TOKEN` environment variable, so the token does
not appear in the `cloudflared` command-line arguments." on the next line to
follow the one-sentence-per-line guideline.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6dfccec4-6598-4a68-b4f4-f69e052f102b

📥 Commits

Reviewing files that changed from the base of the PR and between 50c208b and b0215ab.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • docs/reference/commands.mdx

CodeRabbit nit on docs/reference/commands.mdx and the .agents mirror:
the channel-messaging clarification was passive ("is not started... is
configured"). Reword to active voice with nemoclaw onboard and the
OpenShell-managed constructs as the actors. No content change.

Signed-off-by: latenighthackathon <latenighthackathon@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.agents/skills/nemoclaw-user-reference/references/commands.md (1)

1201-1201: ⚡ Quick win

Minor anchor link inconsistency in the At a Glance table.

The "Service Ports" category links to #environment-variables, which is the parent section heading (line 1188). All other categories link to their specific subsection anchors (e.g., #onboarding-configuration, #gateway-lifecycle-tunables).

Consider adding a "### Service Ports" heading before line 1210 so this category can link to a dedicated anchor like the others, improving navigation consistency.

🤖 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-reference/references/commands.md at line 1201,
The At a Glance table links "Service Ports" to the parent section anchor
(`#environment-variables`) instead of a dedicated subsection; add a new subsection
heading "### Service Ports" (which will generate the anchor `#service-ports`)
before the block starting around line 1210 and then update the table entry to
link to `#service-ports` so the table points to the specific subsection; ensure
the heading text matches the table label exactly ("Service Ports") so the
generated anchor is consistent.
🤖 Prompt for all review comments with 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.

Nitpick comments:
In @.agents/skills/nemoclaw-user-reference/references/commands.md:
- Line 1201: The At a Glance table links "Service Ports" to the parent section
anchor (`#environment-variables`) instead of a dedicated subsection; add a new
subsection heading "### Service Ports" (which will generate the anchor
`#service-ports`) before the block starting around line 1210 and then update the
table entry to link to `#service-ports` so the table points to the specific
subsection; ensure the heading text matches the table label exactly ("Service
Ports") so the generated anchor is consistent.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: bba7bf80-ae0f-496f-ae92-a3dbe6a7ff53

📥 Commits

Reviewing files that changed from the base of the PR and between b0215ab and 0964291.

📒 Files selected for processing (2)
  • .agents/skills/nemoclaw-user-reference/references/commands.md
  • docs/reference/commands.mdx
✅ Files skipped from review due to trivial changes (1)
  • docs/reference/commands.mdx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Missing proper reference of ALL environment variables

1 participant