Skip to content

[Feature]: Add nemoclaw <sandbox> skill install command for custom skill deployment #1844

@senthilr-nv

Description

@senthilr-nv

Description

There is no CLI command to deploy a custom skill to a running sandbox. Users who want to add a skill that isn't published on ClawHub must manually SSH into the sandbox, create directories, place the SKILL.md file, fix file ownership, and clear agent sessions. Each of these steps can fail silently or produce confusing errors (wrong ownership, agent not discovering the skill, etc.).

openclaw skills install exists but only works for ClawHub-published skills. openshell sandbox upload handles raw file transfer but has no skill awareness — it doesn't set ownership, validate frontmatter, or trigger agent re-discovery.

Current Workflow

  1. Get SSH access: openshell sandbox ssh-config <sandbox> > /tmp/ssh.cfg
  2. Create the skill directory remotely: ssh -F /tmp/ssh.cfg openshell-<sandbox> "mkdir -p ~/.openclaw/skills/<name>"
  3. Upload the file: cat SKILL.md | ssh -F /tmp/ssh.cfg openshell-<sandbox> "cat > ~/.openclaw/skills/<name>/SKILL.md"
  4. Fix ownership if uploaded as root: chown -R sandbox:sandbox ~/.openclaw/skills/<name>
  5. Clear agent sessions so the skill is discovered: echo '{}' > ~/.openclaw-data/agents/main/sessions/sessions.json
  6. Reconnect and hope the agent picks it up

Missing any step (especially 4 or 5) results in the skill silently not appearing.

Proposed Workflow

nemoclaw my-assistant skill install ./my-skill/

Expected behavior:

  • Validates that the directory contains a SKILL.md with valid frontmatter (name: field required)
  • Uploads to the correct skill path inside the sandbox
  • Sets ownership to the sandbox user
  • Triggers agent re-discovery (clear sessions or signal the agent)
  • Prints confirmation with the installed skill name and path
  ✓ Validated SKILL.md (name: my-skill)
  ✓ Uploaded to sandbox
  ✓ Skill 'my-skill' installed

Agent-agnostic design

Both OpenClaw and Hermes declare skills in their state_dirs (in agents/<name>/manifest.yaml), each with their own writable_dir. The command should read skill paths from the active agent's manifest rather than hardcoding OpenClaw paths, so it works for any current or future agent type.

Out of scope

Signed-off-by: Senthil Ravichandran senthilr@nvidia.com

Metadata

Metadata

Assignees

Labels

area: cliCommand line interface, flags, terminal UX, or output
No fields configured for Enhancement.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions