Current version support is for 26.2-rc-2
Client-side fabric mod for working on Minecraft core shaders, post shaders, post effects, and render pipelines without restarting the game or reloading the resource pack.
2026-04-08.02-07-21.mp4
- In-game Shader DevTools menu, available with
Gby default, with reload, browser, inspector, override, and log tools - Reload core shaders, post shaders, or both on demand without fully reloading the resource pack
- Quick core shader reload keybind, available with
Rby default - Searchable core shader and post effect list, with overridden entries shown first
- Live editing of shader and post effect files in-game, with GLSL and JSON syntax highlighting
- Create editable overrides for vanilla/resource-pack shader sources, save them, delete editable sources, and copy source text
- When a shader exists in multiple packs, inspect each source individually and force the active source without changing pack order
- Quickly visualize fragment shader output by replacing the shader result with a debug view
- Parse post effect JSON files, edit them, and inspect their target/pass graph while editing
- Force a post effect from its detail screen for debugging, then release it without restarting the client
- Search and inspect all registered render pipelines, including shader links, vertex formats, samplers, uniforms, defines, targets, and depth/stencil state
- Inspect uniform bindings live
- Manually override
Globalsuniform values - Inspect captured sampler bindings by pipeline, preview bound textures, read individual pixels, and copy 16x16 readbacks
- Live log viewer for the latest
logs/latest.loglines - On-screen debug summary for renderer, world, active post effect, globals overrides, and recent reload timings
- Shader debug logging via
dbg(...)inside core and post shaders, with output written to the Minecraft log - Local MCP server which can refresh shaders and take in-game screenshots
You can add calls like dbg("time=" + GameTime); to supported shader programs and the value will be written to logs/latest.log. It works on
both OpenGL and Vulkan, supports ASCII, and you can do top level concatenation such as dbg("pos=" + WorldPos);. The mod will convert the value to a string itself.
The repository also includes a MCP server at mcp/csdt_mcp_server.py with tools for refresh_shaders and take_screenshot.