pixel-art
Skill2 starsChanged 5 months agoMITView on GitHub
Generate single-subject pixel art (scenes, characters, buildings, title cards) from a short brief, with a built-in style system (palette, density, lighting, fonts). Modes `hi-fi` (painterly high-density, default) and `lo-fi` (scanlined banner). Generative: produces a raster, runs a deterministic median-cut quantize to true grid-aligned pixel art, and can serialize one sprite to SVG. Repo-agnostic — returns artifacts, writes nothing; with no generator reachable it returns a model-agnostic prompt brief. Triggers on "pixel art", "hi-fi/lo-fi pixel", "VT323 title card", "generated pixel art as SVG" (single sprite), or a hi-density reference plus "this style". Does NOT trigger on — and declines — composed/branded SVG-asset jobs (banner, icon set, multi-asset set, needing exact text, a fixed viewBox, brand tokens, or an editable vector source it doesn't author). Not for vector illustration, logos (`brand-workshop`), photo-real, p5.js (`algorithmic-art`), or charts. Never names living artists.
- Installs packages
12 other projects use a version of this.
Adopted by
Most recently taken up by
- ashleysbrain/skillstheir own version, first seen Nov 8, 2026
- ZhouYinLong-lab/Dog-Skillstheir own version, first seen Nov 8, 2026
- edenfunf/reelmimictheir own version, first seen Nov 4, 2026
- andrewalhaj/custom-hermesagenttheir own version, first seen Oct 20, 2026
- Tommy-yw/RunbookHermestheir own version, first seen Oct 8, 2026
- talhaMah56/claude_skillstheir own version, first seen Sep 12, 2026
Used with
Projects with it also use minecraft-modpack-server, pokemon-player and 2 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
math-incSkillminecraft-modpack-server
Set up a modded Minecraft server from a CurseForge/Modrinth server pack zip. Covers NeoForge/Forge install, Java version, JVM tuning, firewall, LAN config, backups, and launch scripts.
Also in 3 projects that use this
math-incSkillpokemon-player
Play Pokemon games autonomously via headless emulation. Starts a game server, reads structured game state from RAM, makes strategic decisions, and sends button inputs — all from the terminal.
Also in 3 projects that use this
xuanxuan1983Skillbaoyu-comic
Knowledge comic creator supporting multiple styles (Logicomix/Ligne Claire, Ohmsha manga guide). Creates original educational comics with detailed panel layouts and sequential image generation. Use when user asks to create "知识漫画", "教育漫画", "biography comic", "tutorial comic", or "Logicomix-style comic".
Also in 3 projects that use this
Tommy-ywSkillhermes-agent
Complete guide to using and extending Hermes Agent — CLI usage, setup, configuration, spawning additional agents, gateway platforms, skills, voice, tools, profiles, and a concise contributor reference. Load this skill when helping users configure Hermes, troubleshoot issues, spawn agent instances, or make code contributions.
Also in 3 projects that use this
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- wanshuiyin/Auto-claude-code-research-in-sleep★ 19ksame name
- edenfunf/reelmimic★ 1.8ksame name
- Tommy-yw/RunbookHermes★ 546same name
- ervareza/agent-skill-pixel-art★ 8same name
- Yusong-Enceladus/claude-skills★ 8same name
- ZhouYinLong-lab/Dog-Skills★ 7same name
- raja21068/AutoResearch★ 2same name
- ashleysbrain/skills★ 1same name
- andrewalhaj/custom-hermesagent★ 0same name
- ishanbhosale08/Daedalus★ 0same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- ai-eval-reviewSkill
- ai-ux-reviewSkill
- brand-workshopSkill
- defineSkill
- gamification-fitSkill
- ghostwriterSkill
- gtmSkill
- handshakeSkill
- i18nSkill
- pitch-deckSkill
- plain-englishSkill
- riskiest-assumption-testSkill
- screenwrightSkill
- skill-evaluatorSkill
- startup-auditSkill
- startup-grillSkill
- startup-launch-kitSkill
- stormSkill
- sub-agent-coordinatorSkill
- team-composerSkill
- tech-stack-recommendationsSkill
- validation-canvasSkill
- wear-the-hatSkill
- whoamiSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 13 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
13
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 49
If the user provides a reference screenshot and says *"this style"*, treat it as stylistic intent (palette / density / mood).
- Distinctive: line 80
If the brief needs any of the following, it is a
- Distinctive: line 107
If the request passes the gate (a single scene / character / building / nature / title-card / sprite), continue.
- Distinctive: line 139
If the brief mixes subjects ("character in a forest"), pick the
- Distinctive: line 146
Read the following references once at the start of the task:
- Distinctive: line 193
After generation, run the deterministic quantize pass (next section), then return the quantized artifact + the finalized prompt to the …
- Distinctive: line 223
If Pillow is unavailable and can't be installed, say so and return the un-quantized raster with a noted caveat — don't silently skip the …
- Very specific: line 228
If you cannot generate an image by any means in this runtime (no host-native capability and no image-gen MCP), OR the user explicitly asks …
- Distinctive: line 239
Do not call Path B "fallback" in user-facing output — call it "prompt brief" or "copy-pasteable prompt." It is a first-class deliverable.
- Very specific: line 245
If subject is title-card, always also produce a code-based SVG from templates/title-card.svg.
- Distinctive: line 254
When both Path A and the SVG path run, surface both: *"Here's the generated + quantized image, and a portable SVG title card — pick …
- Distinctive: line 273
If a user prompt names any specific artist (living or deceased),
- Distinctive: line 274
rewrite it: before generating: replace the artist name with the craft markers that artist's style would have evoked (high-density, …
- Distinctive: line 283
Before the craft check, confirm the output's kind matches the request: a single raster (or one-sprite SVG / title-card SVG) for a …
- Distinctive: line 312
If the generation fails the checklist, surface the gap to the user and offer to regenerate with adjusted prompt blocks (usually a density …
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
pixel-art
A pocket-sized pixel-art studio. You hand it a short brief — "medieval
harbor at dusk", "tavern interior with fireplace", "Whispers of the
Flame title card in VT323" — and it returns a finished image (whenever
any image generator is reachable) or a model-agnostic prompt brief you
can paste into the generator of your choice. The style is locked in
references/ so you do not have to re-describe palette, density,
composition, lighting, or typography every time.
Repo-agnostic. This skill assumes no repository and writes nothing to disk. Every artifact — the generated image, the quantized PNG/SVG, the prompt brief, the title-card SVG — is returned to the caller, who decides what to do with it. (Ephemeral temp files used purely to hand a raster to the quantize script are fine; persisting to a repo path is not.)
When to use this skill
- "Create a pixel-art [scene / character / building / forest / title card] of …"
- "Make a hi-fi pixel-art harbor at dusk."
- "Generate a lo-fi pixel banner like the agent-skills banners."
- "Title card for 'Whispers of the Flame' in VT323."
- "I want this image in the same hi-density pixel style as before."
- "Make this image a pixel-art version of itself."
- "Give me that sprite as SVG." (single generated sprite → WS4 serialize)
If the user provides a reference screenshot and says "this style",
treat it as stylistic intent (palette / density / mood). Do not
copy the reference image; produce an original composition that hits
the same craft markers (see references/anti-patterns.md).
When NOT to use this skill
- Composed / branded SVG-asset jobs — banners, icon sets, branded SVGs, multi-asset sets, anything needing exact rendered text, an exact layout/viewBox, brand tokens, or an editable vector source. This skill generates a single raster; it does not author composition. See the Phase 0 gate — it declines these honestly rather than substituting a raster.
- Vector illustration / icon design — use
canvas-designor hand-author SVG. Pixel art is raster-first; vectors are a different craft. - Logo or brand identity package — route to
brand-workshop. - Photo-realistic generation — wrong style; use a general image-gen model directly with a non-pixel-art prompt.
- Algorithmic / generative art with p5.js, particle systems, flow fields
— use Anthropic's
algorithmic-artskill. - Charts, dashboards, data visualization — use the data viz skills.
- Rasterizing an existing photograph as pixel art — out of scope; consider an external "pixelate" filter instead.
Phase 0 — Deliverable-type gate (run FIRST)
Before anything else, decide whether this is a job the skill does.
pixel-art is a single-subject generative skill: it produces a
raster and may serialize one sprite as SVG. It does not
author composed deliverables.
If the brief needs any of the following, it is a composition/authoring job and you must decline:
- exact rendered text (a banner/title with specific words laid out),
- an exact layout or
viewBox, - exact brand tokens / a brand spec,
- an editable / vector source as the deliverable,
- a multi-asset set (icon set, banner family, sprite sheet).
How to decline: state the mismatch plainly — "You asked for
<deliverable>, which needs <exact text / layout / vector source / a
set>. pixel-art generates a single raster (optionally one sprite as
SVG); it does not author composed SVG assets, so I can't produce this
honestly." Then stop. Do not down-convert the request to a
raster, and do not name a substitute tool — routing is the caller's
call.
Carve-outs (NOT a decline):
- Title card — the
title-card.svgtemplate is the one grandfathered authored-SVG path. A title-card request (even with exact title text) proceeds to the title-card SVG path in Phase 4. This is the single exception to "no exact rendered text." - Single-sprite SVG — "give me that generated sprite as SVG" is a serialize of one generated raster (Phase 4 / WS4 quantize), not a composed asset. Proceed.
If the request passes the gate (a single scene / character / building / nature / title-card / sprite), continue.
Phase 1 — Style mode
Two modes. Default is hi-fi. Confirm only if the user's brief
is ambiguous (e.g., "make a pixel-art banner" — banners are usually
lo-fi here).
| Mode | Use when | Anchor |
hi-fi | Game-style scenes, character art, fantasy interiors, painterly title cards, anything where craft density matters | Kiang's medieval harbor + tavern reference screenshots |
lo-fi | Repo banners, blog headers, retro UI mockups, anything that should feel like a CRT scanline + warm-paper background | agent-skills banners (e.g., team-composer-li.svg) |
The selected mode controls which palette block loads from
references/palette.md and which density profile loads from
references/density.md. Composition rules and font catalog are shared.
Phase 2 — Subject detection
Map the user's brief to one of five subjects. Each subject has its own
prompt template in templates/ and (when relevant) its own composition
rules in references/composition.md.
| Subject | Template | Examples |
scene | templates/scene-prompt.md | Harbor at dusk, tavern interior, twilight forest |
character | templates/character-prompt.md | Knight, merchant, traveler, NPC portrait |
building | templates/building-prompt.md | Inn, castle gate, lighthouse, market stall |
nature | templates/nature-prompt.md | Forest clearing, river bend, mountain pass |
title-card | templates/title-card-prompt.md + templates/title-card.svg | "Whispers of the Flame", chapter title, game splash |
If the brief mixes subjects ("character in a forest"), pick the
dominant subject (here: scene, with the character as a
foreground element). Note the secondary subject in the prompt's
composition block.
Phase 3 — Compose the prompt
Read the following references once at the start of the task:
references/style-modes.md— confirms hi-fi vs lo-fi profilereferences/palette.md— named palettes; pick one by moodreferences/density.md— pixel density + dithering rules per modereferences/composition.md— layout, eye-line, light-source rulesreferences/lighting.md— time-of-day + mood + color-temp guidancereferences/anti-patterns.md— craft-marker checklist + what to avoidreferences/fonts.md— only if subject istitle-card
Then load the subject template from templates/ and fill its prompt
blocks. The universal block structure is the same across subjects:
[STYLE] hi-density pixel art / lo-fi scanlined pixel art
[PALETTE] <named palette> — <hex anchors>
[SUBJECT] <one-line subject description>
[COMPOSITION] <foreground / midground / background, eye-line, focal point>
[LIGHTING] <time of day, key/fill direction, mood>
[DENSITY] <density anchor name, dithering policy>
[MOOD] <2–4 adjectives>
[NEGATIVE] <anti-patterns to forbid — see anti-patterns.md>This block format is deliberately model-agnostic — it accepts
structured natural-language prompts across any image generator.
Optional per-model phrasing nudges live in references/model-routing.md.
Phase 4 — Generation routing (attempt-then-fallback)
Two paths. Do not silently fall through — name which path is running.
The routing question is "can I generate at all?", not "is a specific named MCP connected?" Host-native image generation often isn't introspectable from inside a skill, so detect by attempting, not by checking a vendor list.
Path A — Inline generation (preferred whenever reachable)
Attempt inline generation using any available image-generation
capability — host-native OR an MCP tool. If you can produce an image
in this runtime, do it. Pass the composed prompt (Phase 3) to the
generator; apply optional per-model phrasing tweaks from
references/model-routing.md if you happen to be on a generator listed
there (the list is nudges, not a gate).
After generation, run the deterministic quantize pass (next section), then return the quantized artifact + the finalized prompt to the caller. Do not write either to a repo path — return them as values (image bytes/handle + the prompt text). The caller decides where they go.
Density note (advisory, not a gate): generators differ in how fine a pixel grain they reach from prompting alone. If an output misses the density anchor you named, regenerate with adjusted blocks, or — if you have another generator available — try it. This is advice, not a hard route-off rule; the quantize pass below also normalizes grain.
Quantize post-process (deterministic)
Raw diffusion output is pseudo pixel art — tens of thousands of unique
colors, no true grid. Run scripts/quantize.py (in this skill's
directory; needs Pillow — pip install -r scripts/requirements.txt) to
make it real grid-aligned pixel art:
python3 scripts/quantize.py <in.png> --format <png|svg> [--grid N] [--palette N] [--ramp <hexlist>] [--scale N]Pipeline: nearest-neighbor downscale to the target grid → median-cut
palette quantize (deterministic; honors a supplied fixed ramp) →
optional ordered dither + orphan-pixel cleanup → nearest-neighbor upscale
×N for display. Defaults: grid 128–256px, palette 24–48 colors, dither
off, median-cut palette. Output switch emits PNG or SVG (SVG = one
<rect> per run-length-merged cell — single sprite only, not a
banner/composition path). Return the requested format to the caller.
If Pillow is unavailable and can't be installed, say so and return the un-quantized raster with a noted caveat — don't silently skip the step.
Path B — Prompt-brief (only when generation is genuinely impossible)
If you cannot generate an image by any means in this runtime (no
host-native capability and no image-gen MCP), OR the user explicitly
asks for a copy-pasteable prompt, emit a prompt brief following
templates/prompt-brief-fallback.md. Return the brief to the caller
(do not write it to disk). The brief includes:
- The model-agnostic prompt (universal block format from Phase 3).
- Optional per-model variants for common generators (nudges only).
- Negative prompt block (anti-patterns).
- A note that the prompt is model-agnostic.
Do not call Path B "fallback" in user-facing output — call it "prompt brief" or "copy-pasteable prompt." It is a first-class deliverable.
Title-card SVG path (additive)
If subject is title-card, always also produce a code-based SVG
from templates/title-card.svg. This SVG uses VT323 by default
(per Kiang) and accepts the font, palette, and title text as
template tokens. It is portable (renders in browsers, exports to
PNG), and gives the user a path that does not depend on any image
generator at all. Return the filled SVG to the caller (do not write
it to disk). This is the one authored-SVG path the skill retains (see
the Phase 0 carve-out).
When both Path A and the SVG path run, surface both: "Here's the generated + quantized image, and a portable SVG title card — pick whichever fits your use case."
IP guardrail (non-negotiable)
Mirror algorithmic-art's standard:
- Never reference any specific named artist in any prompt — living or deceased (no "in the style of [artist]", no "[artist]-style"). Deceased artists' work is typically still under copyright; the guardrail applies regardless of life status. Rewrite the prompt to encode craft markers instead.
- Never copy a specific copyrighted work. If the user supplies a reference screenshot, treat it as stylistic intent only and produce an original composition.
- Any reference examples you return should be original generations, not derivatives of third-party reference imagery.
If a user prompt names any specific artist (living or deceased), rewrite it before generating: replace the artist name with the craft markers that artist's style would have evoked (high-density, painterly mid-tones, warm palette, etc.). Note the rewrite in the user-facing output.
Verification
Deliverable-type check (run FIRST)
Before the craft check, confirm the output's kind matches the request: a single raster (or one-sprite SVG / title-card SVG) for a generative brief; an honest decline for a composition/authoring brief (Phase 0). If you generated a raster for something that should have been declined, that is the failure this skill exists to prevent — stop and decline instead.
Craft-marker checklist
Then run the checklist in references/anti-patterns.md. Hi-fi mode
requires at least 5 of 6 craft markers present (marker 6 added in
v3.10.1; this section is the SKILL.md summary —
references/anti-patterns.md is authoritative on the full checklist and
regenerate-recipes):
- Deliberate hue shifts in shadow / light ramps (not pure lightness change).
- Cluster studies — no orphan single pixels.
- Banding avoidance — no long stripes of uniform color without breakup.
- Painterly mid-tones via ordered dithering where appropriate.
- Clean edges — silhouettes legible, no anti-aliasing fringe.
- Pixel scale matches the density anchor — output's pixel scale
lands in the band named in
[DENSITY]. Markers 1–5 check how pixels behave; marker 6 checks whether they are the right size.
Lo-fi mode is more permissive — the scanlined warm-paper background is the main anchor; the craft markers above are nice-to-have.
If the generation fails the checklist, surface the gap to the user and offer to regenerate with adjusted prompt blocks (usually a density bump or a different palette).
File map
skills/pixel-art/
├── SKILL.md (this file)
├── README.md (user-facing docs)
├── references/
│ ├── style-modes.md (hi-fi vs lo-fi profiles)
│ ├── palette.md (named palettes by mood)
│ ├── density.md (pixel density + dithering rules)
│ ├── composition.md (layout, eye-line, light source)
│ ├── lighting.md (time-of-day, mood, color-temp)
│ ├── fonts.md (VT323 default + 4 alternates)
│ ├── anti-patterns.md (craft-marker checklist + forbid list)
│ └── model-routing.md (optional per-model phrasing nudges)
├── scripts/
│ ├── quantize.py (deterministic median-cut quantize → PNG/SVG)
│ ├── test_quantize.py (stdlib assert-based invariants)
│ └── requirements.txt (Pillow)
└── templates/
├── scene-prompt.md
├── character-prompt.md
├── building-prompt.md
├── nature-prompt.md
├── title-card-prompt.md
├── title-card.svg (SVG template with VT323)
└── prompt-brief-fallback.mdCross-skill integration
| Skill | Relationship |
brand-workshop | Logo / identity packages route there. A composed/branded asset set is a decline here (Phase 0), not a pixel-art job — but the caller routes; this skill does not name where. |
Anthropic's algorithmic-art | Sibling: algorithmic art uses p5.js (procedural, seeded). pixel-art uses image-gen models + structured prompts. Different toolchain, complementary scope. |
Anthropic's canvas-design | Sibling: canvas-design ships static raster / PDF via design-philosophy prose. pixel-art ships pixel-style raster via design-system tokens. |
team-composer | If the brief is genuinely cross-disciplinary (e.g., "design a game splash screen and its marketing copy"), team-composer assembles roles and may hand pixel-art the single-image deliverable. |
| Image-gen capability (host-native or MCP) | Attempt-then-fallback dependency. Skill works with no generator at all via Path B (the prompt brief); works better when generation is reachable. |
When to use this skill
(Trigger phrases above. Repeated here for the cross-tool SKILL.md standard — Codex and other parsers look for this header.)
- "create pixel art [of X]"
- "pixel-art [scene / character / building / nature / title card]"
- "hi-fi pixel art" / "lo-fi pixel art"
- "VT323 title card" / "pixel-font title"
- "make this a pixel-art version"
- "generate a pixel-art [subject]"
- "give me that sprite as SVG" (single generated sprite)
- "I want this style" + hi-density pixel-art reference
Tags: pixel-art, image-generation, design-system,
hi-density, lo-fi, title-card, VT323, model-agnostic,
quantize, repo-agnostic.
License
MIT. See repo root LICENSE.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

