cloudflare-api
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules,…
Install and configure NVIDIA NemoClaw (sandboxed OpenClaw agent platform) on Linux. Handles cloudflared tunnels, Docker cgroup fixes, OpenShell, sandbox creation, remote access via Cloudflare Tunnel, and known bug workarounds. Use whenever the user mentions installing NemoClaw,
$ npx -y skills add jezweb/claude-skills --skill nemoclaw-setup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/nemoclaw-setupContext preview
The summary Claude sees to decide when to auto-load this skill.
Install and configure NVIDIA NemoClaw (sandboxed OpenClaw agent platform) on Linux. Handles cloudflared tunnels, Docker cgroup fixes, OpenShell, sandbox creation, remote access via Cloudflare Tunnel, and known bug workarounds. Use whenever the user mentions installing NemoClaw,
name: nemoclaw-setup description: "Install and configure NVIDIA NemoClaw (sandboxed OpenClaw agent platform) on Linux. Handles cloudflared tunnels, Docker cgroup fixes, OpenShell, sandbox creation, remote access via Cloudflare Tunnel, and known bug workarounds. Use whenever the user mentions installing NemoClaw, setting up OpenClaw, configuring an NVIDIA Spark or DGX for sandboxed agents, or troubleshooting NemoClaw deployment." compatibility: claude-code-only
Install NVIDIA NemoClaw — a sandboxed AI agent platform built on OpenClaw with Landlock + seccomp + network namespace isolation. Runs inside Docker via k3s (OpenShell).
| Requirement | Check | Install | |-------------|-------|---------| | Linux (Ubuntu 22.04+) | `uname -a` | — | | Docker | `docker ps` | `sudo apt install docker.io` | | Node.js 20+ (22 recommended) | `node --version` | `nvm install 22` | | NVIDIA GPU (optional but recommended) | `nvidia-smi` | — | | NVIDIA API key | — | https://build.nvidia.com/settings/api-keys |
# Check Docker docker ps 2>/dev/null || echo "Docker not running or no access" # Check Node.js node --version # Check if already installed which nemoclaw && nemoclaw --version which openshell && openshell --version
If `nemoclaw` is already installed, skip to Step 4.
curl -fsSL https://nvidia.com/nemoclaw.sh | bash
This installs NemoClaw and OpenClaw via npm globally (to `~/.npm-global/bin/`).
**If the installer can't find Node.js**, install it first:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh
Installs to `~/.local/bin/openshell`.
**Docker group** — the user must be in the `docker` group:
sudo usermod -aG docker $USER newgrp docker # or log out and back in
**cgroup v2 fix** — required for k3s inside Docker:
# Check if needed grep cgroup2 /proc/filesystems && echo "cgroup v2 detected — fix needed" # Apply fix (needs sudo) sudo $HOME/.npm-global/bin/nemoclaw setup-spark
This adds `"default-cgroupns-mode": "host"` to `/etc/docker/daemon.json` and restarts Docker.
**IMPORTANT**: The `nemoclaw setup-spark` command also asks for an NVIDIA API key. Have it ready (starts with `nvapi-`). Get one at https://build.nvidia.com/settings/api-keys.
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw onboard
The interactive wizard will: 1. Check Docker and OpenShell 2. Start the OpenShell gateway (k3s in Docker) 3. Ask for a sandbox name — use `claw` or any name 4. Configure the NVIDIA API key 5. Set up inference (Nemotron 3 Super 120B via cloud API) 6. Launch OpenClaw inside the sandbox 7. Apply network policy presets — select the ones you need
**Common port conflict**: If port 8080 is in use, find and kill the process:
fuser -k 8080/tcp
# Check sandbox is running PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw claw status # Connect via terminal PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH nemoclaw claw connect
The web UI runs inside the sandbox and needs a port forward:
PATH=$HOME/.npm-global/bin:$HOME/.local/bin:$PATH openshell forward start 18789 claw
Then open: `http://127.0.0.1:18789/`
**Known bug (OpenClaw ≤ v2026.3.11)**: "device identity required" error. Workaround — append the gateway token to the URL:
# Get the token
ssh -F /tmp/nemoclaw-ssh-config openshell-claw \
"python3 -c \"import json; print(json.load(open('/sandbox/.openclaw/openclaw.json'))['gateway']['auth']['token'])\""Then visit: `http://127.0.0.1:18789/#token=<gateway-token>`
**Fix**: Update to OpenClaw v2026.3.12+ (see Updating section below).
Create a health-checked keepalive script:
cat > ~/.local/bin/nemoclaw-keepalive.sh << 'KEEPALIVE'
#!/bin/bash
export PATH="$HOME/.npm-global/bin:$HOME/.local/bin:/usr/local/bin:/usr/bin:/bin"
cleanup() { kill %1 2>/dev/null; exit 0; }
trap cleanup SIGTERM SIGINT
while true; do
fuser -k 18789/tcp 2>/dev/null; sleep 1
openshell forward start 18789 claw &
FORWARD_PID=$!; sleep 3
while kill -0 $FORWARD_PID 2>/dev/null; do
if ! curl -sf -o /dev/null --connect-timeout 3 http://127.0.0.1:18789/ 2>/dev/null; then
echo "$(date): Health check failed, restarting..."
kill $FORWARD_PID 2>/dev/null; wait $FORWARD_PID 2>/dev/null; break
fi
sleep 10
done
echo "$(date): Forward died, restarting in 3s..."; sleep 3
done
KEEPALIVE
chmod +x ~/.local/bin/nemoclaw-keepalive.shCreate the systemd service:
sudo tee /etc/systemd/system/nemoclaw-forward.service << 'SERVICE' [Unit] Description=NemoClaw Port Forward with Health Check After=docker.service Requires=docker.service [Service] Type=simple User=$USER Group=docker Environment=PATH=/home/$USER/.npm-global/bin:/home/$USER/.local/bin:/usr/local/bin:/usr/bin:/bin ExecStart=/home/$USER/.local/bin/nemoclaw-keepalive.sh Restart=always RestartSec=5 KillMode=control-group [Install] WantedBy=multi-user.target SERVICE sudo systemctl daemon-reload sudo systemctl enable nemoclaw-forward sudo systemctl start nemoclaw-forward
If you have a Cloudflare Tunnel already running, add NemoClaw to it.
**Add DNS route:**
cloudflared tunnel route dns <tunnel-name> nemoclaw.<domain>
Production workflow skills for Claude Code. Each skill guides Claude through a recipe to produce tangible output — scaffolded projects, generated assets, professional documents, deployed services. Ten plugins of practical, production-oriented skills.
Repo: jezweb/claude-skills
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email routing, cache purge, WAF rules,…
Scaffold and deploy Cloudflare Workers with Hono routing, Vite plugin, and Static Assets. Describe project, scaffold structure, configure bindings, deploy. Use…
Generate Drizzle ORM schemas for Cloudflare D1 databases with correct D1-specific patterns. Produces schema files, migration commands, type exports, and…
Cloudflare D1 migration workflow: generate with Drizzle, inspect SQL for gotchas, apply to local and remote, fix stuck migrations, handle partial failures. Use…
Generate database seed scripts with realistic sample data. Reads Drizzle schemas or SQL migrations, respects foreign key ordering, produces idempotent…
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error handling, and API_ENDPOINTS.md…