Sprite Gen Agent Skill
Generate clean 2D game sprites and animation atlases with a component-row pipeline: layout guides, chroma-key alpha cleanup, frame…
- Context cost
- 242.3k tokensestimated from the bundle; more than a 200k window holds
- Bundle
- 200 of 398 fileshanded out here; the rest is at its source
- Licence
- Apache-2.0the author’s own terms
- Last change
- —v2.44.0
- Servers it uses
- Noneruns standalone
What it does
Generates images and game sprites through GPT or Grok with guided provider choices, separate saved defaults, automatic cleanup and optional curation. Handles sprite requests, ordinary image generation/editing, standalone image-to-video clips (i2v, animate this still, 그록 영상, 이매진 비디오, 스틸 움직여줘, first/last frame, reference-to-video, 영상 이어붙이기, 영상 편집, extend/edit a clip), clips from a video MCP on the agent (ZCRE, 지크 MCP), chroma removal, animation atlases, video loops, 큐레이션뷰, image candidates, 팔레트 스왑, palette swap, recolor, rig layers, engine exports, repeating backgrounds, projected shadows…
Installed, it changes the agent in these ways.
What this skill changes about the agent has not been set out here as a list. Its SKILL.md, shown below, says it in the author’s own words.
And these are the jobs people reach for it for.
The skill itself
A skill is instructions the model reads, so you can see what you are getting: below is the start of its SKILL.md. The front matter loads with every session, the body loads when the skill triggers, and the whole file comes with the install.
Nothing in a skill executes. The client loads the text and the model follows it, so a skill can be audited the way a runbook is — by reading it.
What it costs in context
Skills are not billed by the call. They are paid for in context: every token the instructions occupy is a token your code, your diff and your conversation cannot use. Here is what this one takes and when it takes it.
242.3k tokens, estimated from the bundle at four bytes to the token — more than the whole window, so it cannot all be held at once: the model reads SKILL.md when the skill fires and the other files only as the instructions call for them. Heavy. Teams tend to install this one per project rather than globally, and load it only when the job comes up.
A server charges by the month. A skill charges once per session, in context, and then keeps charging it for as long as the session lives.
Before and after
The same question, put to the same model twice: once as it comes, and once with these instructions loaded.
No worked example has been published for this skill yet.
The procedure it runs
The procedure has not been set out here step by step. It is in the body of its SKILL.md: the start of it is shown above, and the whole file comes with the install.
These steps are written for a model to follow, not executed by a runtime. It can still be told to skip one, and it will say so when it does.
Servers it uses
None. This skill calls no MCP servers at all.
Everything it needs is in the instructions, so it works in a project with nothing connected — the model reads the file and changes how it works with what it can already reach.
Its SKILL.md does not declare which tools it asks the agent for, so what it touches is whatever the instructions themselves ask for — read them before you install it.
This SKILL.md carries no allowed-tools line, so neither is declared. A skill grants no permissions of its own — it can only ask for tools your client already has.
What it will not do
Every skill is narrow, and the useful ones say where they stop. These are the jobs this one is the wrong tool for.
What this skill is not for has not been published here. Nothing is implied by that: it is a section the author has not filled in.
What is in the bundle
The download carries 200 of the 398 files in its source folder; the list here names 200 files, 3124.5 kB on disk. Mostly text — the instructions the model reads — with 151 scripts in it that your client would run only if the instructions tell it to. The other 198 are not in the download, nor are at least 37 files of types a skill download does not carry — the first 100 are listed after these, with why.
- SKILL.md19.7 kB
- .gitleaks.toml1.7 kB
- CHANGELOG.md220.9 kB
- CONTRIBUTORS.md2.8 kB
- LICENSE10.8 kB
- NOTICE1.5 kB
- README.es.md13.6 kB
- README.fr.md14.0 kB
- README.ja.md15.5 kB
- README.ko.md15.5 kB
- README.md14.1 kB
- README.zh-Hans.md12.4 kB
- SECURITY.md3.0 kB
- pyproject.toml5.6 kB
- .github/FUNDING.yml0.1 kB
- docs/README.md7.8 kB
- docs/architecture.md28.5 kB
- docs/asset-tools.md8.6 kB
- docs/atlas-workflow.md4.0 kB
- docs/breathing.md11.3 kB
- docs/chroma-alpha.md21.4 kB
- docs/curation.md26.5 kB
- docs/directional-anchor-workflow.md23.2 kB
- docs/engine-export.md3.6 kB
- docs/frame-interpolation.md5.1 kB
- docs/gen.md32.1 kB
- docs/interpreter.md4.5 kB
- docs/layer-tracks.md28.3 kB
- docs/locomotion-curation.md3.7 kB
- docs/loop-comparison.md32.5 kB
- docs/loop-repair.md78.7 kB
- docs/loop-review.md16.7 kB
- docs/pixel-unfake.md22.4 kB
- docs/prompt-assembly.md8.5 kB
- docs/qa-motion.md3.6 kB
- docs/recolor.md10.2 kB
- docs/release.md9.7 kB
- docs/rename-gate.md2.5 kB
- docs/run-contract.md45.3 kB
- docs/scene.md8.7 kB
- docs/seamless-video-loop.md5.6 kB
- docs/sheet-slicing.md5.4 kB
- docs/states-and-frames.md4.1 kB
- docs/subject-profiles.md3.3 kB
- docs/troubleshooting.md6.2 kB
- docs/user-workflow.md8.0 kB
- docs/video-pipeline.md122.7 kB
- docs/video.md14.1 kB
- scripts/compose_layers.py0.5 kB
- scripts/compose_selected_cycle.py0.5 kB
- scripts/compose_sprite_atlas.py0.5 kB
- scripts/compose_sprite_gif.py0.5 kB
- scripts/curation.py0.4 kB
- scripts/diagnose_video_loop.py8.0 kB
- scripts/export_aseprite.py0.5 kB
- scripts/export_curated_pngs.py0.5 kB
- scripts/extract_sprite_row_frames.py0.5 kB
- scripts/gen_set.py0.5 kB
- scripts/generate_sprite_image.py0.4 kB
- scripts/generate_sprite_video.py0.5 kB
- scripts/inspect_sprite_run.py0.5 kB
- scripts/interpolate_frames.py0.5 kB
- scripts/linux_lane.sh8.3 kB
- scripts/prepare_sprite_run.py0.5 kB
- scripts/preview_animation.py0.5 kB
- scripts/recolor.py0.5 kB
- scripts/release_notes.py9.6 kB
- scripts/release_publish.py10.4 kB
- scripts/run_correction_loop.py0.5 kB
- scripts/score_sprite_run.py0.5 kB
- scripts/serve_curation.py0.5 kB
- scripts/slice_sheet_cells.py0.5 kB
- scripts/unpack_atlas_run.py0.5 kB
- scripts/video_canvas.py0.5 kB
- scripts/video_frames.py0.5 kB
- scripts/video_loop.py0.5 kB
- scripts/video_set.py0.5 kB
- sprite_gen/__init__.py1.1 kB
- sprite_gen/_deps.py2.8 kB
- sprite_gen/_modules.py6.2 kB
- sprite_gen/cli.py24.7 kB
- tests/conftest.py4.6 kB
- tests/keyed_figure.py5.6 kB
- tests/test_gif_report.py1.0 kB
- tests/test_lsq.py1.2 kB
- tests/test_prepare_layout_guides.py3.2 kB
- tests/test_subject_profile.py9.1 kB
- scripts/dev/README.md1.2 kB
- scripts/dev/breathe_mutation_battery.py15.6 kB
- scripts/dev/check_visible_magenta.py0.5 kB
- scripts/dev/measure_align_sigma.py4.8 kB
- scripts/dev/source_restoration_demo.py23.4 kB
- sprite_gen/background/__init__.py0.1 kB
- sprite_gen/background/tile.py15.7 kB
- sprite_gen/compose/__init__.py0.1 kB
- sprite_gen/compose/compose_atlas.py17.8 kB
- sprite_gen/compose/compose_cycle.py9.2 kB
- sprite_gen/compose/compose_gif.py14.0 kB
- sprite_gen/compose/compose_layers.py29.1 kB
- sprite_gen/compose/export_aseprite.py9.7 kB
- sprite_gen/compose/export_pngs.py6.7 kB
- sprite_gen/compose/layers.py22.4 kB
- sprite_gen/curate/__init__.py0.1 kB
- sprite_gen/curate/anchor.py29.2 kB
- sprite_gen/curate/curation.py64.6 kB
- sprite_gen/effects/__init__.py0.1 kB
- sprite_gen/effects/anatomy.py15.5 kB
- sprite_gen/effects/breathe.py35.0 kB
- sprite_gen/effects/interpolate.py14.7 kB
- sprite_gen/effects/recolor.py19.7 kB
- sprite_gen/effects/reroll.py7.2 kB
- sprite_gen/effects/shadow.py11.5 kB
- sprite_gen/frames/__init__.py0.1 kB
- sprite_gen/frames/check_visible_magenta.py3.5 kB
- sprite_gen/frames/cutout.py20.8 kB
- sprite_gen/frames/decontam.py30.1 kB
- sprite_gen/frames/extract.py200.2 kB
- sprite_gen/frames/segment.py16.4 kB
- sprite_gen/frames/slice_sheet.py12.8 kB
- sprite_gen/frames/unpack_atlas.py30.0 kB
- sprite_gen/gen/__init__.py41.4 kB
- sprite_gen/gen/base.py10.4 kB
- sprite_gen/gen/chroma.py11.6 kB
- sprite_gen/gen/codex_provider.py17.5 kB
- sprite_gen/gen/facing.py7.7 kB
- sprite_gen/gen/facing_vision.py3.3 kB
- sprite_gen/gen/gen_set.py13.4 kB
- sprite_gen/gen/grok_provider.py9.3 kB
- sprite_gen/gen/handedness.py13.8 kB
- sprite_gen/gen/openai_provider.py14.3 kB
- sprite_gen/gen/prepare.py61.4 kB
- sprite_gen/gen/prompt_parts.py8.1 kB
- sprite_gen/gen/refusal.py7.1 kB
- sprite_gen/gen/video.py37.8 kB
- sprite_gen/gen/xai.py7.1 kB
- sprite_gen/qa/__init__.py0.1 kB
- sprite_gen/qa/correction_loop.py7.2 kB
- sprite_gen/qa/handed.py26.2 kB
- sprite_gen/qa/inspect.py17.8 kB
- sprite_gen/qa/motion.py24.0 kB
- sprite_gen/qa/preview.py6.4 kB
- sprite_gen/qa/score.py7.2 kB
- sprite_gen/scene/__init__.py0.1 kB
- sprite_gen/scene/inspect_scene.py7.7 kB
- sprite_gen/scene/model.py11.4 kB
- sprite_gen/scene/render.py17.9 kB
- sprite_gen/serve/__init__.py0.1 kB
- sprite_gen/serve/serve_compose.py20.0 kB
- sprite_gen/serve/serve_curation.py88.8 kB
- sprite_gen/spec/__init__.py0.1 kB
- sprite_gen/spec/assets.py12.6 kB
- sprite_gen/spec/layout.py4.8 kB
- sprite_gen/spec/migrate_breathe.py8.1 kB
- sprite_gen/spec/migrate_request.py4.2 kB
- sprite_gen/spec/runio.py25.3 kB
- sprite_gen/spec/subject.py3.5 kB
- sprite_gen/util/__init__.py0.1 kB
- sprite_gen/util/gif_utils.py3.3 kB
- sprite_gen/util/lsq.py1.2 kB
- sprite_gen/util/resample.py7.0 kB
- sprite_gen/video/__init__.py0.8 kB
- sprite_gen/video/align.py73.4 kB
- sprite_gen/video/auto_motion.py11.7 kB
- sprite_gen/video/batch.py79.5 kB
- sprite_gen/video/body_plan.py6.1 kB
- sprite_gen/video/canvas.py20.2 kB
- sprite_gen/video/clip_prompt.py10.1 kB
- sprite_gen/video/compare.py17.9 kB
- sprite_gen/video/evidence.py2.0 kB
- sprite_gen/video/facing.py2.3 kB
- sprite_gen/video/follow.py56.0 kB
- sprite_gen/video/follow_inspect.py24.9 kB
- sprite_gen/video/frames.py31.7 kB
- sprite_gen/video/gait_fallback.py19.5 kB
- sprite_gen/video/held.py8.2 kB
- sprite_gen/video/interpolation_quality.py4.1 kB
- sprite_gen/video/legs.py6.2 kB
- sprite_gen/video/local_cycle.py22.7 kB
- sprite_gen/video/loop.py106.2 kB
- sprite_gen/video/motion_anchor.py7.8 kB
- sprite_gen/video/period.py16.2 kB
- sprite_gen/video/playback.py4.5 kB
- sprite_gen/video/repair.py27.7 kB
- sprite_gen/video/restoration.py38.6 kB
- sprite_gen/video/rife.py18.0 kB
- sprite_gen/video/rife_install.py11.4 kB
- sprite_gen/video/set_sheet.py15.5 kB
- sprite_gen/video/source.py15.3 kB
- sprite_gen/workflow/__init__.py0.1 kB
- sprite_gen/workflow/access.py3.2 kB
- sprite_gen/workflow/catalog.py3.0 kB
- sprite_gen/workflow/guide.py6.3 kB
- sprite_gen/workflow/preferences.py4.2 kB
- tests/background/test_tile.py7.1 kB
- tests/background/test_tile_cli.py7.8 kB
- tests/compose/test_export_aseprite.py5.0 kB
- tests/compose/test_layer_compose.py29.4 kB
- tests/compose/test_layer_contract.py25.8 kB
- tests/curate/test_anchor_selection.py36.9 kB
- tests/curate/test_curation_salvage_and_clones.py10.0 kB
Not in the download
The first 100 are named here, those the skill reads first. Not carried is a type a skill download does not hold and over the limit is past 200 files or 4 MB a skill. Marked read: its SKILL.md or scripts name the file, so without it the skill works only in part. Take them from its source.
- tests/fixtures/run/raw/idle.pngread · not carried
- tests/fixtures/run/raw/walk.pngread · not carried
- tests/effects/test_breathe_off_state.pyread · over the limit
- tests/gen/test_chroma_rcb_byte_identity.pyread · over the limit
- tests/gen/test_prompt_freeze.pyread · over the limit
- tests/packaging/test_numpy_dependency_gate.pyread · over the limit
- tests/qa/test_handed_check.pyread · over the limit
- sprite_gen/serve/composer/composer.cssread · over the limit
- sprite_gen/serve/composer/index.htmlread · over the limit
- sprite_gen/serve/curator/curator.cssread · over the limit
- sprite_gen/serve/curator/index.htmlread · over the limit
- tests/fixtures/run-fused/sprite-request.jsonread · over the limit
- tests/fixtures/run/sprite-request.jsonread · over the limit
- sprite_gen/serve/curator/src/base-editor.jsread · over the limit
- sprite_gen/serve/curator/src/breathe.jsread · over the limit
- sprite_gen/serve/curator/src/cards.jsread · over the limit
- sprite_gen/serve/curator/src/compare.jsread · over the limit
- sprite_gen/serve/curator/src/display.jsread · over the limit
- sprite_gen/serve/curator/src/row-export.jsread · over the limit
- sprite_gen/serve/curator/src/store.jsread · over the limit
- sprite_gen/serve/curator/src/util.jsread · over the limit
- sprite_gen/serve/curator/src/zoom-editor.jsread · over the limit
- .githooks/pre-commitnot carried
- .gitignorenot carried
- docs/assets/attack-claudecy-samurai-onehand.gifnot carried
- docs/assets/attack-claudecy-samurai.gifnot carried
- docs/assets/attack-fox-hood.gifnot carried
- docs/assets/attack-paladin.gifnot carried
- docs/assets/attack-slime.gifnot carried
- docs/assets/breathe-editor.pngnot carried
- docs/assets/chroma-fullbody-illustration-green.pngnot carried
- docs/assets/chroma-fullbody-illustration-magenta.pngnot carried
- docs/assets/chroma-fullbody-pixelart-green.pngnot carried
- docs/assets/chroma-fullbody-pixelart-magenta.pngnot carried
- docs/assets/chroma-peel-illustration-before-after.pngnot carried
- docs/assets/chroma-peel-pixelart-before-after.pngnot carried
- docs/assets/curator-drag-update.gifnot carried
- docs/assets/curator-iso.pngnot carried
- docs/assets/cutout-demo.pngnot carried
- docs/assets/demo-character.gifnot carried
- docs/assets/demo-furniture.gifnot carried
- docs/assets/hero-v2-party.gifnot carried
- docs/assets/subject-effect-ember.gifnot carried
- docs/assets/subject-effect-sigil.gifnot carried
- docs/assets/subject-effect-venom.gifnot carried
- docs/assets/subject-effect-wisp.gifnot carried
- docs/assets/subject-effects-gallery.pngnot carried
- docs/assets/village-scene.gifnot carried
- tests/fixtures/facing/front.pngnot carried
- tests/fixtures/facing/left.pngnot carried
- tests/fixtures/facing/right.pngnot carried
- tests/fixtures/moe/moe_green.pngnot carried
- tests/fixtures/moe/moe_heart.pngnot carried
- tests/fixtures/moe/moe_mirror.pngnot carried
- tests/fixtures/moe/moe_red.pngnot carried
- tests/fixtures/prepare-rows-v2.32.0.json.gznot carried
- tests/fixtures/prompts-v2.22.0.json.gznot carried
- tests/fixtures/run-fused/raw/kick.pngnot carried
- tests/fixtures/run-fused/raw/pair.pngnot carried
- tests/curate/test_directions.pyover the limit
- tests/curate/test_frame_variant.pyover the limit
- tests/curate/test_logical_height_contract.pyover the limit
- tests/curate/test_pixel_snap.pyover the limit
- tests/curate/test_pixel_unfake_migration.pyover the limit
- tests/curate/test_snap_phase_policy.pyover the limit
- tests/curate/test_transform_resample.pyover the limit
- tests/docs/test_docs_index.pyover the limit
- tests/docs/test_hero_assets.pyover the limit
- tests/effects/test_breathe.pyover the limit
- tests/effects/test_breathe_anatomy_route.pyover the limit
- tests/effects/test_breathe_js_mirror.pyover the limit
- tests/effects/test_breathe_reference_key.pyover the limit
- tests/effects/test_breathe_sidecar_roundtrip.pyover the limit
- tests/effects/test_frame_interpolation.pyover the limit
- tests/effects/test_palette_post_only.pyover the limit
- tests/effects/test_recolor_bake.pyover the limit
- tests/effects/test_recolor_docs.pyover the limit
- tests/effects/test_shadow.pyover the limit
- tests/fixtures/expected-frames-manifest.jsonover the limit
- tests/fixtures/expected-fused-frames-manifest.jsonover the limit
- tests/fixtures/generate_fixtures.pyover the limit
- tests/frames/test_alpha_centroid_align.pyover the limit
- tests/frames/test_chroma_decontam.pyover the limit
- tests/frames/test_chroma_key_relative.pyover the limit
- tests/frames/test_cutout.pyover the limit
- tests/frames/test_decontam_gold.pyover the limit
- tests/frames/test_despill_full_tint_bar.pyover the limit
- tests/frames/test_extract_perf_equivalence.pyover the limit
- tests/frames/test_extraction_golden.pyover the limit
- tests/frames/test_grid_record_exactness.pyover the limit
- tests/frames/test_heal_async.pyover the limit
- tests/frames/test_key_detect_banded.pyover the limit
- tests/frames/test_keyed_resample.pyover the limit
- tests/frames/test_pitch_ground_truth.pyover the limit
- tests/frames/test_pitch_runlen_crosscheck.pyover the limit
- tests/frames/test_posix_manifest_paths.pyover the limit
- tests/frames/test_row_placement_align_y.pyover the limit
- tests/frames/test_segment_projection.pyover the limit
- tests/frames/test_slice_sheet.pyover the limit
- tests/frames/test_sliver_guard.pyover the limit
A skill installs nothing and depends on nothing: it is a folder your client reads. This one carries 151 scripts beside the text, so the download is 200 files — not the whole of its source: at least 235 files are left out, and the skill reads 22 of them. The first 100 are listed under the files, with why. The Apache-2.0 licence covers the templates and examples as well as the instructions.
Install
Installing copies the bundle into your project. Nothing runs at install time — the files sit on disk until the model reads them.
# Sprite Gen · 242.3k tokens when loaded · macOS, Linux
mkdir -p .claude/skills && t=$(mktemp -d) &&
curl -fsSL -o "$t/bundle.tar.gz" https://mcprush.com/api/skills/sprite-gen/bundle.tar.gz &&
tar -xzf "$t/bundle.tar.gz" -C "$t" && [ -d "$t/sprite-gen" ] &&
{ [ ! -e .claude/skills/sprite-gen ] || { mv .claude/skills/sprite-gen "$t/.previous" && echo "Previous copy moved to $t/.previous"; }; } &&
mv "$t/sprite-gen" .claude/skills/ && echo "Installed .claude/skills/sprite-gen"npx mcprush@latest skill add aldegad/sprite-genWindows PowerShell says 'running scripts is disabled on this system'? Run Set-ExecutionPolicy -Scope CurrentUser RemoteSigned once, or type npx.cmd instead of npx (codex.cmd, gemini.cmd, grok.cmd likewise). PowerShell 7 needs neither. Writes to .claude/skills/sprite-gen/ in the current project. For every project instead, run mkdir -p ~/.claude/skills && t=$(mktemp -d) && curl -fsSL -o "$t/bundle.tar.gz" https://mcprush.com/api/skills/sprite-gen/bundle.tar.gz && tar -xzf "$t/bundle.tar.gz" -C "$t" && [ -d "$t/sprite-gen" ] && { [ ! -e ~/.claude/skills/sprite-gen ] || { mv ~/.claude/skills/sprite-gen "$t/.previous" && echo "Previous copy moved to $t/.previous"; }; } && mv "$t/sprite-gen" ~/.claude/skills/ && echo "Installed ~/.claude/skills/sprite-gen" (macOS, Linux) — or add --global to the npx line. The curl line replaces .claude/skills/sprite-gen/ only after the download succeeds, so files left there by another skill of the same name, or by an older release, do not mix in. A copy already there is moved aside, not deleted, and the line prints where. Not in this download: at least 235 files of its source, 22 of them read by its SKILL.md or scripts (the list, and why). Take them from its source.
Which clients pick it up on their own
A skill is a folder of text. Most of these read a skills folder and pick it up without being told; the rest take the same folder another way — an upload in the app, a parameter on an API call — and then choose it by its description just the same.
Versions
v2.44.0 is what is on the shelf; no release here carries a date. Instructions change more often than APIs do — a skill can be rewritten entirely without anything it depends on moving.
- No earlier releases have been published to the marketplace.
The install command always fetches the release that is current the day you run it — v2.44.0 today — and cannot ask for an earlier one. The copy on your disk does not change until you run it again.
Reviews
Nobody has reviewed this skill yet. The rating is the mean of the reviews written here, so there is none until somebody writes the first.
A review is tied to an account so it can be answered, edited and taken down by the person who wrote it.
Sign inAnybody with an account, one review each. It carries the version that was current when you wrote it, and the publisher may reply once.