技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 0 · 141 · 2 current installs · 2 all-time installs
⭐ 0
安装量(当前) 2
🛡 VirusTotal :可疑 · OpenClaw :可疑
Package:adisinghstudent/nvidia-nemoclaw
安全扫描(ClawHub)
- VirusTotal :可疑
- OpenClaw :可疑
OpenClaw 评估
The skill's instructions plausibly implement a NemoClaw installer, but there are multiple inconsistencies and risky behaviors (remote installer pipe, undeclared required credentials, and apparent vendor impersonation) that warrant caution before installing.
目的
The SKILL.md describes an installer/orchestrator that needs system-level components (Node.js, Docker, OpenShell) and an NVIDIA API key — which matches the declared functionality. However the registry metadata lists no required environment variables or credentials while the SKILL.md explicitly requires NVIDIA_API_KEY. Also the skill appears to present itself as an 'NVIDIA' plugin but the registry owner and authorship (ara.so / owner kn7a...) ar…
说明范围
Runtime instructions direct the agent/user to run a remote installer via 'curl | bash', install system components (Node, Docker), run a guided onboarding that collects API keys, create sandboxes under /var, and start auxiliary services (Telegram bridge, tunnels). These are broad system-level actions and the instructions do not limit or explicitly require elevated privileges but imply them. The installer will collect and use an NVIDIA_API_KEY; …
安装机制
The one-line installer uses a direct download-and-execute pattern (curl -fsSL https://nvidia.com/nemoclaw.sh | bash). Even though the domain is a major vendor (nvidia.com), piping remote shell scripts to bash is high-risk because it executes arbitrary code on the host. There is no local reproducible install spec in the registry (no packaged artifact included), and the SKILL.md encourages both the remote installer and a manual install from a Gi…
证书
The instructions require an NVIDIA_API_KEY (and optionally NEMOCLAW_MODEL and NEMOCLAW_SANDBOX_DIR). Requiring the cloud API key is proportionate to routing inference through NVIDIA cloud. However, the registry metadata advertises no required environment variables, creating a mismatch. The onboarding and library code examples call process.env directly, and the wizard prompts for the API key; asking for a cloud API key is expected but must be d…
持久
The skill does not request 'always: true' and allows user invocation. However the installer and runtime will likely create persistent sandboxes, system services, and directories under /var and may install or manage auxiliary services (tunnels, Telegram bridge). That implies lasting system changes and elevated privileges at install/run time even though the skill metadata does not advertise such privileges explicitly.
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「nvidia-nemoclaw」。简介:NVIDIA NemoClaw plugin for secure sandboxed installation and orchestration of O…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/adisinghstudent/nvidia-nemoclaw/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: nvidia-nemoclaw
description: NVIDIA NemoClaw plugin for secure sandboxed installation and orchestration of OpenClaw always-on AI assistants via OpenShell
triggers:
- "set up NemoClaw for OpenClaw"
- "install NVIDIA NemoClaw sandbox"
- "run OpenClaw in a secure sandbox"
- "configure NemoClaw inference with NVIDIA cloud"
- "manage NemoClaw sandboxed agent"
- "nemoclaw onboard and deploy agent"
- "OpenShell sandbox with NemoClaw"
- "secure OpenClaw installation with NVIDIA"
---
# NVIDIA NemoClaw
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
NVIDIA NemoClaw is an open-source TypeScript CLI plugin that simplifies running [OpenClaw](https://openclaw.ai) always-on AI assistants securely. It installs and orchestrates the [NVIDIA OpenShell](https://github.com/NVIDIA/OpenShell) runtime, creates policy-enforced sandboxes, and routes all inference through NVIDIA cloud (Nemotron models). Network egress, filesystem access, syscalls, and model API calls are all governed by declarative policy.
**Status:** Alpha — interfaces and APIs may change without notice.
---
## Installation
### Prerequisites
- Linux Ubuntu 22.04 LTS or later
- Node.js 20+ and npm 10+ (Node.js 22 recommended)
- Docker installed and running
- [NVIDIA OpenShell](https://github.com/NVIDIA/OpenShell) installed
### One-Line Installer
```bash
curl -fsSL https://nvidia.com/nemoclaw.sh | bash
```
This installs Node.js (if absent), runs the guided onboard wizard, creates a sandbox, configures inference, and applies security policies.
### Manual Install (from source)
```bash
git clone https://github.com/NVIDIA/NemoClaw.git
cd NemoClaw
npm install
npm run build
npm link # makes `nemoclaw` available globally
```
---
## Environment Variables
```bash
# Required: NVIDIA cloud API key for Nemotron inference
export NVIDIA_API_KEY="nvapi-xxxxxxxxxxxx"
# Optional: override default model
export NEMOCLAW_MODEL="nvidia/nemotron-3-super-120b-a12b"
# Optional: custom sandbox data directory
export NEMOCLAW_SANDBOX_DIR="/var/nemoclaw/sandboxes"
```
Get an API key at [build.nvidia.com](https://build.nvidia.com).
---
## Quick Start
### 1. Onboard a New Agent
```bash
nemoclaw onboard
```
The interactive wizard prompts for:
- Sandbox name (e.g. `my-assistant`)
- NVIDIA API key (`$NVIDIA_API_KEY`)
- Inference model selection
- Network and filesystem policy configuration
Expected output on success:
```
──────────────────────────────────────────────────
Sandbox my-assistant (Landlock + seccomp + netns)
Model nvidia/nemotron-3-super-120b-a12b (NVIDIA Cloud API)
──────────────────────────────────────────────────
Run: nemoclaw my-assistant connect
Status: nemoclaw my-assistant status
Logs: nemoclaw my-assistant logs --follow
──────────────────────────────────────────────────
[INFO] === Installation complete ===
```
### 2. Connect to the Sandbox
```bash
nemoclaw my-assistant connect
```
### 3. Chat with the Agent (inside sandbox)
**TUI (interactive chat):**
```bash
sandbox@my-assistant:~$ openclaw tui
```
**CLI (single message):**
```bash
sandbox@my-assistant:~$ openclaw agent --agent main --local -m "hello" --session-id test
```
---
## Key CLI Commands
### Host Commands (`nemoclaw`)
| Command | Description |
|---|---|
| `nemoclaw onboard` | Interactive setup: gateway, providers, sandbox |
| `nemoclaw <name> connect` | Open interactive shell inside sandbox |
| `nemoclaw <name> status` | Show NemoClaw-level sandbox health |
| `nemoclaw <name> logs --follow` | Stream sandbox logs |
| `nemoclaw start` | Start auxiliary services (Telegram bridge, tunnel) |
| `nemoclaw stop` | Stop auxiliary services |
| `nemoclaw deploy <instance>` | Deploy to remote GPU instance via Brev |
| `openshell term` | Launch OpenShell TUI for monitoring and approvals |
### Plugin Commands (`openclaw nemoclaw`, run inside sandbox)
> Note: These are under active development — use `nemoclaw` host CLI as the primary interface.
| Command | Description |
|---|---|
| `openclaw nemoclaw launch [--profile ...]` | Bootstrap OpenClaw inside OpenShell sandbox |
| `openclaw nemoclaw status` | Show sandbox health, blueprint state, and inference |
| `openclaw nemoclaw logs [-f]` | Stream blueprint execution and sandbox logs |
### OpenShell Inspection
```bash
# List all sandboxes at the OpenShell layer
openshell sandbox list
# Check specific sandbox
openshell sandbox inspect my-assistant
```
---
## Architecture
NemoClaw orchestrates four components:
| Component | Role |
|---|---|
| **Plugin** | TypeScript CLI: launch, connect, status, logs |
| **Blueprint** | Versioned Python artifact: sandbox creation, policy, inference setup |
| **Sandbox** | Isolated OpenShell container running OpenClaw with policy-enforced egress/filesystem |
| **Inference** | NVIDIA cloud model calls routed through OpenShell gateway |
**Blueprint lifecycle:**
1. Resolve artifact
2. Verify digest
3. Plan resources
4. Apply through OpenShell CLI
---
## TypeScript Plugin Usage
NemoClaw exposes a programmatic TypeScript API for building custom integrations.
### Import and Initialize
```typescript
import { NemoClawClient } from '@nvidia/nemoclaw';
const client = new NemoClawClient({
apiKey: process.env.NVIDIA_API_KEY!,
model: process.env.NEMOCLAW_MODEL ?? 'nvidia/nemotron-3-super-120b-a12b',
});
```
### Create a Sandbox Programmatically
```typescript
import { NemoClawClient, SandboxConfig } from '@nvidia/nemoclaw';
async function createSandbox() {
const client = new NemoClawClient({
apiKey: process.env.NVIDIA_API_KEY!,
});
const config: SandboxConfig = {
name: 'my-assistant',
model: 'nvidia/nemotron-3-super-120b-a12b',
policy: {
network: {
allowedEgressHosts: ['build.nvidia.com'],
blockUnlisted: true,
},
filesystem: {
allowedPaths: ['/sandbox', '/tmp'],
readOnly: false,
},
},
};
const sandbox = await client.sandbox.create(config);
console.log(`Sandbox created: ${sandbox.id}`);
return sandbox;
}
```
### Connect and Send a Message
```typescript
import { NemoClawClient } from '@nvidia/nemoclaw';
async function chatWithAgent(sandboxName: string, message: string) {
const client = new NemoClawClient({
apiKey: process.env.NVIDIA_API_KEY!,
});
const sandbox = await client.sandbox.get(sandboxName);
const session = await sandbox.connect();
const response = await session.agent.send({
agentId: 'main',
message,
sessionId: `session-${Date.now()}`,
});
console.log('Agent response:', response.content);
await session.disconnect();
}
chatWithAgent('my-assistant', 'Summarize the latest NVIDIA earnings report.');
```
### Check Sandbox Status
```typescript
import { NemoClawClient } from '@nvidia/nemoclaw';
async function checkStatus(sandboxName: string) {
const client = new NemoClawClient({
apiKey: process.env.NVIDIA_API_KEY!,
});
const status = await client.sandbox.status(sandboxName);
console.log({
sandbox: status.name,
healthy: status.healthy,
blueprint: status.blueprintState,
inference: status.inferenceProvider,
policyVersion: status.policyVersion,
});
}
```
### Stream Logs
```typescript
import { NemoClawClient } from '@nvidia/nemoclaw';
async function streamLogs(sandboxName: string) {
const client = new NemoClawClient({
apiKey: process.env.NVIDIA_API_KEY!,
});
const logStream = client.sandbox.logs(sandboxName, { follow: true });
for await (const entry of logStream) {
console.log(`[${entry.timestamp}] ${entry.level}: ${entry.message}`);
}
}
```
### Apply a Network Policy Update (Hot Reload)
```typescript
import { NemoClawClient, NetworkPolicy } from '@nvidia/nemoclaw';
async function updateNetworkPolicy(sandboxName: string) {
const client = new NemoClawClient({
apiKey: process.env.NVIDIA_API_KEY!,
});
// Network policies are hot-reloadable at runtime
const updatedPolicy: NetworkPolicy = {
allowedEgressHosts: [
'build.nvidia.com',
'api.github.com',
],
blockUnlisted: true,
};
await client.sandbox.updatePolicy(sandboxName, {
network: updatedPolicy,
});
console.log('Network policy updated (hot reload applied).');
}
```
---
## Security / Protection Layers
| Layer | What it protects | Hot-reloadable? |
|---|---|---|
| **Network** | Blocks unauthorized outbound connections | ✅ Yes |
| **Filesystem** | Prevents reads/writes outside `/sandbox` and `/tmp` | ❌ Locked at creation |
| **Process** | Blocks privilege escalation and dangerous syscalls | ❌ Locked at creation |
| **Inference** | Reroutes model API calls to controlled backends | ✅ Yes |
When the agent attempts to reach an unlisted host, OpenShell blocks the request and surfaces it in the TUI for operator approval.
---
## Common Patterns
### Pattern: Minimal Sandbox for Development
```typescript
const config: SandboxConfig = {
name: 'dev-sandbox',
model: 'nvidia/nemotron-3-super-120b-a12b',
policy: {
network: { blockUnlisted: false }, // permissive for dev
filesystem: { allowedPaths: ['/sandbox', '/tmp', '/home/dev'] },
},
};
```
### Pattern: Production Strict Sandbox
```typescript
const config: SandboxConfig = {
name: 'prod-assistant',
model: 'nvidia/nemotron-3-super-120b-a12b',
policy: {
network: {
allowedEgressHosts: ['build.nvidia.com'],
blockUnlisted: true,
},
filesystem: {
allowedPaths: ['/sandbox', '/tmp'],
readOnly: false,
},
},
};
```
### Pattern: Deploy to Remote GPU (Brev)
```bash
nemoclaw deploy my-gpu-instance --sandbox my-assistant
```
```typescript
await client.deploy({
instance: 'my-gpu-instance',
sandboxName: 'my-assistant',
provider: 'brev',
});
```
---
## Troubleshooting
### Error: Sandbox not found
```
Error: Sandbox 'my-assistant' not found
```
**Fix:** Check at the OpenShell layer — NemoClaw errors and OpenShell errors are separate:
```bash
openshell sandbox list
nemoclaw my-assistant status
```
### Error: NVIDIA API key missing or invalid
```
Error: Inference provider authentication failed
```
**Fix:**
```bash
export NVIDIA_API_KEY="nvapi-xxxxxxxxxxxx"
nemoclaw onboard # re-run to reconfigure
```
### Error: Docker not running
```
Error: Cannot connect to Docker daemon
```
**Fix:**
```bash
sudo systemctl start docker
sudo usermod -aG docker $USER # add current user to docker group
newgrp docker
```
### Error: OpenShell not installed
```
Error: 'openshell' command not found
```
**Fix:** Install [NVIDIA OpenShell](https://github.com/NVIDIA/OpenShell) first, then re-run the NemoClaw installer.
### Agent blocked on outbound request
When you see a blocked request notification in the TUI:
```bash
openshell term # open TUI to approve/deny the request
# OR update policy to allow the host:
nemoclaw my-assistant policy update --allow-host api.example.com
```
### View Full Debug Logs
```bash
nemoclaw my-assistant logs --follow
# or with verbose flag
nemoclaw my-assistant logs --follow --level debug
```
---
## Documentation Links
- [Overview](https://docs.nvidia.com/nemoclaw/latest/about/overview.html)
- [How It Works](https://docs.nvidia.com/nemoclaw/latest/about/how-it-works.html)
- [Architecture](https://docs.nvidia.com/nemoclaw/latest/reference/architecture.html)
- [Inference Profiles](https://docs.nvidia.com/nemoclaw/latest/reference/inference-profiles.html)
- [Network Policies](https://docs.nvidia.com/nemoclaw/latest/reference/network-policies.html)
- [CLI Commands](https://docs.nvidia.com/nemoclaw/latest/reference/commands.html)