skills/new-ryzer/SKILL.md
# Skill: new-ryzer > Scaffold a new Ryzer Docker package with all required files. ## Usage ``` new-ryzer <category> <package_name> ``` - `category` — one of the existing directories under `packages/` (e.g. `llm`, `vlm`, `vla`, `robotics`, `vision`, `npu`, `ros`, `graphics`, `ide`, `adaptive-socs`), or a new category name if none fits. - `package_name` — lowercase, no spaces or hyphens (e.g. `ollama`, `genesis`, `mobilesam`). --- ## What is a Ryzer? A Ryzer is a self-contained, composable
npx skillsauth add amdresearch/ryzers skills/new-ryzerInstall 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.
Scaffold a new Ryzer Docker package with all required files.
new-ryzer <category> <package_name>
category — one of the existing directories under packages/ (e.g. llm, vlm, vla, robotics, vision, npu, ros, graphics, ide, adaptive-socs), or a new category name if none fits.package_name — lowercase, no spaces or hyphens (e.g. ollama, genesis, mobilesam).A Ryzer is a self-contained, composable Docker package for running AI/ML/robotics workloads on AMD Ryzen AI hardware. Ryzers are layered — each one builds on top of a base image, and multiple ryzers can be chained together in a single build.
Users build and run ryzers with:
ryzers build <package_name> # build a single package
ryzers build pkg1 pkg2 pkg3 # chain multiple packages (each layers on the previous)
ryzers run # run the most recently built image
ryzers run bash # override CMD to get a shell
Every ryzer package lives at packages/<category>/<package_name>/ and must contain exactly these 4 files:
packages/<category>/<package_name>/
├── Dockerfile
├── config.yaml
├── test.sh (or test.py)
└── README.md
Optional extras: demo.sh, demo.py, LICENSE, additional test files.
Rules:
ARG BASE_IMAGE and FROM ${BASE_IMAGE} — this enables layered composition.WORKDIR /ryzers before copying test/demo scripts./ryzers/test_<package_name>.<ext> and chmod +x them.CMD /ryzers/test_<package_name>.<ext> so the default action validates the install.EXPOSE for any ports the package serves on.Template:
# Copyright(C) 2026 Advanced Micro Devices, Inc. All rights reserved.
# SPDX-License-Identifier: MIT
ARG BASE_IMAGE
FROM ${BASE_IMAGE}
ENV DEBIAN_FRONTEND=noninteractive
# Install dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
<system-packages> \
&& rm -rf /var/lib/apt/lists/*
# Install Python packages
RUN pip3 install --no-cache-dir --break-system-packages \
"<package1>==<version>" \
"<package2>==<version>"
# Copy test script
WORKDIR /ryzers
COPY test.sh /ryzers/test_<package_name>.sh
RUN chmod +x /ryzers/test_<package_name>.sh
# EXPOSE <port> # if applicable
CMD /ryzers/test_<package_name>.sh
Notes:
--no-install-recommends and clean up apt lists to keep image size down.--no-cache-dir and --break-system-packages with pip3.ARG and document in config.yaml.This file configures Docker build and run flags. All fields are optional — include only what the package needs. An empty/commented config.yaml is valid.
Template:
# Copyright(C) 2026 Advanced Micro Devices, Inc. All rights reserved.
# SPDX-License-Identifier: MIT
### ryzers build options
# gpu_support: false # add GPU support, default is true
# x11_display: false # add X11 support, default is true
# init_image: "image_name" # The first docker image to use as a base
# default is ryzers.RYZERS_DEFAULT_INIT_IMAGE
# build_arguments: # List of ARGs to pass to the `docker build` call
# - "ARG=VALUE" # E.g. - "PYTHON_VERSION=3.12"
### ryzers run options
# environment_variables: # List of environment variables to set in the container
# - "ENV_VARIABLE=VALUE" # E.g. "PYTHONPATH=/path/to/python"
# port_mappings:
# - "host_portnum:container_portnum" # List of port mappings to expose from the docker
# E.g. "8888:8888" for JupyterLab
# volume_mappings:
# - "host_path:container_path" # List of volume mappings to mount from the host
# E.g. "/path/to/host:/path/to/container"
# docker_extra_run_flags: "run flags" # Additional flags to pass to the `docker run` command
Common patterns — uncomment/add as needed:
| Scenario | What to add |
|----------|-------------|
| Package serves a web UI or API | port_mappings: ["8080:8080"] |
| Package downloads large models | volume_mappings: ["$PWD/workspace/.cache/huggingface:/root/.cache/huggingface"] |
| Package needs extra shared memory | docker_extra_run_flags: "--shm-size=2g" |
| Package needs a build-time variable | build_arguments: ["MY_VERSION=1.0"] |
| Package needs specific env vars at runtime | environment_variables: ["HSA_OVERRIDE_GFX_VERSION=11.0.0"] |
| Package does NOT need GPU | gpu_support: false |
| Package does NOT need X11 | x11_display: false |
A quick smoke test that validates the package installed correctly. Should exit 0 on success, non-zero on failure.
Bash template (test.sh):
#!/bin/bash
# Copyright (C) 2026 Advanced Micro Devices, Inc. All rights reserved.
# SPDX-License-Identifier: MIT
echo "Running tests for <package_name>..."
<command_to_test_installation>
if [ $? -eq 0 ]; then
echo "Tests passed!"
else
echo "Tests failed!"
exit 1
fi
Python template (test.py):
#!/usr/bin/env python3
# Copyright(C) 2026 Advanced Micro Devices, Inc. All rights reserved.
# SPDX-License-Identifier: MIT
import <package>
print(f"<package> version: {<package>.__version__}")
# Add a minimal functional check here
Guidelines:
Template:
# <Package Name> Docker Setup
Brief description of what this package provides and what it's useful for.
## Build & Run
```sh
ryzers build <package_name>
ryzers run
Copyright(C) 2026 Advanced Micro Devices, Inc. All rights reserved.
---
## After Creating the Package
1. **Update the main `README.md`** — add a link to the new package in the "Supported Packages" table under the appropriate category row.
2. **Test locally** (if possible):
```bash
ryzers build <package_name>
ryzers run
| Category | Directory | What goes here |
|----------|-----------|----------------|
| LLM | packages/llm/ | Large language models (ollama, llamacpp, etc.) |
| VLM | packages/vlm/ | Vision-language models (gemma3, phi4, etc.) |
| VLA | packages/vla/ | Vision-language-action models (openvla, gr00t, etc.) |
| Robotics | packages/robotics/ | Robotics frameworks (lerobot, act, genesis, etc.) |
| ROS | packages/ros/ | ROS 2 and related tools (ros, gazebo) |
| Vision | packages/vision/ | Computer vision (opencv, sam, ultralytics, etc.) |
| NPU | packages/npu/ | Ryzen AI NPU tools (xdna, iron, etc.) |
| Graphics | packages/graphics/ | 3D/graphics engines (o3de) |
| IDE | packages/ide/ | Development environments (jupyterlab) |
| Adaptive SoCs | packages/adaptive-socs/ | Adaptive SoC tools (pynq-remote) |
| Workshops | packages/workshops/ | Workshop demos |
Create a new category directory if the package doesn't fit any of these.
Study these existing packages for patterns:
packages/init/ryzer_blank/ — bare minimum Dockerfilepackages/robotics/genesis/ — good all-around referencepackages/llm/ollama/ — port mappings, volume mounts, server testpackages/vision/opencv/ — uses ARG OPENCV_VERSION from config.yamlpackages/ide/jupyterlab/ — port mapping, environment variablesdevelopment
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.