{"slug": "amd-had-zero-agent-skills-i-built-the-first-10", "title": "AMD Had Zero Agent Skills. I Built the First 10.", "summary": "A developer built the first open-source collection of 10 agent skills for AMD ROCm GPU workloads, filling a gap where NVIDIA had 428+ skills on skills.sh and AMD had zero. The skills cover GPU setup, Docker configuration, inference deployment, benchmarking, and safety compliance, following the agentskills.io specification for compatibility with multiple AI coding agents.", "body_md": "NVIDIA has 428+ agent skills on skills.sh. AMD had\n\nzero. This is the story of building the first open-source collection of agent skills for AMD ROCm GPU workloads — and why it matters for the entire AI ecosystem.\n\nIf you've used AI coding agents like Claude Code, OpenCode, Cursor, or Codex, you've probably encountered **agent skills** — reusable instruction sets that teach agents how to perform specific tasks. Skills are the building blocks of agent workflows: \"set up my GPU\", \"deploy vLLM\", \"run YOLO inference\", \"check PPE compliance\".\n\nThe agent skills ecosystem is powered by [skills.sh](https://skills.sh), a registry that indexes skill repositories from GitHub. When you run `npx skills add owner/repo`\n\n, the CLI clones the repo and installs skills into your agent's configuration directory.\n\nHere's the problem:\n\n| GPU Vendor | Agent Skills on skills.sh |\n|---|---|\n| NVIDIA | 428+ |\n| AMD | 0 |\n\nZero. Not a single skill for AMD ROCm. If you're a developer using AMD MI300X, MI250, or even a Radeon RX 7900 with an AI coding agent, you had nothing. Every GPU setup, every Docker configuration, every inference deployment required manual documentation lookup and copy-paste.\n\nI built ** amd-rocm-skills** — 10 production-ready agent skills covering the full AMD ROCm GPU workflow:\n\n| Skill | What it does |\n|---|---|\n`rocm-setup` |\nInstall, verify, and configure ROCm on AMD GPUs with PyTorch. Auto-detects NVIDIA CUDA and CPU fallback. |\n`rocm-docker` |\nDocker with AMD GPU passthrough (`--device=/dev/kfd` ), NVIDIA runtime, and CPU profiles. docker-compose multi-profile. |\n`vllm-rocm-deploy` |\nDeploy vLLM for LLM/VLM inference on ROCm. InternVL2, Qwen2-VL, LLaVA. OpenAI-compatible API. |\n`yolo-rocm-deploy` |\nYOLOv8 on PyTorch ROCm. Inference, model export (ONNX, TorchScript), benchmarking. |\n\n| Skill | What it does |\n|---|---|\n`video-pipeline-rocm` |\nVideo inference pipeline with GStreamer + ROCm. RTSP capture, hardware decode (AMD VCN / NVIDIA NVDEC), frame extraction, batch inference. |\n`vlm-rocm-inference` |\nVLM inference directly with PyTorch on ROCm. InternVL2, Qwen2-VL. Multimodal (text + image). |\n`rocm-benchmark` |\nGPU benchmarking: matmul, memory bandwidth, inference latency, VRAM monitoring. ROCm + CUDA + CPU comparison. |\n\n| Skill | What it does |\n|---|---|\n`ppe-detection-pipeline` |\nPPE (Personal Protective Equipment) detection in video for industrial safety. YOLOv8 + tracking + alerts (webhook, MQTT, log). Multi-camera, multi-GPU. |\n`ds132-compliance` |\nChilean DS 132 mining safety compliance checker. Zone-based EPP requirements, audit logging, compliance reports. |\n`rocm-troubleshoot` |\nDiagnostics and troubleshooting for ROCm. Error codes, compatibility checks, quick fixes, optimization checklist. |\n\nEvery skill follows the [agentskills.io](https://agentskills.io/specification) specification — the open standard for agent skills:\n\n```\nskills/<skill-name>/\n├── SKILL.md          # Required: YAML frontmatter + instructions\n├── scripts/          # Required: executable Python/Bash scripts\n└── references/       # Optional: technical documentation\n```\n\nThe `SKILL.md`\n\nfrontmatter uses only standard, portable fields:\n\n```\n---\nname: rocm-setup\ndescription: >\n  Install, verify, and configure AMD ROCm on Linux for AI/ML workloads\n  with PyTorch. Use this skill when setting up AMD GPUs (MI300X, MI250,\n  RX 7900) for GPU-accelerated PyTorch, verifying ROCm installation, or\n  diagnosing GPU detection issues. Keywords: rocm, amd, gpu, pytorch,\n  hip, setup, mi300x, detect-gpu, rocm-smi, rocminfo, cuda, check-rocm\nlicense: Apache-2.0\ncompatibility: >\n  Compatible with Claude Code, OpenCode, Codex, Cursor, Cline, Roo Code,\n  Windsurf, Gemini CLI, and Kiro CLI. Requires Linux with AMD ROCm or\n  NVIDIA CUDA GPU (CPU fallback supported).\nmetadata:\n  version: \"1.1.0\"\n  author: yechua-silva\n---\n```\n\n**No Claude Code-specific fields.** No `context: fork`\n\n, no `agent: Explore`\n\n, no `model: claude-sonnet-*`\n\n. Every skill works identically across 9+ agents.\n\nThe key differentiator: **every skill supports three backends with automatic detection**.\n\n``` python\n# Auto-detection pattern used across all skills\nimport torch\n\nif torch.cuda.is_available():\n    if torch.version.hip:\n        backend = \"rocm\"        # AMD ROCm\n        device = \"cuda:0\"       # torch.cuda works on both!\n    elif torch.version.cuda:\n        backend = \"cuda\"        # NVIDIA CUDA\n        device = \"cuda:0\"\n    else:\n        backend = \"cpu\"\n        device = \"cpu\"\n```\n\nThis is the critical insight: **PyTorch's torch.cuda API works on both AMD ROCm and NVIDIA CUDA**. There is no\n\n`torch.rocm`\n\n. ROCm uses the standard `torch.cuda`\n\nnamespace transparently. Use `torch.version.hip`\n\nto distinguish AMD from NVIDIA.| Component | AMD ROCm | NVIDIA CUDA | CPU |\n|---|---|---|---|\n| PyTorch |\n`torch.cuda` + `torch.version.hip`\n|\n`torch.cuda` + `torch.version.cuda`\n|\n`device='cpu'` |\n| vLLM | `vllm-openai-rocm` |\n`vllm-openai` |\n`--device cpu` |\n| Docker | `--device /dev/kfd --device /dev/dri` |\n`--gpus all` |\nNo flags |\n| Video decode | VAAPI / VCN | NVDEC | avdec (software) |\n\nThe `rocm-docker`\n\nskill includes a `docker-compose.yml`\n\nwith three profiles:\n\n```\n# AMD ROCm\ndocker compose --profile rocm up -d\n\n# NVIDIA CUDA\ndocker compose --profile nvidia up -d\n\n# CPU fallback\ndocker compose --profile cpu up -d\n```\n\n| Agent | Supported | How |\n|---|---|---|\n| Claude Code | ✅ | `.claude/skills/` |\n| OpenCode | ✅ | `.agents/skills/` |\n| Codex | ✅ | `.codex/skills/` |\n| Cursor | ✅ | `.cursor/skills/` |\n| Cline | ✅ | `.cline/skills/` |\n| Roo Code | ✅ | `.roo/skills/` |\n| Windsurf | ✅ | `.windsurf/skills/` |\n| Gemini CLI | ✅ | `.gemini/skills/` |\n| Kiro CLI | ✅ | `.kiro/skills/` |\n\n```\n# List available skills\nnpx skills add yechua-silva/amd-rocm-skills --list\n\n# Install a single skill\nnpx skills add yechua-silva/amd-rocm-skills --skill rocm-setup --agent opencode --yes\n\n# Install all skills in multiple agents\nnpx skills add yechua-silva/amd-rocm-skills -a claude-code -a opencode -a cursor --yes\n```\n\nAfter installing the `rocm-setup`\n\nskill, just tell your agent:\n\n\"Set up this AMD server for GPU workloads\"\n\nThe agent will:\n\n`detect-gpu.py`\n\nto identify your backend (ROCm, CUDA, or CPU)`check-rocm.sh`\n\nfor a full health check`HIP_VISIBLE_DEVICES`\n\n, `ROCm_PATH`\n\n)After installing `ppe-detection-pipeline`\n\n:\n\n\"Detect PPE in this RTSP stream and alert when workers are missing helmets\"\n\nThe agent will:\n\nThe `detect-gpu.py`\n\nscript (from `rocm-setup`\n\n) is the foundation of all 10 skills. It detects the GPU backend in three levels:\n\n``` python\n# Level 1: PyTorch\nimport torch\nif torch.cuda.is_available():\n    if hasattr(torch.version, 'hip') and torch.version.hip:\n        backend = \"ROCM\"\n        device_name = torch.cuda.get_device_name(0)\n        # e.g., \"AMD Instinct MI300X\"\n    elif torch.version.cuda:\n        backend = \"CUDA\"\n        device_name = torch.cuda.get_device_name(0)\n        # e.g., \"NVIDIA A100-SXM-80GB\"\n\n# Level 2: System commands\nimport subprocess\nif backend == \"unknown\":\n    try:\n        result = subprocess.run([\"rocm-smi\", \"--showproductname\"],\n                                capture_output=True, text=True)\n        if result.returncode == 0:\n            backend = \"ROCM\"\n    except FileNotFoundError:\n        pass\n\n    try:\n        result = subprocess.run([\"nvidia-smi\", \"--query-gpu=name\",\n                                \"--format=csv,noheader\"],\n                                capture_output=True, text=True)\n        if result.returncode == 0:\n            backend = \"CUDA\"\n    except FileNotFoundError:\n        pass\n\n# Level 3: CPU fallback\nif backend == \"unknown\":\n    backend = \"CPU\"\n```\n\nThis three-level detection ensures every skill works on any machine — whether you have an MI300X with 192GB HBM3, an RTX 4090, or just a laptop CPU.\n\nThis isn't just a collection of scripts. It's built to industry standards:\n\n`npx skills add`\n\n`skills.sh.json`\n\nBefore any skill is merged:\n\n`name`\n\nfield matches directory name (kebab-case)`description`\n\nincludes keywords for agent matching`description`\n\nincludes trigger phrases (\"Use when...\")`compatibility`\n\nis a string, not a YAML list`context`\n\n, `agent`\n\n, `model`\n\n, `hooks`\n\n)`chmod +x`\n\n)`## Related Skills`\n\nsection| Metric | Value |\n|---|---|\n| Skills | 10 |\n| Total lines of content | ~32,000 |\n| Scripts (Python + Bash) | 26 |\n| Reference documents | 23 |\n| Compatible agents | 9+ |\n| GPU backends | 3 (ROCm + CUDA + CPU) |\n| License | Apache 2.0 |\n| References to specific projects | 0 (fully agnostic) |\n\nThe AI ecosystem has a GPU diversity problem. NVIDIA dominates not just hardware, but the entire software tooling stack — documentation, tutorials, community, and now agent skills. AMD's MI300X is a phenomenal chip (192GB HBM3, competitive with H100 for many workloads), but the developer experience gap is real.\n\nAgent skills are the newest frontier of this gap. When a developer asks Claude Code to \"set up my AMD GPU for PyTorch\", the agent should know how. Without a skill, it hallucinates or gives generic advice. With a skill, it follows a tested, verified workflow.\n\n**10 skills won't close a 428-skill gap.** But it's a start — and it's open source.\n\nWant to add a skill? Here's how:\n\n`skills/your-skill-name/SKILL.md`\n\nwith frontmatter`scripts/`\n\nwith executable Python/Bash`references/`\n\nwith technical docsSee [CONTRIBUTING.md](https://github.com/yechua-silva/amd-rocm-skills/blob/main/CONTRIBUTING.md) for the full guide.\n\n`rocm-tuning`\n\n— ROCm performance tuning (HIPBLAS, RCCL, MIOpen)`onnx-rocm`\n\n— ONNX Runtime with ROCm execution provider`fsdp-rocm`\n\n— Fully Sharded Data Parallel on AMD GPU`triton-rocm`\n\n— Triton kernels on ROCm`composable-kernel`\n\n— AMD CK for custom kernels\n\n```\nnpx skills add yechua-silva/amd-rocm-skills --list\n```\n\n**Repo:** [github.com/yechua-silva/amd-rocm-skills](https://github.com/yechua-silva/amd-rocm-skills)\n\n**License:** Apache 2.0\n\n*Built during AMD Developer Hackathon Act II — Pista Unicornio. If you're using AMD GPUs with AI agents, I'd love to hear your feedback.*", "url": "https://wpnews.pro/news/amd-had-zero-agent-skills-i-built-the-first-10", "canonical_source": "https://dev.to/yechuasilva/amd-had-zero-agent-skills-i-built-the-first-10-4mi5", "published_at": "2026-07-10 02:47:28+00:00", "updated_at": "2026-07-10 03:05:28.786329+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-infrastructure", "machine-learning"], "entities": ["AMD", "NVIDIA", "ROCm", "skills.sh", "Claude Code", "OpenCode", "Cursor", "Codex"], "alternates": {"html": "https://wpnews.pro/news/amd-had-zero-agent-skills-i-built-the-first-10", "markdown": "https://wpnews.pro/news/amd-had-zero-agent-skills-i-built-the-first-10.md", "text": "https://wpnews.pro/news/amd-had-zero-agent-skills-i-built-the-first-10.txt", "jsonld": "https://wpnews.pro/news/amd-had-zero-agent-skills-i-built-the-first-10.jsonld"}}