Electron DevTools Trace Analysis
keybase/client
Analyzes Chrome or Electron DevTools Performance trace exports with Python scripts to find where render time actually goes, without opening DevTools.
GPU frame debugging with RenderDoc via rdc-cli. An agent skill from rudybear/renderdoc-skill.
$ npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rudybear/renderdoc-skill renderdoc-gpu-debug --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rudybear/renderdoc-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/renderdoc-gpu-debug .claude/skills/renderdoc-gpu-debug && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "renderdoc-gpu-debug" agent skill from https://github.com/rudybear/renderdoc-skill/tree/master/.claude/skills/renderdoc-gpu-debug into .claude/skills/renderdoc-gpu-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "renderdoc-gpu-debug", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rudybear/renderdoc-skill/tree/master/.claude/skills/renderdoc-gpu-debugType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rudybear/renderdoc-skill renderdoc-gpu-debug --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rudybear/renderdoc-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/renderdoc-gpu-debug .agents/skills/renderdoc-gpu-debug && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "renderdoc-gpu-debug" agent skill from https://github.com/rudybear/renderdoc-skill/tree/master/.claude/skills/renderdoc-gpu-debug into .agents/skills/renderdoc-gpu-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "renderdoc-gpu-debug", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rudybear/renderdoc-skill renderdoc-gpu-debug --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rudybear/renderdoc-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/renderdoc-gpu-debug .cursor/skills/renderdoc-gpu-debug && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "renderdoc-gpu-debug" agent skill from https://github.com/rudybear/renderdoc-skill/tree/master/.claude/skills/renderdoc-gpu-debug into .cursor/skills/renderdoc-gpu-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "renderdoc-gpu-debug", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rudybear/renderdoc-skill.git --path .claude/skills/renderdoc-gpu-debug--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rudybear/renderdoc-skill renderdoc-gpu-debug --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rudybear/renderdoc-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/renderdoc-gpu-debug .gemini/skills/renderdoc-gpu-debug && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "renderdoc-gpu-debug" agent skill from https://github.com/rudybear/renderdoc-skill/tree/master/.claude/skills/renderdoc-gpu-debug into .gemini/skills/renderdoc-gpu-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "renderdoc-gpu-debug", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rudybear/renderdoc-skill renderdoc-gpu-debugInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rudybear/renderdoc-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/renderdoc-gpu-debug .github/skills/renderdoc-gpu-debug && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "renderdoc-gpu-debug" agent skill from https://github.com/rudybear/renderdoc-skill/tree/master/.claude/skills/renderdoc-gpu-debug into .github/skills/renderdoc-gpu-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "renderdoc-gpu-debug", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rudybear/renderdoc-skill renderdoc-gpu-debug --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rudybear/renderdoc-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/renderdoc-gpu-debug .opencode/skills/renderdoc-gpu-debug && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "renderdoc-gpu-debug" agent skill from https://github.com/rudybear/renderdoc-skill/tree/master/.claude/skills/renderdoc-gpu-debug into .opencode/skills/renderdoc-gpu-debug/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "renderdoc-gpu-debug", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
renderdoc-gpu-debugGPU frame debugging with RenderDoc via rdc-cli. An agent skill from rudybear/renderdoc-skill.
Renderdoc GPU Debug is an agent skill from rudybear/renderdoc-skill. GPU frame debugging with RenderDoc via rdc-cli. Use this skill when the user mentions: GPU debugging, .rdc files, RenderDoc, shader issues, pipeline state, rendering artifacts, frame capture, shadow problems, visual glitches, draw calls, render targets, pixel history, texture inspection, depth buffer, blend state, rasterizer state, vertex shader, fragment shader, pixel shader, compute shader, mesh output, GPU performance, overdraw, bandwidth, shadow map, PCF filtering, screen-space artifacts, z-fighting, alpha…
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/commands-quick-ref.md` and `references/debugging-recipes.md`).
It sits in Development, covering Shaders, Debugging and Web performance. It works with React and Python. The repository describes itself as: A Claude Code skill for GPU frame debugging with RenderDoc via rdc-cli. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit de33576. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
jqpythonpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Renderdoc GPU Debug loads about 4k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 223 tokens; SKILL.md has 750 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from rudybear/renderdoc-skill at commit de33576, republished under its MIT licence (© rudybear). 750 words, ~3,953 tokens.
.claude/skills/renderdoc-gpu-debug/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This skill enables GPU frame capture, inspection, and debugging using rdc-cli, a 66-command CLI wrapping RenderDoc's Python API. It works with Vulkan, D3D11, D3D12, and OpenGL applications.
Before any GPU debugging, verify the environment:
rdc doctorAll checks should pass. If rdc doctor fails, check:
RENDERDOC_PYTHON_PATH is set to the directory containing renderdoc.pydrenderdoc.dll is in the same directory as renderdoc.pydrenderdoccmd.exe is on PATH or in the module directoryEvery inspection session follows open-work-close:
rdc open path/to/capture.rdc # Start daemon, load capture
# ... inspection commands ...
rdc close # Release resources, stop daemonCheck session state with rdc status. Only one capture can be open per session (use --session name for parallel sessions).
IMPORTANT: Always close sessions when done. Leaked daemon processes consume GPU memory.
rdc capture -o output.rdc -- /path/to/app [app-args...]Key options:
-o, --output: Output .rdc file path--frame N: Capture frame N (default: first presented frame)--timeout S: Capture timeout in seconds (default: 60)--api-validation: Enable API validation layer--ref-all-resources: Reference all resources (larger capture, more complete)--wait-for-exit: Wait for the app to exit after captureMany applications resolve assets relative to CWD. Always set CWD appropriately:
cd /path/to/app/root && rdc capture -o /output/path/capture.rdc -- ./appFor lux-playground specifically:
cd D:/shaderlang && python D:/renderdoc/capture_frame.pyFor Vulkan apps, the RenderDoc Vulkan layer must be registered:
HKCU\SOFTWARE\Khronos\Vulkan\ImplicitLayers must contain D:\renderdoc\module\renderdoc.json (DWORD 0)ENABLE_VULKAN_RENDERDOC_CAPTURE=1 must be setHeadless Vulkan apps (no swapchain / no vkQueuePresentKHR) cannot be captured by RenderDoc since frame boundaries are defined by present calls. Options:
--interactive mode if the app supports it (opens a window with a swapchain)capture_frame.py for reliable programmatic capture--trigger mode (inject without auto-capture, then rdc capture-trigger)renderdoccmd capture directlyAfter opening a capture, start with high-level overview:
rdc info --json # API, GPU, driver, resolution, frame number
rdc stats --json # Per-pass breakdown, top draws, largest resources
rdc passes # List render passes (debug markers / implicit passes)
rdc draws --limit 20 # First 20 draw calls
rdc count draws # Total draw call countrdc draws --pass "Shadow Pass" --json # Draws in a specific pass
rdc draws --pass "GBuffer" --limit 10 # First 10 GBuffer drawsrdc events --limit 50 # All API events (not just draws)
rdc events --type DrawIndexed --json # Filter by event type
rdc event 42 --json # Detail for one eventThe virtual filesystem provides a structured view of the capture:
rdc ls / # Root directories
rdc ls /textures -l # List textures with metadata
rdc tree /pipelines --depth 2 # Pipeline tree
rdc cat /events/42 # Event detailGet full pipeline state at any draw call:
rdc pipeline EID --json # Full pipeline state
rdc pipeline EID vs --json # Vertex shader section only
rdc pipeline EID ps --json # Pixel/fragment shader section only
rdc pipeline EID om --json # Output merger (blend, depth, stencil)
rdc pipeline EID rs --json # Rasterizer state (culling, viewport)
rdc pipeline EID ia --json # Input assembler (vertex buffers, topology)
rdc pipeline EID ds --json # Depth-stencil staterdc bindings EID --json # All bindings for all stages
rdc bindings EID --set 0 --json # Descriptor set 0 onlyrdc shader EID vs --json # Vertex shader metadata
rdc shader EID ps --json # Fragment/pixel shader metadata
rdc shader EID ps --source # Debug source code (if available)
rdc shader EID ps --reflect --json # Reflection: inputs, outputs, cbuffers
rdc shader EID ps --constants --json # Constant buffer values at this drawrdc shader EID ps --targets # List available disassembly formats
rdc shader EID ps --target spirv # SPIR-V disassembly
rdc shader EID ps --target glsl # GLSL (cross-compiled, if available)rdc search "shadow" --json # Search all shader disassembly for "shadow"
rdc search "main" --stage ps # Search only pixel shaders
rdc shaders --stage ps --json # List all unique pixel shaders
rdc shader-map --json # EID-to-shader mappingThis is the core pattern for visual debugging. Always export to PNG, then use Claude Code's Read tool to view the image.
rdc rt EID -o D:/renderdoc/captures/analysis/render_target.png
rdc rt EID --target 1 -o D:/renderdoc/captures/analysis/rt_target1.png # MRT target 1rdc texture RESID -o D:/renderdoc/captures/analysis/texture.png
rdc texture RESID --mip 2 -o D:/renderdoc/captures/analysis/mip2.pngrdc thumbnail -o D:/renderdoc/captures/analysis/thumb.pngAfter exporting a PNG, use the Read tool to view it (Claude Code is multimodal):
Read tool: D:/renderdoc/captures/analysis/render_target.pngDo NOT use cat or bash to view images. The Read tool renders them visually.
Correlate what you see in the image with pipeline state data:
rdc pipeline EID --json)rdc shader EID ps --constants --json)Find all draws that wrote to a pixel:
rdc pixel X Y --json # Full pixel history at current event
rdc pixel X Y EID --json # Pixel history up to EIDRead the current color at a pixel:
rdc pick-pixel X Y --json # Color at (X,Y) from current render target
rdc pick-pixel X Y EID --json # Color at specific eventStep through shader execution for a specific pixel:
rdc debug pixel EID X Y --json # Shader inputs/outputs summary
rdc debug pixel EID X Y --trace # Full execution trace (every line)
rdc debug pixel EID X Y --dump-at 42 # Variable snapshot at line 42rdc debug vertex EID VTXID --json # Vertex shader debug for vertex ID
rdc debug vertex EID VTXID --trace # Full tracerdc debug thread EID GX GY GZ TX TY TZ --json # Compute thread debugModify shaders without recompiling the application:
# 1. Check available encodings
rdc shader-encodings --json
# 2. Extract shader source
rdc shader EID ps --source -o D:/renderdoc/captures/analysis/shader.frag
# 3. Edit the shader (use Edit tool)
# 4. Build the modified shader
rdc shader-build D:/renderdoc/captures/analysis/shader.frag --encoding GLSL --stage ps --json
# 5. Replace (use the shader_id from build output)
rdc shader-replace EID ps --with SHADER_ID --json
# 6. Export to verify the change
rdc rt EID -o D:/renderdoc/captures/analysis/after_edit.png
# 7. Restore when done
rdc shader-restore EID ps
# or: rdc shader-restore-allCompare two captures:
# Quick summary of differences
rdc diff capture_a.rdc capture_b.rdc --shortstat
# Detailed comparisons
rdc diff capture_a.rdc capture_b.rdc --draws --json # Draw call differences
rdc diff capture_a.rdc capture_b.rdc --resources --json # Resource differences
rdc diff capture_a.rdc capture_b.rdc --passes --json # Pass structure differences
rdc diff capture_a.rdc capture_b.rdc --framebuffer --json # Final framebuffer diff
# Visual diff
rdc diff capture_a.rdc capture_b.rdc --framebuffer --diff-output D:/renderdoc/captures/analysis/diff.png# 1. Find the draw call that should render the object
rdc draws --json | jq '.[] | select(.name | contains("ObjectName"))'
# or search by pass:
rdc draws --pass "Main Pass" --json
# 2. Check if it's being culled
rdc pipeline EID rs --json # Look at CullMode, FrontFace
# 3. Check depth state
rdc pipeline EID ds --json # DepthEnable, DepthFunc, DepthWriteMask
# 4. Check blend state (maybe alpha is 0)
rdc pipeline EID om --json # BlendEnable, SrcBlend, DestBlend
# 5. Check vertex transform
rdc debug vertex EID 0 --json # Is the position off-screen or behind camera?
# 6. Check if the draw is even issuing primitives
rdc draw EID --json # VertexCount, InstanceCount, IndexCount# 1. Export the render target to see what's there
rdc rt EID -o D:/renderdoc/captures/analysis/wrong_color.png
# 2. Pick the problematic pixel
rdc pick-pixel X Y EID --json
# 3. Check texture bindings — is the right texture bound?
rdc bindings EID --json
# 4. Export the bound texture
rdc texture RESID -o D:/renderdoc/captures/analysis/bound_texture.png
# 5. Check shader constants — wrong material colors?
rdc shader EID ps --constants --json
# 6. Check blend state — additive when it should be alpha?
rdc pipeline EID om --json
# 7. Debug the pixel shader to trace the calculation
rdc debug pixel EID X Y --trace# 1. Find the shadow pass
rdc passes --json
rdc draws --pass "Shadow*" --json
# 2. Export the shadow map
SHADOW_EID=$(rdc draws --pass "Shadow*" -q | tail -1)
rdc rt $SHADOW_EID -o D:/renderdoc/captures/analysis/shadow_map.png
# 3. Check shadow map resolution (is it too small?)
rdc bindings $SHADOW_EID --json # Look at render target dimensions
# 4. Check depth bias
rdc pipeline $SHADOW_EID rs --json # DepthBias, SlopeScaledDepthBias
# 5. Find the lighting pass that reads the shadow map
rdc draws --pass "Raster*" --json
LIGHT_EID=$(rdc draws --pass "Raster*" -q | head -1)
# 6. Check how the shadow map is sampled
rdc shader $LIGHT_EID ps --source # Look for shadow sampling code
rdc shader $LIGHT_EID ps --constants --json # Light matrices, bias values
# 7. Debug a shadowed pixel
rdc debug pixel $LIGHT_EID X Y --trace# 1. Get frame overview
rdc stats --json
# 2. Count draws per pass
rdc passes --json # Look for passes with excessive draw counts
# 3. Look for redundant state changes
rdc events --limit 500 --json | jq 'group_by(.type) | map({type: .[0].type, count: length}) | sort_by(-.count)'
# 4. Check for large resources
rdc resources --sort size --json | jq '.[-10:]' # Top 10 largest resources
# 5. Look for overdraw (if GPU counters available)
rdc counters --list
rdc counters --name "overdraw" --json
# 6. Export with wireframe overlay to visualize overdraw
rdc rt EID --overlay wireframe -o D:/renderdoc/captures/analysis/wireframe.png# Quick diff
rdc diff before.rdc after.rdc --shortstat
# Detailed diffs
rdc diff before.rdc after.rdc --draws --json
rdc diff before.rdc after.rdc --framebuffer --diff-output D:/renderdoc/captures/analysis/frame_diff.png
# Compare pipeline state at specific draw
rdc diff before.rdc after.rdc --pipeline EID --json# 1. Get pixel history — which draws touched this pixel?
rdc pixel X Y --json
# 2. Pick the draw that produced the final color
# (usually the last non-failing entry in pixel history)
# 3. Get the pixel's current value
rdc pick-pixel X Y EID --json
# 4. Debug the shader at that pixel
rdc debug pixel EID X Y --json
# 5. Get full execution trace if needed
rdc debug pixel EID X Y --trace
# 6. Check variable values at a specific shader line
rdc debug pixel EID X Y --dump-at LINE_NUMBERGPU captures can produce enormous output. Follow these rules:
--limit for exploration: rdc draws --limit 20, rdc events --limit 50rdc draws --pass "Shadow Pass" instead of all draws-q for ID lists: rdc draws -q returns only EIDs, not full details--json selectively: JSON is verbose; use TSV default for scanningrdc pipeline EID vs instead of full rdc pipeline EIDrdc search "pattern" --limit 10rdc info: ~20 linesrdc draws --limit 20: ~25 linesrdc pipeline EID --json: ~200-500 lines (full), ~50 lines (per section)rdc shader EID ps --source: ~50-500 lines depending on shaderrdc debug pixel EID X Y --trace: ~100-1000 lines depending on shader complexitypip install rdc-cliCheck RENDERDOC_PYTHON_PATH points to directory containing renderdoc.pyd and renderdoc.dll.
The app may not present frames in the expected way. Try:
rdc capture --trigger -- /path/to/app # Inject-only mode
# Then manually trigger: rdc capture-triggerrdc status # Check if daemon is alive
rdc close # Force close
rdc open capture.rdc # Re-openSome features (GPU counters, pixel history) depend on the GPU and driver. Check:
rdc gpus --json # GPU capabilities
rdc counters --list # Available counters (empty if not supported)For the complete list of all 66 commands with arguments, options, types, and defaults, see references/commands-quick-ref.md.
For extended debugging recipes with expected output shapes, see references/debugging-recipes.md.
© rudybear, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .claude/skills/renderdoc-gpu-debug of rudybear/renderdoc-skill.
Open the folder on GitHubat commit de33576
Renderdoc GPU Debug next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Renderdoc GPU Debug this skillrudybear/renderdoc-skill | 211 | — | ~4k | Automated safety check: Pass | MIT | |
| Electron DevTools Trace Analysiskeybase/client | 9.3k | — | ~809 | Automated safety check: Pass | BSD-3-Clause | |
| React Performanceaffaan-m/ECC | 274k | 1 repos | ~4.5k | Automated safety check: Pass | MIT | |
| Fullstack Devinfometa/workbuddyskills | 342 | — | ~1k | Automated safety check: Pass | MIT | |
| LangBot Core Developmentlangbot-app/LangBot | 18k | — | ~1.4k | Automated safety check: Notes | Apache-2.0 | |
| Code Review SkillRain-kl/OpenFlare | 288 | — | ~2.3k | Automated safety check: Notes | MIT |
keybase/client
Analyzes Chrome or Electron DevTools Performance trace exports with Python scripts to find where render time actually goes, without opening DevTools.
affaan-m/ECC
React and Next.js performance optimization patterns adapted from Vercel Engineering's React Best Practices (https://github.com/vercel-labs/agent-skills).
infometa/workbuddyskills
Full-stack backend architecture and frontend-backend integration guide.
langbot-app/LangBot
Covers developing the LangBot core backend and web UI: dev setup, repo layout, API auth types, adding endpoints, migrations and keeping the MCP server in step.
Rain-kl/OpenFlare
Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, PHP, Python, Django, Go, C/.NET, Kotlin, Swift, NestJS, C/C++, and more.
v2space-labs/shader-for-interfaces
Decides whether an interface effect belongs in CSS, SVG, Canvas 2D, WebGL or WebGPU, then builds, debugs and visually verifies focused GPU effects inside product UIs.
GPU frame debugging with RenderDoc via rdc-cli. An agent skill from rudybear/renderdoc-skill. Renderdoc GPU Debug is an agent skill from rudybear/renderdoc-skill. GPU frame debugging with RenderDoc via rdc-cli.
Renderdoc GPU Debug fits situations like: the user mentions: GPU debugging; rendering artifacts; shadow problems; visual glitches.
Run `npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a claude-code`. Or copy the skill folder (.claude/skills/renderdoc-gpu-debug in rudybear/renderdoc-skill) into .claude/skills/renderdoc-gpu-debug in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a codex`. Or copy the skill folder (.claude/skills/renderdoc-gpu-debug in rudybear/renderdoc-skill) into .agents/skills/renderdoc-gpu-debug in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rudybear/renderdoc-skill --skill renderdoc-gpu-debug -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/renderdoc-gpu-debug, .gemini/skills/renderdoc-gpu-debug, .github/skills/renderdoc-gpu-debug and .opencode/skills/renderdoc-gpu-debug in your project.
Going by SKILL.md and its folder, Renderdoc GPU Debug needs the command-line tools its instructions call (jq, python and pip). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Renderdoc GPU Debug is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Renderdoc GPU Debug: Electron DevTools Trace Analysis (keybase/client, 9.3k stars), React Performance (affaan-m/ECC, 274k stars), Fullstack Dev (infometa/workbuddyskills, 342 stars) and LangBot Core Development (langbot-app/LangBot, 18k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rudybear (a GitHub user) maintains it in rudybear/renderdoc-skill, which has 211 GitHub stars. The repository was last updated on February 28, 2026.
Source: rudybear/renderdoc-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.