Agent skill

Dream Shader Verify

by TypeDreamMoon in TypeDreamMoon/DreamShader

Check and compile DreamShader sources headlessly — one file or the whole DShader tree — without opening the Unreal editor, and read back every diagnostic with its file, line and code.

MITAuto-check passedGame Development

Install Dream Shader Verify

skills CLI
$ npx skills add TypeDreamMoon/DreamShader --skill dream-shader-verify -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TypeDreamMoon/DreamShader dream-shader-verify --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TypeDreamMoon/DreamShader.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.skill/dream-shader-verify .claude/skills/dream-shader-verify && rm -rf skills-src

Use ~/.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/

Facts

Skill name
dream-shader-verify
GitHub stars
106
Token cost
~2.1k tokens
SKILL.md length
975 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Check and compile DreamShader sources headlessly — one file or the whole DShader tree — without opening the Unreal editor, and read back every diagnostic with its file, line and code.

  • Asked to verify
  • SKILL.md covers Three levels, What you get back, The thing to understand about… and Gotchas, plus 2 more sections
  • Calls pwsh
  • CI-gate .dss / .dsi / .dsp / .dsm / .dsf sources

What it does

Dream Shader Verify is an agent skill from TypeDreamMoon/DreamShader. Check and compile DreamShader sources headlessly — one file or the whole DShader tree — without opening the Unreal editor, and read back every diagnostic with its file, line and code. Use when asked to verify, validate, check, build, compile, test or CI-gate .dss / .dsi / .dsp / .dsm / .dsf sources, or to find out whether a material still builds.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Game Development, covering Shaders and Game development. It works with Unreal Engine. The repository describes itself as: Unreal Engine Material DSL. Use Dream Shader Lang Write Unreal Material. Simple · Fast · Full syntax · HLSL GLSL Lang Support. The licence is MIT.

When your agent uses it

  • Asked to verify
  • CI-gate .dss / .dsi / .dsp / .dsm / .dsf sources
  • Find out whether a material still builds

Example prompts

  • “/dream-shader-verify”

What it can do on your machine

Read from SKILL.md and the folder at commit 1a5dfab. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • pwsh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dream Shader Verify loads about 2.1k tokens when it runs. Until then it costs about 92 tokens; SKILL.md has 975 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~92
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from TypeDreamMoon/DreamShader at commit 1a5dfab, republished under its MIT licence (© TypeDreamMoon). 975 words, ~2,130 tokens.

