Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/freema/pixelforge-mcp/sprite-processingnpx skills add freema/pixelforge-mcp --skill sprite-processinggit clone --depth 1 https://github.com/freema/pixelforge-mcpWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00045 | $0.00622 |
| Opus 5 | $0.00023 | $0.00311 |
| Sonnet 5 | $0.00009 | $0.00124 |
| Haiku 4.5 | $0.00005 | $0.00062 |
Grade A, and why
sprite-processing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 79 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Sprite Processing with PixelForge
Use process_sprite to clean up existing images into game-ready sprites.
Single Sprite Processing
Remove background and auto-crop:
process_sprite
inputPath: "raw-enemy.png"
outputPath: "public/assets/games/rpg/enemy.png"
background: "chromakey"
square: true
Prefer chromakey background — uses HSV-based green screen removal. Much cleaner than black/white.
Split Sprite Sheet
Split a horizontal sprite sheet into individual frames:
process_sprite
inputPath: "animation-sheet.png"
outputPath: "public/assets/games/rpg/hero"
split: true
names: ["idle", "walk-1", "walk-2", "attack"]
background: "chromakey"
square: true
Outputs: hero-idle.png, hero-walk-1.png, hero-walk-2.png, hero-attack.png
Two-Pass Processing
When sprite sheet has white background but individual sprites have black background:
# 1. Split sheet (removes white bg between sprites)
process_sprite
inputPath: "sheet.png"
outputPath: "public/assets/sprites/char"
split: true
names: ["head", "body", "legs"]
background: "white"
square: true
# 2. Remove black bg from each sprite
process_sprite
inputPath: "public/assets/sprites/char-head.png"
background: "black"
threshold: 8
skipCrop: true
Background Removal Methods
| Background | Method | Best For |
|---|---|---|
chromakey |
HSV green screen | BEST — cleanest edges, no artifacts |
black |
Compositing equation | Dark-themed sprites |
white |
Compositing equation | Light-themed sprites |
auto |
Edge detection | Unknown backgrounds |
Options Reference
| Option | Default | Description |
|---|---|---|
background |
auto-detect | "chromakey", "black", "white", or "auto" |
threshold |
20 | Color detection sensitivity (0-255) |
square |
false | Pad output to square dimensions |
padding |
2 | Pixels of padding around content |
split |
false | Split sheet into individual sprites |
names |
0, 1, 2... | Names for split sprites |
skipCrop |
false | Keep original dimensions |
skipTransparent |
false | Don't remove background |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 79 lines · 45 tokens per session scan A 7a4767a03aa0
sprite-processing is a skill published in the GitHub repository freema/pixelforge-mcp (4 stars, last pushed 5mo ago), licensed MIT. It adds 45 tokens to every session and 622 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
assets-shader-get-data
Get detailed data about a shader asset — properties, subshaders, passes, compilation messages, and supported status. Supports token-saving path-scoped reads via paths or viewQuery. Use 'assets-find' with t:Shader or 'assets-shader-list-all' to locate the shader first.
gameobject-component-get
Get detailed information about a specific Component on a GameObject — type, enabled state, and (optionally) serialized fields and properties. Supports token-saving path-scoped reads via paths or viewQuery. Use 'gameobject-find' to list components first.
gameobject-find
Find a specific GameObject in the opened Prefab (preferred when present) or the active Scene. Optionally include editable data, components preview, bounds, and limited hierarchy. Supports token-saving path-scoped reads via paths or viewQuery.
gameobject-modify
Modify GameObject fields and properties in opened Prefab or in a Scene. You can modify multiple GameObjects at once. Just provide the same number of GameObject references and SerializedMember objects. Three modification surfaces are available per GameObject (gameObjectDiffs, pathPatchesPerGameObject…
object-modify
Modify a Unity UnityEngine.Object's serializable fields/properties. Three modification surfaces are available (objectDiff, pathPatches, jsonPatch) — see the skill body. Use 'object-get-data' first to inspect the object structure.
assets-get-data
Get asset data from the asset file in the Unity project — every serializable field and property. Supports token-saving path-scoped reads via paths or viewQuery. Use 'assets-find' to find the asset first.