Skip to the content.

STEPS — reproduce the OpenShell agent-security demo

All commands verified against the official OpenShell repo/docs (July 2026). If a command has changed, the source of truth is https://docs.nvidia.com/openshell/latest/get-started

0. Prerequisites

1. Install the OpenShell CLI

Recommended (binary):

curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | sh

Or via uv:

uv tool install -U openshell

Verify:

openshell --version

2. Run an agent inside a sandbox

Supported agents out of the box: claude, opencode, codex, copilot.

openshell sandbox create -- claude
openshell sandbox list          # confirm it's running

📸 Screenshot the running sandbox → assets/01-sandbox-running.png

3. Apply the read-only-GitHub policy

openshell policy set <sandbox-name> --policy policies/readonly-github.yaml --wait

This allows GET to the GitHub API and blocks POST at layer 7. (Network/inference sections reload at runtime; filesystem/process lock at creation.)

4. Trigger a blocked action (the money shot)

Inside the sandboxed agent, ask it to do something the policy forbids, e.g.:

📸 Screenshot the deny → assets/02-action-blocked.png

5. Export audit-log evidence

OpenShell records every allow/deny with destination, binary, and reason.

openshell sandbox logs <sandbox-name>     # confirm exact subcommand via `openshell sandbox --help`

📸 Screenshot the allow/deny log lines → assets/03-audit-log.png

6. Clean up

openshell sandbox list
openshell sandbox delete <sandbox-name>   # confirm exact subcommand via --help

7. Write it up

Turn assets/01–03 into a short bilingual post:

  1. The risk (agent + shell + network = blast radius)
  2. The fix (unmodified agent + YAML policy + kernel sandbox)
  3. The proof (the deny + the audit line)
  4. PM takeaway: this is governance-as-code — version-controlled, reviewable in PRs

⚠️ Commands to double-check against live docs

The install / create / policy-set commands are from the official repo & get-started page. The exact logs / delete subcommands should be confirmed with openshell sandbox --help on your machine before you publish, since CLI surface can shift between releases.