Download SKILL.mdSave it as .claude/skills/dream-shader-verify/SKILL.md (or your agent's skills folder).
name
dream-shader-verify
description
Check and compile DreamShader sources headlessly — one file or the whole DShader tree — without opening the Unreal editor, and read back every diagnostic with its file, line and code. Use when asked to verify, validate, check, build, compile, test or CI-gate .dss / .dsi / .dsp / .dsm / .dsf sources, or to find out whether a material still builds.

dream-shader-verify <file> | -All

The gate every other DreamShader skill ends with. The driver, .skill/dsc.ps1, wraps UnrealEditor-Cmd.exe <project> -run=DreamShader <verb> so a check is one command and one exit code.

Paths below are relative to the plugin root, Plugins/DreamShader/.

Three levels

VerbGoes as far asWritesUse it
checkparse, bind, lower, validate — everything before an assetnothingfirst, and after every edit: the fast gate
compilethe assetthe .uasset files (and a .dsp's render targets and registry files)to prove the file builds
check -Shadersthe asset and its shaders, for the project's shader formatsthe assets, as compile doesfor a /// @custom body or a .dsp with HLSL passes — the only thing that compiles that HLSL
bash
pwsh -File Plugins/DreamShader/.skill/dsc.ps1 check DShader/UI/M_Panel.dss
pwsh -File Plugins/DreamShader/.skill/dsc.ps1 compile DShader/UI/M_Panel.dss -Force -CleanNew
pwsh -File Plugins/DreamShader/.skill/dsc.ps1 check DShader/Passes/CP_Outline.dsp -Shaders -CleanNew

Exit 0 success, 1 failure — the commandlet's own codes. Run from anywhere inside the project: the driver walks up for the .uproject and resolves the engine from its EngineAssociation.

Every run boots the editor — tens of seconds before DreamShader gets control. One run over many files costs about what one file does, so batch: edit everything, then check -All once.

ArgumentEffect
(positional)the source — absolute, or relative to the working directory. .dss .dsi .dsp .dsm .dsf; a .dsh is checked through the files that include it
-Allevery source of every source root — the project's DShader/ and each enabled plugin's — except Packages/. compile builds .dsf first, the rest in path order
-Forcecompile / check -Shaders: rebuild even when the source hash is unchanged. Without it an unchanged file logs Skipped … source hash is unchanged … and proves nothing
-CleanNewdelete the .uasset files this run created (they were not on disk before it), then prune the emptied folders
-DiagnosticsOut <file>check: the diagnostics as JSON as well
-Platform SM6,SM5 / -Quality High / -Timeout 120check -Shaders: which formats and quality levels, and how long one material may take
-Project / -Engineoverride the discovery; UE_ENGINE_ROOT works too
-Rawthe whole engine log instead of the DreamShader messages

What you get back

text
dsc: compile  project=MyProject.uproject  engine=C:\Program Files\Epic Games\UE_5.8
LogDreamShader: Display: Generated Material /Game/UI/M_Panel.M_Panel from …/DShader/UI/M_Panel.dss.
Warnings:
…/DShader/UI/M_Panel.dss(13,20): DSH7233: A slider range ('@slider', …) is for a scalar parameter; this one is 'float3', which has no slider, so the range is ignored.

Assets written to disk by this run:
  Content/UI/M_Panel.uasset  [NEW]
    deleted (-CleanNew)

dsc: OK (exit 0)

A failure lists every error of the stage that failed, each with its position and code:

text
LogDreamShader: Error: …/M_Broken.dss(7,16): DSH4200: 'Tin' is not declared in this scope.
LogDreamShader: Error: …/M_Broken.dss(8,15): DSH4208: 'saturte' is not a function, a builtin or a struct.
LogDreamShader: Error: …/M_Broken.dss(9,16): DSH4250: 'mix' is the GLSL spelling; this language is HLSL, so write 'lerp'.
LogDreamShader: Error: DreamShader check: 1 source(s), 3 error(s), 0 warning(s). RESULT=FAILED
dsc: FAILED (exit 1)

The pipeline stops between stages — parse, bind, lower, validate, emit — not at the first error: fix them all, then run again. A syntax error can hide the binder's errors behind it, so a second run may find more.

The thing to understand about compile

The commandlet writes real .uasset files. The interactive editor, for a ThinCustom material (the project default), does not: it keeps the product in memory (Ephemeral), and the source is the authoring surface. A file a headless run left on disk then wins: the editor rebuilds that material on disk instead of in memory (it logs so, and Tools ▸ DreamShader ▸ Make Ephemeral undoes it).

So -CleanNew: the driver records every .uasset under the Content folders of the project and its plugins before the run, and deletes only the ones that were not there before. An asset that existed and was rewritten is never deleted; when git tracks it, it is reported in red with the command that restores it:

text
  Content/UI/Cards/M_Foil.uasset  [TRACKED AND MODIFIED]
    restore with: git -C "D:\Work\MyProject" checkout -- "Content/UI/Cards/M_Foil.uasset"

That is not a driver bug: the source genuinely regenerated the asset, and only the user knows whether the new bytes should be kept. (A Graph-backend material and a material function are saved on every build in the editor too; for those, a rewrite is expected.)

Show full SKILL.md (423 more words)Show less

Gotchas

  • -All covers the plugins' sources too. Every enabled plugin with a DShader/ folder is a source root, so compile -All rebuilds its materials into its own Content/ — files another repository owns. Compile single files while iterating; keep -All for check, or for a deliberate gate.
  • A .dsp builds on UE 5.8+ only (DSH8300 below that). Besides the pipeline it writes a render target per exported buffer, and an HLSL pass rewrites the project's DShader/.dreampass/ registry and snapshots — source files to commit, which the driver lists after the run.
  • check -Shaders saves assets, because 2.0 has no transient asset; the driver reports them like compile's. It drives the cook-target shader compilers (a commandlet does not render), so its HLSL errors come from the engine log.
  • A green compile -All can have built nothing: an empty source list logs DreamShader commandlet found no source files to compile. at Warning and exits 0. Look for Generated ….
  • A flag's value is on or off, or the run does nothing. Straight to the commandlet, -Force and -Force=true (1, yes, on) are on and -Force=false (0, no, off) is off; any other value, an empty one included, is DSH9110 and the command exits 1 without touching a file. The driver passes flags bare.
  • The first bare token after -run=DreamShader is the verb, unconditionally — -run=DreamShader Source=X compile runs a verb called Source=X.
  • The editor bridge never runs inside a commandlet: no diagnostics.json, no squiggles in VS Code. The log is where a headless run's diagnostics are — and the driver prints them, each report whole.
  • Use PowerShell, not Git Bash, for an asset path: Git Bash rewrites /Game/X into C:/Program Files/Git/Game/X.

Troubleshooting

SymptomFix
EngineAssociation '…' is not registered.pass -Engine <root> or set UE_ENGINE_ROOT
Could not find a .uproject at or above …pass -Project
UnrealEditor-Cmd.exe not found at …the engine root is wrong — it is the directory containing Engine/
dsc: FAILED (exit 1) with no LogDreamShader linere-run with -Raw; the failure was before DreamShader got control (a missing module, a crash at boot)
Skipped … source hash is unchanged …add -Force
DreamShader compile requires a .dss, .dsi, .dsp, .dsm or .dsf file: …you pointed at a .dsh or another file. A header builds nothing — compile a file that includes it
… (mount '/X/' is not the project or one of its plugins …)the asset went to an engine or external mount; find and clean it by hand

See also

© TypeDreamMoon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .skill/dream-shader-verify of TypeDreamMoon/DreamShader.

Open the folder on GitHubat commit 1a5dfab

Compare with similar skills

Dream Shader Verify 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.

Dream Shader Verify compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dream Shader Verify this skillTypeDreamMoon/DreamShader106—~2.1kAutomated safety check: PassMIT
UMG Material MCPwinyunq/UnrealMotionGraphicsMCP210—~913Automated safety check: PassMIT
Game DeveloperJeffallan/claude-skills12k—~1.5kAutomated safety check: PassMIT
Scenario Unreal Materialsscenario-labs/skills946—~4.6kAutomated safety check: PassMIT
Gamedev Shadersericrisco/rsc-harness180—~3.6kAutomated safety check: PassMIT
UMG MCP Authoringwinyunq/UnrealMotionGraphicsMCP210—~2.6kAutomated safety check: PassMIT

Similar skills

  • UMG Material MCP

    winyunq/UnrealMotionGraphicsMCP

    Creates, edits and compiles Unreal Engine 5.8 material assets as one HLSL Custom node through the UMG MCP bridge, instead of editing .uasset files directly.

    210 GitHub stars~913 tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Game Developer

    Jeffallan/claude-skills

    Covers game programming in Unity and Unreal Engine: ECS design, physics, multiplayer networking, shaders and profiling toward a 60 FPS target.

    12k GitHub stars~1.5k tokensUpdated 7 days ago
    Game DevelopmentAuto-check passed
  • Scenario Unreal Materials

    scenario-labs/skills

    A skill your agent uses when a UE5 task involves materials or textures: a master material and instances for a kit, Substrate or legacy, Blendable vs Adaptive GBuffer, glass, emissive screens…

    946 GitHub stars~4.6k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Gamedev Shaders

    ericrisco/rsc-harness

    A skill your agent uses when authoring or debugging a shader, material, VFX, or full-screen post-process in a game engine — Godot 4.x .gdshader, Unity 6 URP/HDRP, Unreal 5.x Materials, effect…

    180 GitHub stars~3.6k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • UMG MCP Authoring

    winyunq/UnrealMotionGraphicsMCP

    Builds and edits Unreal Engine UMG interfaces through the Unreal Motion Graphics MCP, covering widget trees, HLSL materials, Sequencer animations and readback checks.

    210 GitHub stars~2.6k tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Unreal Bridge

    TornLux/UnrealBridge

    Execute Python scripts inside a running Unreal Engine 5.3+ editor via TCP bridge.

    306 GitHub stars~8.4k tokensUpdated 9 days ago
    Game DevelopmentAuto-check: notes

More from TypeDreamMoon/DreamShader

  • Dream Shader Create

    TypeDreamMoon/DreamShader

    Write a new DreamShader source from a plain-language description — a material, material function, layer, material instance or Custom Pass pipeline — then check and compile it headlessly to prove it…

    106 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Dream Shader Decompile

    TypeDreamMoon/DreamShader

    Export an existing Unreal material, material function, layer, layer blend, material instance or Custom Pass pipeline back into DreamShaderLang source headlessly, so a hand-built material graph or…

    106 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Dream Shader Diagnose

    TypeDreamMoon/DreamShader

    Resolve a DreamShader compile error or warning — look its DSH code up, explain the cause, and fix the source — or find out why a DreamShader material silently comes out wrong.

    106 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Dream Shader Migrate

    TypeDreamMoon/DreamShader

    Rewrite DreamShaderLang 1.x sources (.dsm / .dsf / .dsh) as 2.0 .dss with dsc migrate, which proves each rewrite builds the same graph before it writes anything.

    106 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Dream Shader Optimize

    TypeDreamMoon/DreamShader

    Clean up a machine-written DreamShader source — a decompiled or migrated .dss (or a 1.x .dsm / .dsf export) — into one a person would have written, without changing what it builds, and prove the…

    106 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Dream Shader Verify

What does Dream Shader Verify do?

Check and compile DreamShader sources headlessly — one file or the whole DShader tree — without opening the Unreal editor, and read back every diagnostic with its file, line and code. Dream Shader Verify is an agent skill from TypeDreamMoon/DreamShader. Check and compile DreamShader sources headlessly — one file or the whole DShader tree — without opening the Unreal editor, and read back every diagnostic with its file, line and code.

When should I use Dream Shader Verify?

Dream Shader Verify fits situations like: asked to verify; CI-gate .dss / .dsi / .dsp / .dsm / .dsf sources; find out whether a material still builds.

How do I install Dream Shader Verify in Claude Code?

Run `npx skills add TypeDreamMoon/DreamShader --skill dream-shader-verify -a claude-code`. Or copy the skill folder (.skill/dream-shader-verify in TypeDreamMoon/DreamShader) into .claude/skills/dream-shader-verify in your project. Claude Code loads it when a task matches its description.

How do I install Dream Shader Verify in Codex?

Run `npx skills add TypeDreamMoon/DreamShader --skill dream-shader-verify -a codex`. Or copy the skill folder (.skill/dream-shader-verify in TypeDreamMoon/DreamShader) into .agents/skills/dream-shader-verify in your project. Codex loads it when a task matches its description.

Can I use Dream Shader Verify in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TypeDreamMoon/DreamShader --skill dream-shader-verify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dream-shader-verify, .gemini/skills/dream-shader-verify, .github/skills/dream-shader-verify and .opencode/skills/dream-shader-verify in your project.

What does Dream Shader Verify need to run?

Going by SKILL.md and its folder, Dream Shader Verify needs the command-line tools its instructions call (pwsh).

Does Dream Shader Verify access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Dream Shader Verify safe to install?

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.

What licence does Dream Shader Verify use?

Dream Shader Verify is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dream Shader Verify use?

About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dream Shader Verify?

Skills that share tags, products or a category with Dream Shader Verify: UMG Material MCP (winyunq/UnrealMotionGraphicsMCP, 210 stars), Game Developer (Jeffallan/claude-skills, 12k stars), Scenario Unreal Materials (scenario-labs/skills, 946 stars) and Gamedev Shaders (ericrisco/rsc-harness, 180 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dream Shader Verify?

TypeDreamMoon (a GitHub user) maintains it in TypeDreamMoon/DreamShader, which has 106 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 9, 2026.

Source: TypeDreamMoon/DreamShader on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.