Root cause of readyz timeout: gvproxy DHCP assigns guest IPs nondeterministically (.2 or .3 depending on timing), but port forwarding was hardcoded to .3. When the guest got .2, the health check polled the wrong IP for 120s. Fix: vm-init.sh now assigns 192.168.127.2 statically instead of using DHCP. The CLI guest_ip constant matches. This eliminates the race. Also fixes libkrun VMM warnings (virtio-fs passthrough symlink errors) appearing on the parent terminal — fork_start() now redirects the child's stderr to the console log file via dup2(). The warnings are from macOS symlink resolution limits on Kubernetes ConfigMap mounts and are non-fatal. vm-init.sh is now always updated in the cached rootfs on every boot (not just during initial extraction), so networking fixes take effect without requiring rootfs re-extraction.
Navigator 🗺️
Navigator is the runtime environment for autonomous agents—the "Matrix" where they live, work, and verify.
While coding tools like Claude help agents write logic, Navigator provides the infrastructure to run it, offering a programmable factory where agents can spin up physics simulations to master tasks, generate synthetic data to fix edge cases, and safely iterate through thousands of failures in isolated sandboxes.
It transforms the data center from a static deployment target into a continuous verification engine, allowing agents to autonomously build and operate complex systems—from physical robotics to self-healing infrastructure—without needing a human to manage the infrastructure.
Quickstart
Prerequisites
- Docker — Docker Desktop (or a Docker daemon) must be running.
- Python 3.12+
- uv 0.9+
Install
uv pip install nemoclaw \
--upgrade \
--pre \
--index-url https://urm.nvidia.com/artifactory/api/pypi/nv-shared-pypi/simple
The navigator binary is installed into your Python environment. Use uv run navigator to invoke it, or activate your venv first with source .venv/bin/activate.
Create a sandbox
To install a Openclaw cluster and start a sandbox
navigator sandbox create -- claude # or opencode or codex
To run a sandbox on a remote machine, pass --remote [remote-ssh-host].
For more information see navigator sandbox create --help.
The sandbox container includes the following tools by default:
| Category | Tools |
|---|---|
| Agent | claude, opencode, codex |
| Language | python (3.12), node (22) |
| Developer | gh, git, vim, nano |
| Networking | ping, dig, nslookup, nc, traceroute, netstat |
For additional sandbox images see the NVIDIA/NemoClaw-Community images. You can also build your own custom images.
Deploy a cluster
Note: navigator sandbox create automatically deploys a cluster if one isn't already running.
To deploy a cluster explicitly:
navigator cluster admin deploy
For remote deployment:
navigator cluster admin deploy --remote user@host
Upgrading
To upgrade, redeploy your cluster to pick up the latest server and sandbox images:
navigator cluster admin deploy
This will prompt you to recreate the cluster. Select "yes" to recreate the cluster.
Developing
See CONTRIBUTING.md for building from source and contributing to Navigator.
Architecture
See architecture/ for detailed architecture docs and design decisions.