cli-anything-renderdoc — Claude Code skill: RenderDoc CLI
A skill that lets your agent inspect RenderDoc frame captures from the terminal: draw call tree, pipeline state, textures and buffers inside .rdc files.
npx skills add HKUDS/CLI-Anything --skill cli-anything-renderdoc -a claude-codeWhat cli-anything-renderdoc does
This skill hands the agent a command-line harness for RenderDoc captures (.rdc). It reads capture metadata, lists the action tree and filters it to draw calls only, searches actions by marker name, dumps pipeline state at a given event, picks pixels from textures, decodes constant buffers, shows vertex shader inputs and outputs, and pulls GPU counters. Every command takes --json when the agent needs parseable output.
Groups are split by job: capture, actions, textures, pipeline, resources, mesh, counters. pipeline shader-export returns a shader you can read: for DXBC and SPIR-V it writes the embedded HLSL or GLSL, and falls back to disassembly when there is no source. pipeline diff compares two events, including events across captures via -b. The preview mode builds a bundle with output-target images and pipeline_state.json.
One thing to check before installing: PYTHONPATH has to include your RenderDoc installation, since the harness runs on RenderDoc's Python bindings. Miss that and nothing loads. It also wants click>=8.0 and prompt-toolkit>=3.0, while the CLI itself comes from pip install cli-anything-renderdoc. Note that pipeline state needs an event ID, so run actions list first.
What it helps with
- find a single draw call by marker name in a large capture
- get a readable shader out of a DXBC or SPIR-V blob
- diff pipeline state between two events
- save a captured texture as EXR or DDS
- read a constant buffer as float32
Example prompts for the agent
- Open
frame.rdc, summarize the actions, then list draw calls withShadowin the name. - Export the fragment shader from event 42 into
./shaders/and dump the constant buffer at index 0. - Compare pipeline state at events 100 and 200 and tell me what changed.
How to install cli-anything-renderdoc
1Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-renderdoc -a claude-code2Manually: put the files in place
~/.claude/skills/cli-anything-renderdoc/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cli-anything-renderdoc/
1Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-renderdoc -a codex2Manually: put the files in place
.agents/skills/cli-anything-renderdoc/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-renderdoc -a cursor2Manually: put the files in place
.cursor/skills/cli-anything-renderdoc/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install HKUDS/CLI-Anything cli-anything-renderdoc2Manually: put the files in place
.github/skills/cli-anything-renderdoc/SKILL.md1Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-renderdoc -a gemini-cli2Platform CLI
gemini skills install https://github.com/HKUDS/CLI-Anything --path skills/cli-anything-renderdocManually: put the files in place
.devin/skills/cli-anything-renderdoc/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add HKUDS/CLI-Anything --skill cli-anything-renderdoc -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about cli-anything-renderdoc
How do I install cli-anything-renderdoc in Claude Code?
Run npx skills add HKUDS/CLI-Anything --skill cli-anything-renderdoc -a claude-code. The skill file lands at ~/.claude/skills/cli-anything-renderdoc/SKILL.md.
What does cli-anything-renderdoc do?
It analyzes RenderDoc captures from the command line: action tree, pipeline state at a chosen event, textures, buffers, shaders and GPU counters. The agent works with a capture without opening the GUI.
What do I need for it to work?
Python bindings from an installed RenderDoc, with that path on PYTHONPATH. It also needs click>=8.0 and prompt-toolkit>=3.0, otherwise the CLI will not start.
Source text
SKILL.md · Apache-2.0
--- name: "cli-anything-renderdoc" description: CLI harness for RenderDoc graphics debugger capture analysis version: 0.1.0 command: cli-anything-renderdoc install: pip install cli-anything-renderdoc requires: - renderdoc (Python bindings from RenderDoc installation) - click>=8.0 - prompt-toolkit>=3.0 categories: - graphics - debugging - gpu - rendering --- # RenderDoc CLI Skill Headless command-line analysis of RenderDoc GPU frame captures (`.rdc` files). ## Capabilities - **Capture inspection**: metadata, sections, thumbnails, format conversion - **Action tree**: list/search/filter draw calls, clears, dispatches, markers - **Texture operations**: list, inspect, export (PNG/JPG/DDS/HDR/EXR), pixel picking - **Pipeline state**: full shader/RT/viewport state at any event - **Shader analysis**: export shader in human-readable form (HLSL/GLSL/disasm), constant buffer readback - **Resource inspection**: buffer/texture enumeration, raw data reading - **Mesh data**: vertex shader input/output decoding - **GPU counters**: enumerate and fetch hardware performance counters ## Command Groups ### capture ```bash cli-anything-renderdoc -c frame.rdc capture info # Metadata + sections cli-anything-renderdoc -c frame.rdc capture thumb -o t.png # Extract thumbnail cli-anything-renderdoc -c frame.rdc capture convert -o out.rdc --format rdc ``` ### actions ```bash cli-anything-renderdoc -c frame.rdc actions list # All actions cli-anything-renderdoc -c frame.rdc actions list --draws-only # Draw calls only cli-anything-renderdoc -c frame.rdc actions summary # Counts by type cli-anything-renderdoc -c frame.rdc actions find "Shadow" # Search by name cli-anything-renderdoc -c frame.rdc actions get 42 # Single action ``` ### textures ```bash cli-anything-renderdoc -c frame.rdc textures list cli-anything-renderdoc -c frame.rdc textures get <id> cli-anything-renderdoc -c frame.rdc textures save <id> -o out.png --format png cli-anything-renderdoc -c frame.rdc textures save-outputs 42 -o ./renders/ cli-anything-renderdoc -c frame.rdc textures pick <id> 100 200 ``` ### pipeline ```bash cli-anything-renderdoc -c frame.rdc pipeline state 42 # Export shader in human-readable form # Text shaders (GLSL/HLSL) → saved directly # Binary shaders (DXBC/SPIR-V) → embedded source (HLSL/GLSL) or disassembly cli-anything-renderdoc -c frame.rdc pipeline shader-export 42 --stage Fragment cli-anything-renderdoc -c frame.rdc pipeline shader-export 42 --stage Vertex -o ./shaders/ cli-anything-renderdoc -c frame.rdc pipeline cbuffer 42 --stage Vertex --index 0 # Compare pipeline state between two events # Default output: same directory as the capture file ; use -o to override cli-anything-renderdoc -c a.rdc pipeline diff 100 200 -b b.rdc cli-anything-renderdoc -c frame.rdc pipeline diff 100 200 # same capture cli-anything-renderdoc -c a.rdc pipeline diff 100 200 -b b.rdc -o result.json cli-anything-renderdoc -c a.rdc pipeline diff 100 200 -b b.rdc --no-compact ``` ### resources ```bash cli-anything-renderdoc -c frame.rdc resources list cli-anything-renderdoc -c frame.rdc resources buffers cli-anything-renderdoc -c frame.rdc resources read-buffer <id> --format float32 ``` ### mesh ```bash cli-anything-renderdoc -c frame.rdc mesh inputs 42 --max-vertices 10 cli-anything-renderdoc -c frame.rdc mesh outputs 42 ``` ### counters ```bash cli-anything-renderdoc -c frame.rdc counters list cli-anything-renderdoc -c frame.rdc counters fetch --ids 1,2,3 ``` ## Preview Bundles RenderDoc preview support is for truthful capture inspection rather than live creative preview. ```bash # List preview recipes cli-anything-renderdoc -c frame.rdc --json preview recipes # Capture a preview bundle for the active capture or a specific event cli-anything-renderdoc -c frame.rdc --json preview capture --recipe quick --event-id 42 # Capture a diff preview bundle for two events or captures cli-anything-renderdoc -c frame.rdc --json preview diff 100 200 cli-anything-renderdoc -c a.rdc --json preview diff 100 200 --capture-b b.rdc # Return the latest existing bundle for the capture cli-anything-renderdoc -c frame.rdc --json preview latest --recipe quick ``` Typical preview bundle contents: - capture thumbnail - output-target images - `pipeline_state.json` - `action_summary.json` Diff bundles additionally include: - A/B thumbnails - A/B output-target images - `pipeline_diff.json` RenderDoc does not currently expose live preview sessions. Instead, each capture/diff bundle appends to a stable recipe-level `trajectory.json`. Viewer commands: ```bash cli-hub previews inspect /path/to/bundle cli-hub previews html /path/to/bundle -o page.html cli-hub previews open /path/to/bundle ``` ## JSON Mode All commands support `--json` for machine-readable output: ```bash cli-anything-renderdoc -c frame.rdc --json actions summary ``` ## Environment Variables | Variable | Description | |----------------------|------------------------------| | `RENDERDOC_CAPTURE` | Default capture file path | | `PYTHONPATH` | Must include RenderDoc path | ## Agent Usage Notes - **Use `pipeline shader-export` to extract shaders** — for binary shaders (DXBC/SPIR-V) it auto-exports embedded HLSL/GLSL source or falls back to disassembly; for text shaders (GLSL/HLSL) it saves the raw source directly - **Shader formats by capture API**: - D3D11 → DXBC binary, exported as embedded HLSL source (`.hlsl`) or bytecode asm (`.dxbc.asm`) - OpenGL/GLES → GLSL source text (`.glsl`), already human-readable - Vulkan → SPIR-V binary, exported as embedded GLSL source (`.glsl`) or SPIR-V asm (`.spv.asm`) - **Use `pipeline diff` to compare two events** — it writes a JSON file and prints only the path; use `-b` for a second capture - Always specify `--json` for programmatic consumption - Use `actions summary` first to understand capture complexity - Use `actions list --draws-only` to focus on actual rendering - Use `preview capture` or `preview diff` when the agent needs a portable, honest inspection bundle rather than raw replay calls alone - Read `_trajectory_path` from preview JSON if you need persistent capture/diff history - Use `cli-hub previews ...` only to inspect/open already-generated bundles - Pipeline state requires an event ID from the action list - Texture save supports: png, jpg, bmp, tga, hdr, exr, dds - Buffer data can be decoded as hex, float32, uint32, or raw bytes
© HKUDS · Apache-2.0 · HKUDS/CLI-Anything