Skip to main content
NVIDIA
Explore
Models
Skills
Blueprints
GPUs
Docs
Help Center
Getting Started
  1. Create and verify your account to unlock full access to NVIDIA NIM APIs.
ResourcesDeveloper ForumsContact Support
FAQs
  • Secure AI Agents with OpenShell

    30 MIN

    Isolate OpenClaw with kernel-level policies and route inference to a local model

    • Agentic Workflow
    • DGX Spark
    • DGX Station
    • Docker
    • OpenClaw
    • OpenShell
    • vLLM
    OpenShell on GitHub
    OverviewOverviewInstructionsInstructionsAgent-ready ModelsAgent-ready ModelsTroubleshootingTroubleshooting
    SymptomCauseFix
    openshell status shows "Connection refused"The openshell-gateway systemd user service is not running, or Docker socket is not accessible from the user serviceStart it: systemctl --user start openshell-gateway. Check logs: journalctl --user -u openshell-gateway --no-pager -n 50. If the service cannot reach Docker, fix socket access with sudo setfacl -m u:$USER:rw /var/run/docker.sock, then restart the service
    openshell gateway start fails with "connection refused" or Docker errorsDocker is not runningStart Docker with sudo systemctl start docker or launch Docker Desktop, then retry openshell gateway start
    openshell status shows gateway as unhealthyGateway service or container crashed / failed to initializePrefer systemctl --user restart openshell-gateway and inspect journalctl --user -u openshell-gateway --no-pager -n 50. If you started the gateway with the CLI, run openshell gateway destroy then openshell gateway start. Check Docker with docker ps -a and docker logs <container-id>
    openshell sandbox create --from openclaw fails to buildNetwork issue pulling the community sandbox or Dockerfile build failureCheck internet connectivity. Retry the command. If the build fails on a specific package, check if the base image is compatible with your Docker version
    Sandbox is in Error phase after creationPolicy validation failed or container startup crashedRun openshell logs <sandbox-name> to see error details. Common causes: invalid policy YAML, missing provider credentials, or port conflicts
    Agent cannot reach inference.local inside the sandboxInference routing not configured or provider unreachableRun openshell inference get to verify the provider and model are set. From the host, test the server: curl -s http://localhost:8000/v1/models. Ensure the provider OPENAI_BASE_URL uses the hardware IP address (not localhost), since the gateway runs inside Docker
    503 verification failed or timeout when gateway/sandbox accesses vLLM on the hostProvider URL points at localhost, firewall blocking port 8000, model still loading, or first-request compileConfirm the server was started with --host 0.0.0.0. Confirm the provider URL uses the hardware IP from hostname -I. Warm up with a chat completion before openshell inference set. Allow port 8000 through the host firewall if needed: sudo ufw allow 8000/tcp (then sudo ufw reload). Use --no-verify only after confirming the host API works
    Agent's outbound connections are all deniedDefault policy does not include the required endpointsMonitor denials with openshell logs <sandbox-name> --tail --source sandbox. Pull the current policy with openshell policy get <sandbox-name> --full, add the needed host/port under network_policies, and push with openshell policy set <sandbox-name> --policy <file> --wait
    "Permission denied" or Landlock errors inside the sandboxAgent trying to access a path not in read_only or read_write filesystem policyPull the current policy and add the path to read_write (or read_only if read access is sufficient). Push the updated policy. Note: filesystem policy is static and requires sandbox recreation
    vLLM OOM or very slow inferenceModel too large for available memory or GPU contentionFree GPU memory (close other GPU workloads), choose a smaller model, or lower --gpu-memory-utilization / --max-model-len. Monitor with nvidia-smi
    openshell sandbox connect hangs or times outSandbox not in Ready phaseRun openshell sandbox get <sandbox-name> to check the phase. If stuck in Provisioning, wait or check logs. If in Error, delete and recreate the sandbox. If phase is Unspecified during onboarding, complete the interactive wizard with openshell sandbox connect <sandbox-name>
    Policy push returns exit code 1 (validation failed)Malformed YAML or invalid policy fieldsCheck the YAML syntax. Common issues: paths not starting with /, .. traversal in paths, root as run_as_user, or endpoints missing required host/port fields. Fix and re-push
    openshell gateway start fails with "K8s namespace not ready" / timed out waiting for namespaceThe k3s cluster inside the Docker container takes longer to bootstrap than the CLI timeout allowsCheck whether the container is still progressing: docker ps --filter name=openshell. Inspect k3s state: docker exec <container> sh -c "KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl get ns" and kubectl get pods -A. If pods are still creating, wait and retry openshell status. If it does not recover, openshell gateway destroy and retry openshell gateway start. Ensure Docker has enough memory and disk
    openshell status says "No gateway configured"Gateway service never started / was disabled, or CLI start timed out before saving local configFor the systemd path: systemctl --user start openshell-gateway then openshell status (optionally systemctl --user enable openshell-gateway). For the CLI/Docker path: check docker ps --filter name=openshell; if healthy, retry openshell gateway start; if unhealthy, docker rm -f <container>, then openshell gateway destroy followed by openshell gateway start
    TLS / certificate errors when adding a remote gateway by LAN IPGateway certificate is valid for openshell, localhost, and 127.0.0.1 — not the LAN IPMap openshell to the hardware IP in /etc/hosts, then register with openshell gateway add https://openshell:8080 --remote <user>@<hardware-ip>

    NOTE

    Some hardware platforms use Unified Memory Architecture (UMA), which enables dynamic memory sharing between the GPU and CPU. With many applications still updating to take advantage of UMA, you may encounter memory issues even when within capacity. If that happens, manually flush the buffer cache with:

    sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'
    

    Resources

    • NVIDIA OpenShell Documentation
    • OpenShell Docs
    • OpenShell PyPI
    • OpenClaw Documentation
    • OpenClaw Gateway Security
    • Serve LLMs with vLLM
    • NVIDIA Developer Forums
    Terms of Use
    Privacy Policy
    Your Privacy Choices
    Contact

    Copyright © 2026 NVIDIA Corporation