sandbox-cli/skills/sandbox-setup/SKILL.md
This skill should be used when the user asks to "install sandbox-cli", "setup sandbox", "configure sandbox-cli", "get sandbox-cli working", "download sandbox-cli", or "I don't have sandbox-cli installed".
npx skillsauth add rhpds/rhdp-skills-marketplace sandbox-cli:sandbox-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Name: Sandbox CLI Setup Description: Install and configure the sandbox-cli tool for managing OCP shared clusters via the RHDP Sandbox API.
Guide the user through installing sandbox-cli and authenticating with the Sandbox API. This skill handles platform detection, binary download, VPN verification, and initial login.
Determine the user's OS and architecture:
uname -s # Darwin or Linux
uname -m # arm64 or x86_64
Map to binary name:
sandbox-cli-darwin-arm64sandbox-cli-darwin-amd64sandbox-cli-linux-amd64sandbox-cli-linux-arm64which sandbox-cli && sandbox-cli version
If already installed, check if it's up to date by running sandbox-cli status and skip to Step 4.
Download the latest release from GitHub:
# Get latest release URL
PLATFORM="darwin-arm64" # adjust based on Step 1
curl -sL "https://github.com/rhpds/sandbox/releases/latest/download/sandbox-cli-${PLATFORM}" -o /usr/local/bin/sandbox-cli
chmod +x /usr/local/bin/sandbox-cli
If /usr/local/bin requires sudo, suggest:
curl -sL "https://github.com/rhpds/sandbox/releases/latest/download/sandbox-cli-${PLATFORM}" -o ~/bin/sandbox-cli
chmod +x ~/bin/sandbox-cli
# Ensure ~/bin is in PATH
Verify installation:
sandbox-cli version
CRITICAL: The sandbox API is IP-restricted. The user MUST be on Red Hat VPN. Always verify VPN connectivity before any sandbox-cli operation.
Run this check:
host squid.redhat.com
If the DNS resolves (returns an IP address like 10.x.x.x), the user is on VPN. Proceed.
If it fails with NXDOMAIN, not found, or connection timed out, the user is NOT on VPN. Stop and tell them:
You are NOT connected to the Red Hat VPN. The sandbox API is IP-restricted and all commands will fail with EOF errors. Please connect to the Red Hat VPN before proceeding.
Do NOT proceed with login or any sandbox-cli commands until VPN is confirmed.
Ask the user for:
https://restricted-babylon-sandbox-api.apps.infra-us-east-1.infra.demo.redhat.com)Then run:
sandbox-cli login --server <SERVER_URL> --token <TOKEN>
Expected output on success:
Authenticating with <SERVER_URL>...
Using Red Hat VPN proxy (squid.redhat.com:3128)
Login successful. Access token saved to ~/.local/sandbox-cli/config.json
Token expires: <date>
If you get an EOF error, the VPN check in Step 4 may have given a false positive. Ask the user to verify their VPN connection and retry.
sandbox-cli status
This shows client version, server connection, proxy status, and authentication state.
| Error | Cause | Fix |
|-------|-------|-----|
| EOF error on login | Not on VPN | Connect to Red Hat VPN, verify with host squid.redhat.com |
| authentication failed | Invalid or expired token | Get a new token from a sandbox admin |
| command not found | Binary not in PATH | Check install location and PATH |
| permission denied | Binary not executable | Run chmod +x /path/to/sandbox-cli |
~/.local/sandbox-cli/config.jsonsquid.redhat.com:3128)tools
Writes validate.yml playbooks using the validation_check Ansible plugin. Takes the content-reader task report and solve-writer actions as input, producing checks that verify student progress without manual steps or navigation instructions.
tools
Writes solve.yml playbooks from the structured task report produced by ftl:content-reader. Uses the automation priority ladder (k8s_exec → k8s → uri → wait_for → Playwright) to generate Ansible tasks that replicate what the student does in the lab.
development
Pushes solve.yml and validate.yml to a live RHDP showroom, restarts the pod, and runs the full test cycle (fresh validate → solve → validate again → idempotency check). Reports pass/fail per task with full output for debugging.
tools
AsciiDoc reader agent for the FTL lab validator. Reads a showroom .adoc module file, extracts executable code blocks (role="execute"), classifies each step by automation type, and outputs a structured task report for the solve-writer and validate-writer agents.