2D Sprite Generator
0x0funky/agent-sprite-forge
Produces game-ready 2D characters, creatures, props, icons and effects as master stills, sheets or clips, and exports frames for common game engines.
A skill your agent uses when changing an existing ChatGPT pet or Codex pet sprite sheet with Scenario: fixing a broken row, frame, jump or edge, regenerating one animation state, adding the sixteen…
$ npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install scenario-labs/skills scenario-chatgpt-pet-update --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/scenario-chatgpt-pet-update .claude/skills/scenario-chatgpt-pet-update && rm -rf skills-srcUse ~/.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/
Install the "scenario-chatgpt-pet-update" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-chatgpt-pet-update into .claude/skills/scenario-chatgpt-pet-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-chatgpt-pet-update", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/scenario-labs/skills/tree/main/skills/scenario-chatgpt-pet-updateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install scenario-labs/skills scenario-chatgpt-pet-update --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/scenario-chatgpt-pet-update .agents/skills/scenario-chatgpt-pet-update && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scenario-chatgpt-pet-update" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-chatgpt-pet-update into .agents/skills/scenario-chatgpt-pet-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-chatgpt-pet-update", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install scenario-labs/skills scenario-chatgpt-pet-update --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/scenario-chatgpt-pet-update .cursor/skills/scenario-chatgpt-pet-update && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "scenario-chatgpt-pet-update" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-chatgpt-pet-update into .cursor/skills/scenario-chatgpt-pet-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-chatgpt-pet-update", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/scenario-labs/skills.git --path skills/scenario-chatgpt-pet-update--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install scenario-labs/skills scenario-chatgpt-pet-update --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/scenario-chatgpt-pet-update .gemini/skills/scenario-chatgpt-pet-update && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "scenario-chatgpt-pet-update" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-chatgpt-pet-update into .gemini/skills/scenario-chatgpt-pet-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-chatgpt-pet-update", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install scenario-labs/skills scenario-chatgpt-pet-updateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/scenario-chatgpt-pet-update .github/skills/scenario-chatgpt-pet-update && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "scenario-chatgpt-pet-update" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-chatgpt-pet-update into .github/skills/scenario-chatgpt-pet-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-chatgpt-pet-update", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install scenario-labs/skills scenario-chatgpt-pet-update --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/scenario-labs/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/scenario-chatgpt-pet-update .opencode/skills/scenario-chatgpt-pet-update && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "scenario-chatgpt-pet-update" agent skill from https://github.com/scenario-labs/skills/tree/main/skills/scenario-chatgpt-pet-update into .opencode/skills/scenario-chatgpt-pet-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scenario-chatgpt-pet-update", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
scenario-chatgpt-pet-updateA skill your agent uses when changing an existing ChatGPT pet or Codex pet sprite sheet with Scenario: fixing a broken row, frame, jump or edge, regenerating one animation state, adding the sixteen…
Scenario Chatgpt Pet Update is an agent skill from scenario-labs/skills. Use when changing an existing ChatGPT pet or Codex pet sprite sheet with Scenario: fixing a broken row, frame, jump or edge, regenerating one animation state, adding the sixteen look directions to a 1536x1872 v1 sheet, giving the pet a new outfit, color or accessory, renaming it in its pet.json, or checking a pet sheet and previewing it as an animated GIF.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).
It sits in Game Development, covering Sprites and pixel art and Social media graphics. It works with OpenAI. The repository describes itself as: Get production-ready images, video, audio, and 3D from any AI agent: skills that pick the right model, price before spending, and keep characters and brands consistent through… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f6f8ab7. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npxcurlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Scenario Chatgpt Pet Update loads about 2.3k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 1,151 words of instructions outside code blocks.
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.
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.
The full file from scenario-labs/skills at commit f6f8ab7, republished under its MIT licence (© scenario-labs). 1,151 words, ~2,280 tokens.
.claude/skills/scenario-chatgpt-pet-update/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.An existing pet is its sprite sheet: a PNG or WebP the user downloaded from ChatGPT, a Codex pet folder (pet.json plus the sheet it names), or a Scenario asset id of a sheet made earlier. That file is the pet's identity here; there is no pet record to look up. The update never overwrites it: the result is a new package next to the run, with the same id and name unless the user changes them.
This skill runs the scripts and follows the sheet contract of scenario-chatgpt-pet-create, which must be installed; run each script by its path in that skill's scripts/ folder, from the user's working folder, and read the contract before generating a row or writing direction verdicts: pet_frames.py, pet_prepare.py, pet_build.py, pet_check.py, pet_preview.py, pet_package.py, and the contract. Generation follows that skill's loop and model order (model_openai-gpt-image-2-5-sunburst, then model_google-gemini-nano-banana-2-1, then recommend only when both are blocked); connection and scope: the scenario skill. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.
Read the sheet first, then pick the smallest change that does the job. Every row below runs in a run made by pet_prepare.py init --from-split (step 3 of the example): it records the original sheet, which the build, the check and the package all need. Unattended, the approvals are your own judgment against the request, recorded in the run, and nothing is installed.
| The user wants | Do | Generations |
|---|---|---|
| To see or check it | pet_check.py, pet_preview.py contact and gif | 0 |
| A rename or new description | init, pet_check.py <sheet> --run RUN, then pet_package.py make RUN --sheet <sheet> --name ... | 0 |
| Leftover pixels, color under transparency | pet_build.py RUN --clean | 0 |
| A row whose frames pop up and down or sideways | pet_build.py RUN --reregister <row>: re-places the existing frames on one ground line and anchor | 0 |
| One or a few states redone | init --only <rows> (a look row too), generate those rows, pet_build.py RUN: every other row stays byte for byte | one per row |
| Look directions on a v1 sheet | init --version 2 --only look: cardinals, then rows 9 and 10 | 3 |
| A new look (outfit, color, accessory) | init --change "<the change>": edit the identity, approve it, regenerate every row | 1 + every row |
split refuses anything that is not 1536x1872 or 1536x2288: other art is a new pet, made with scenario-chatgpt-pet-create using that art as a reference.
~/.codex/pets/pepper/: read pet.json (id, displayName, description, spritesheetPath) and copy the sheet into a work folder. From an asset id: asset_download with format: "png", then curl -L.pet_frames.py split pepper.png --out work/split prints the version, a background key that contrasts with the pet, and pixel_grid (set when the sheet is pixel art with on/off alpha; the update then keeps that grid and palette). pet_check.py pepper.png --json-out work/before.json measures it: height per row against idle, jump lift, look-row drift. pet_preview.py contact and pet_preview.py gif show the current pet. Ask what should change if the request is vague, naming what the check found.pet_prepare.py init --name Pepper --id pepper --description "<from pet.json>" --from-split work/split --only running-right,running-left --out work/run (every row of the table starts with an init --from-split like this; --only names the rows to generate). The match style keeps the sheet's look; each job's references are references/base.png (the idle frame, enlarged on the key) and references/rows/<row>.png (the current row). Each job maps onto one model_run: its references uploaded with upload_asset and passed as referenceImages (an array), its prompt verbatim, its sizes for the model, background: "opaque" on Sunburst, priced with dry_run first; download the result to the job's output. When the old row's motion or directions are what is wrong (a jump that never lifts, a run that does not alternate, a head that turns the wrong way), add --no-current-row to init so the old strip is not a reference, since the model copies what it is shown, and say what changes with pet_prepare.py note work/run --jobs <row> --text "..."; a redone look row still references the kept other half of the sweep. Then pet_frames.py extract work/run --job running-right, read the report and preview, and mirror it with --mirror-left or generate running-left the same way.pet_build.py work/run --mirror-left. With the original sheet as the base (recorded by init), only the rebuilt rows change, scaled to the existing idle row's height, ground line and anchor; the edge cleanup touches only them. pet_check.py work/run/final/spritesheet.webp --run work/run must print ok: true; kept look rows only bring a warning that they were not reviewed, while a redone look row needs fresh verdicts in qa/direction-semantics.json (format in the contract) or the check fails.pet_preview.py gif work/run/final/spritesheet.webp --out-dir work/run/previews, show pet.gif, upload the sheet and both GIFs into a collection as the create skill does, then pet_package.py make work/run --id pepper. Ask before pet_package.py install work/run --force, which backs up the installed Pepper into the run before replacing it.init --name Pepper --id pepper --description "<from pet.json>" --from-split work/split --change "add a red knitted scarf" --out work/scarf adds an edit job on the identity image. Approve the edited base, then run every row as scenario-chatgpt-pet-create does from its rows step (look rows included for a v2 sheet, with fresh direction verdicts). The old sheet still sets the pet's size, so the new pet does not grow or shrink.For a v1 to v2 upgrade (init --version 2 --only look), run look-cardinals, look-9 and look-10 as the create skill describes and write the direction verdicts; the build keeps rows 0-8 and adds the two look rows.
--force (which backs it up).references/base.png and the row strip split made.--clean and --reregister, at no cost.init --from-split records the sheet so the build keeps the pet's size.displayName.package/spritesheet-v1.png.© scenario-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/scenario-chatgpt-pet-update of scenario-labs/skills.
Open the folder on GitHubat commit f6f8ab7
Scenario Chatgpt Pet Update 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Scenario Chatgpt Pet Update this skillscenario-labs/skills | 946 | — | ~2.3k | Automated safety check: Pass | MIT | |
| 2D Sprite Generator0x0funky/agent-sprite-forge | 4.4k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Img Gen Avatar4thfever/cultivation-world-simulator | 2.1k | — | ~641 | Automated safety check: Pass | Custom licence | |
| Godot Asset Generatorjwynia/agent-skills | 170 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Animated Spriteselithrar/dotfiles | 202 | — | ~1k | Automated safety check: Pass | MIT | |
| Pixijs Assetsnetaart/cohub | 572 | 1 repos | ~5k | Automated safety check: Pass | MIT |
0x0funky/agent-sprite-forge
Produces game-ready 2D characters, creatures, props, icons and effects as master stills, sheets or clips, and exports frames for common game engines.
4thfever/cultivation-world-simulator
A skill your agent uses when working on tools/imggen avatar image generation, OpenAI-compatible image API config, human or yaoguai portrait prompts, qi-refining base generation, image-to-image realm…
jwynia/agent-skills
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot.
elithrar/dotfiles
Create, repair, and review custom characters for 2D animation, animated sprite sheets, and custom Codex or ChatGPT pets, with consistent identity, readable motion, and timing-faithful previews.
netaart/cohub
A skill your agent uses when loading and managing resources in PixiJS v8.
lisamsung/agent-meme-forge
A skill your agent uses when the user wants to turn a reference image or text concept into a WeChat-ready animated Chinese meme GIF sticker pack: 16/24 entries, 240x240 GIFs, Chinese captions…
scenario-labs/skills
A skill your agent uses when drawing or animating with Grease Pencil in Blender 5.x from Python: 2D or 2.5D illustration, frame-by-frame animation, a cutout or part-based 2D character, strokes with…
scenario-labs/skills
A skill your agent uses when grooming hair or fur in Blender with hair curves, such as a character hairstyle, animal fur, procedural fur in geometry nodes, or hair cards and mesh hair for games.
scenario-labs/skills
A skill your agent uses when lighting, rendering or compositing in Blender: light a character, product or hero shot, interior at dusk or night, three-point or motivated lighting, sun and sky, HDRI…
scenario-labs/skills
A skill your agent uses when creating a ChatGPT pet or Codex pet with Scenario: hatching an animated companion from a text idea, a character, mascot or brand cue, or reference photos and art; making…
scenario-labs/skills
A skill your agent uses when animating characters or scenes in Godot 4.7: AnimationPlayer clips and RESET, AnimationTree state machines and blend spaces built in code, Mixamo or glTF import, loop…
scenario-labs/skills
A skill your agent uses when adding or fixing sound in Godot 4.7: audio buses and effects, volume sliders, 'too many sounds', combat audio with hundreds of enemies, sounds clipping or distorting, 3D…
Works with
Categories
A skill your agent uses when changing an existing ChatGPT pet or Codex pet sprite sheet with Scenario: fixing a broken row, frame, jump or edge, regenerating one animation state, adding the sixteen…. Scenario Chatgpt Pet Update is an agent skill from scenario-labs/skills.json, or checking a pet sheet and previewing it as an animated GIF.
Scenario Chatgpt Pet Update fits situations like: changing an existing ChatGPT pet; Codex pet sprite sheet with Scenario: fixing a broken row; regenerating one animation state; adding the sixteen look directions to a 1536x1872 v1 sheet.
Run `npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a claude-code`. Or copy the skill folder (skills/scenario-chatgpt-pet-update in scenario-labs/skills) into .claude/skills/scenario-chatgpt-pet-update in your project. Claude Code loads it when a task matches its description.
Run `npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a codex`. Or copy the skill folder (skills/scenario-chatgpt-pet-update in scenario-labs/skills) into .agents/skills/scenario-chatgpt-pet-update in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scenario-labs/skills --skill scenario-chatgpt-pet-update -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scenario-chatgpt-pet-update, .gemini/skills/scenario-chatgpt-pet-update, .github/skills/scenario-chatgpt-pet-update and .opencode/skills/scenario-chatgpt-pet-update in your project.
Going by SKILL.md and its folder, Scenario Chatgpt Pet Update needs the command-line tools its instructions call (npx and curl). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Scenario Chatgpt Pet Update is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Scenario Chatgpt Pet Update: 2D Sprite Generator (0x0funky/agent-sprite-forge, 4.4k stars), Img Gen Avatar (4thfever/cultivation-world-simulator, 2.1k stars), Godot Asset Generator (jwynia/agent-skills, 170 stars) and Animated Sprites (elithrar/dotfiles, 202 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
scenario-labs (a GitHub organization) maintains it in scenario-labs/skills, which has 946 GitHub stars. The repository holds 146 skills in this directory. The repository was last updated on October 10, 2026.
Source: scenario-labs/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.