Skip to content

[Examples] Add Nemoclaw example#9141

Draft
avriiil wants to merge 2 commits intoskypilot-org:masterfrom
avriiil:nemoclaw-example
Draft

[Examples] Add Nemoclaw example#9141
avriiil wants to merge 2 commits intoskypilot-org:masterfrom
avriiil:nemoclaw-example

Conversation

@avriiil
Copy link
Contributor

@avriiil avriiil commented Mar 20, 2026

This PR adds an example YAML for running NemoClaw on a cloud VM

Signed-off-by: Avril Aysha 68642378+avriiil@users.noreply.github.com

Tested (run the relevant ones):

  • Code formatting: install pre-commit (auto-check on commit) or bash format.sh
  • Any manual or new tests for this PR (please specify below)
  • All smoke tests: /smoke-test (CI) or pytest tests/test_smoke.py (local)
  • Relevant individual tests: /smoke-test -k test_name (CI) or pytest tests/test_smoke.py::test_name (local)
  • Backward compatibility: /quicktest-core (CI) or pytest tests/smoke_tests/test_backward_compat.py (local)

avriiil added 2 commits March 20, 2026 14:53
Signed-off-by: Avril Aysha <68642378+avriiil@users.noreply.github.com>
Signed-off-by: Avril Aysha <68642378+avriiil@users.noreply.github.com>
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new example that enables users to deploy NVIDIA's NemoClaw, a secure OpenClaw runtime, onto a cloud virtual machine using SkyPilot. The core purpose is to provide a more secure and isolated environment for running NemoClaw, minimizing the risk to local systems and personal data by leveraging cloud infrastructure.

Highlights

  • New Example: NemoClaw on SkyPilot: Added a comprehensive example demonstrating how to deploy NVIDIA's NemoClaw, a sandboxed OpenClaw runtime, onto a cloud VM using SkyPilot for enhanced security and isolation.
  • Detailed Setup and Usage Guide: Included a README.md file that provides step-by-step instructions for prerequisites, quickstart, connecting messaging channels, and managing the NemoClaw cluster on SkyPilot.
  • SkyPilot Configuration File: Provided a nemoclaw.yaml SkyPilot configuration file that defines the necessary cloud resources (GCP, CPU, memory, disk size, autostop) and automates the setup process, including Docker installation and cloning the NemoClaw repository.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

The pull request introduces a new SkyPilot example for deploying NemoClaw on a cloud VM, including a README.md for usage instructions and a nemoclaw.yaml configuration file. Review comments highlight several areas for improvement: correcting a syntax error in the nemoclaw.yaml setup script, ensuring the correct user is added to the Docker group, filling in a missing blog post link in the README.md, standardizing the sky stop and sky start commands in nemoclaw.yaml to use nemoclaw for consistency, and enhancing the Git clone operation in the setup script to use https:// for better reliability.

# ssh nemoclaw
#
# # Run the interactive NemoClaw installer
# cd ~/NemoClaw && ./install.sh"
Copy link
Contributor

Choose a reason for hiding this comment

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

high

There is an extra double quote at the end of the line for ./install.sh". This should be removed.

  cd ~/NemoClaw && ./install.sh

# Install Docker — required by NemoClaw's OpenShell sandbox
if ! docker info > /dev/null 2>&1; then
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
Copy link
Contributor

Choose a reason for hiding this comment

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

high

The command sudo usermod -aG docker $USER might not add the correct user to the docker group if $USER is not the LOGIN_USER. It should explicitly use "${LOGIN_USER}" to ensure the non-root user is correctly configured.

    sudo usermod -aG docker "${LOGIN_USER}"


NemoClaw wraps OpenClaw in an isolated [OpenShell](https://github.com/NVIDIA/OpenShell) sandbox with filesystem isolation, network egress control, and inference routing. Running it on a dedicated cloud VM adds a fourth layer: the machine itself contains none of your personal data or credentials.

Read the full blog post: [Make NemoClaw Bulletproof]()
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The link for the blog post "Make NemoClaw Bulletproof" is currently empty. Please fill in the correct URL to provide users with the intended resource.

# TELEGRAM_BOT_TOKEN=<your-token> nemoclaw start telegram
#
# # Stop when done — all state is preserved on disk:
# sky stop openclaw
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The sky stop command refers to openclaw instead of nemoclaw. For consistency with the sky launch command and the README.md, this should be nemoclaw.

  sky stop nemoclaw

# # Stop when done — all state is preserved on disk:
# sky stop openclaw
#
# # Resume later — picks up right where you left off:
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The sky start command refers to openclaw instead of nemoclaw. For consistency with the sky launch command and the README.md, this should be nemoclaw.

  sky start nemoclaw


# Find the login user — the non-root human user with a home under /home.
# This works across GCP, AWS, Azure regardless of username.
LOGIN_USER=$(ls /home | head -1)
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Using https:// for the Git clone URL is generally more robust as it avoids potential SSH key configuration issues on the remote VM. Consider changing git clone https://github.com/NVIDIA/NemoClaw.git to ensure reliable cloning.

    sudo -u "$LOGIN_USER" git clone https://github.com/NVIDIA/NemoClaw.git "${LOGIN_HOME}/NemoClaw"

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.

1 participant