Agent skill

Hatch Pet

by nexu-io in nexu-io/open-design

Create, repair, validate, preview, and package Codex-compatible animated pet spritesheets from character art, screenshots, generated images, or visual references.

Apache-2.0Auto-check passedGame Development

Install Hatch Pet

skills CLI
$ npx skills add nexu-io/open-design --skill hatch-pet -a claude-code

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

GitHub CLI
$ gh skill install nexu-io/open-design hatch-pet --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/nexu-io/open-design.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hatch-pet .claude/skills/hatch-pet && 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
hatch-pet
GitHub stars
100k
Token cost
~6k tokens
SKILL.md length
2,854 words
Files
23 (incl. scripts, references)
Skills in repo
245
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create, repair, validate, preview, and package Codex-compatible animated pet spritesheets from character art, screenshots, generated images, or visual references.

  • Works in 4 steps: Getting ready. → Imagining 's main look. → Picturing 's poses. → …
  • A user wants to hatch a Codex pet
  • SKILL.md covers Overview, Generation Delegation, Codex Digital Pet Style and Transparency And Effects, plus 8 more sections
  • Runs Python scripts from its folder; calls python; needs OPENAI_API_KEY

What it does

Hatch Pet is an agent skill from nexu-io/open-design. Create, repair, validate, preview, and package Codex-compatible animated pet spritesheets from character art, screenshots, generated images, or visual references. Use when a user wants to hatch a Codex pet, create a custom animated pet, or build a built-in pet asset with an 8x9 atlas, transparent unused cells, row-by-row animation prompts, QA contact sheets, preview videos, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for…

Its SKILL.md is about 6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 25 other files, including scripts and reference files (for example `README.md`, `agents/openai.yaml` and `references/animation-rows.md`).

It sits in Game Development, covering Sprites and pixel art and Image generation. The repository describes itself as: 🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design engine: prototypes… The licence is Apache-2.0.

When your agent uses it

  • A user wants to hatch a Codex pet
  • Create a custom animated pet
  • Build a built-in pet asset with an 8x9 atlas
  • Transparent unused cells

Example prompts

  • “/hatch-pet”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Getting ready.
  2. Imagining 's main look.
  3. Picturing 's poses.
  4. Hatching .

What it can do on your machine

Read from SKILL.md and the folder at commit 17e2559. 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

    Ships 11 files in scripts/ (Python, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • python

    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 these keys or tokens, usually read from environment variables:

    • OPENAI_API_KEY

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

Context cost

Hatch Pet loads about 6k tokens when it runs, and up to ~7.3k if it reads all its reference files. Until then it costs about 139 tokens; SKILL.md has 2,854 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~139
When it runs · the whole SKILL.md, loaded when a task matches
~6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.3k

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); the scripts in this folder are not scanned.

SKILL.md

The full file from nexu-io/open-design at commit 17e2559, republished under its Apache-2.0 licence (© nexu-io). 2,854 words, ~5,956 tokens.

Download SKILL.mdSave it as .claude/skills/hatch-pet/SKILL.md (or your agent's skills folder). This skill also uses 22 other files; get the full folder from GitHub.
name
hatch-pet
description
Create, repair, validate, preview, and package Codex-compatible animated pet spritesheets from character art, screenshots, generated images, or visual references. Use when a user wants to hatch a Codex pet, create a custom animated pet, or build a built-in pet asset with an 8x9 atlas, transparent unused cells, row-by-row animation prompts, QA contact sheets, preview videos, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.
triggers
hatch a pet, hatch pet, codex pet, spritesheet pet, animated pet, 孵化宠物, 电子宠物
od.mode
image
od.surface
image
od.scenario
personal
od.example_prompt
Hatch me a tiny pixel-art shiba pet — friendly, sitting upright, with a small pomegranate prop. Use the hatch-pet skill end-to-end.
od.upstream
https://github.com/openai/skills/tree/main/skills/.curated/hatch-pet

Hatch Pet

OpenDesign integration. This is the unmodified Codex hatch-pet skill, vendored under skills/hatch-pet/ so any OpenDesign agent can run it. After the skill finishes packaging, the resulting spritesheet.webp (under ${CODEX_HOME:-$HOME/.codex}/pets/<pet-name>/) can be imported into the floating pet companion via Settings → General → Pets → Import Codex sprite. The import flow auto-detects the 8×9 / 192×208 atlas and lets the user pick which animation row to play (idle, running-right, waving, …).

Overview

Create a Codex-compatible animated pet from a concept, one or more reference images, or both. This skill owns pet-specific prompt planning, animation rows, frame extraction, atlas geometry, QA, previews, and packaging. It delegates visual generation to $imagegen.

User-facing inputs are optional. If the user omits a pet name, infer one from the concept or reference filenames; if that is not possible, choose a short appropriate name. If the user omits a description, infer one from the concept or references. If the user omits reference images, generate the base pet from text first, then use that base as the canonical reference for every animation row.

Generation Delegation

Use $imagegen for all normal visual generation.

Before generating base art, row strips, or repair rows, load and follow the installed image generation skill:

text
${CODEX_HOME:-$HOME/.codex}/skills/.system/imagegen/SKILL.md

Do not call the Image API directly for the normal path. Let $imagegen choose its own built-in-first path and its own CLI fallback rules. If $imagegen says a fallback requires confirmation, ask the user before continuing.

When invoking $imagegen from this skill, pass the generated pet prompt as the authoritative visual spec. Do not wrap it in the generic $imagegen shared prompt schema and do not add extra polish, hero-art, photo, product, or illustration-style augmentation. Pet prompts should stay terse, sprite-specific, and digital-pet oriented; only add role labels for input images and any essential user constraint.

Use this skill's scripts for deterministic work only: preparing prompts and manifests, ingesting selected $imagegen outputs, extracting frames, validating rows, composing the final atlas, creating QA media, and packaging.

Hard boundary: do not create, draw, tile, warp, mirror, or synthesize pet visuals with local Python/Pillow scripts, SVG, canvas, HTML/CSS, or other code-native art as a substitute for $imagegen. For a normal pet run, expect up to 10 visual generation jobs: 1 base pet plus 9 row-strip jobs. The only exception is running-left, which may be derived by mirroring running-right only after running-right has been generated, visually inspected, and explicitly approved as safe to mirror. If mirroring is not appropriate, generate running-left as a normal grounded $imagegen row. If those calls are too expensive, blocked, or unavailable, stop and explain the blocker instead of fabricating row strips locally.

Do not mark visual jobs complete by editing imagegen-jobs.json, copying files into decoded/, or writing helper scripts that populate row outputs. Use record_imagegen_result.py for selected built-in $imagegen outputs, or generate_pet_images.py only for the documented secondary fallback. The deterministic scripts may only process already-generated visual outputs.

Only the base job may be prompt-only. Every row-strip job generated through $imagegen must use the input images listed in imagegen-jobs.json, including the canonical base reference created after the base job is recorded. Treat any row generation without attached grounding images as invalid.

Codex Digital Pet Style

Default pet art should match the Codex app's built-in digital pets: small pixel-art-adjacent mascots with compact chibi proportions, chunky readable silhouettes, thick dark 1-2 px outlines, visible stepped/pixel edges, limited palettes, flat cel shading, simple expressive faces, and tiny limbs. Even if the reference art is more detailed, complex or realistic, the generated pet should be simplified into this style.

Do NOT generate polished illustration, painterly rendering, anime key art, 3D rendering, glossy app-icon treatment, realistic fur or material texture, soft gradients, high-detail antialiasing, and complex tiny accessories. References that are more detailed than this should be simplified into the house style before row generation.

Transparency And Effects

Pet rows are processed into transparent 192x208 cells, so every generated pixel must either belong to the pet sprite or be cleanly removable chroma-key background. Prefer pose, expression, and silhouette changes over decorative effects.

Allowed effects must satisfy all of these conditions:

  • The effect is state-relevant and helps explain the animation.
  • The effect is physically attached to, touching, or overlapping the pet silhouette, not floating nearby.
  • The effect is inside the same frame slot as the pet and does not create a separate sprite component.
  • The effect is opaque, hard-edged, pixel-style, and uses non-chroma-key colors.
  • The effect is small enough to remain readable at 192x208 without clutter.

Examples of allowed effects: a tear touching the face, a small smoke puff touching the box or head, or tiny stars overlapping the pet during a failed/dizzy reaction.

Avoid these by default because they usually break transparent-background cleanup or component extraction:

  • wave marks, motion arcs, speed lines, action streaks, afterimages, blur, or smears
  • detached stars, loose sparkles, floating punctuation, floating icons, falling tear drops, separated smoke clouds, or loose dust
  • cast shadows, contact shadows, drop shadows, oval floor shadows, floor patches, landing marks, impact bursts, glow, halo, aura, or soft transparent effects
  • text, labels, frame numbers, visible grids, guide marks, speech bubbles, thought bubbles, UI panels, code snippets, checkerboard transparency, white backgrounds, black backgrounds, or scenery
  • chroma-key-adjacent colors in the pet, prop, effects, highlights, or shadows
  • stray pixels, disconnected outline bits, speckle/noise, cropped body parts, overlapping poses, or any pose that crosses into a neighboring frame slot

State-specific guidance:

  • waving: show the wave through paw pose only. Do not draw wave marks, motion arcs, lines, sparkles, or symbols around the paw.
  • jumping: show vertical motion through body position only. Do not draw shadows, dust, landing marks, impact bursts, bounce pads, or floor cues.
  • failed: tears, attached smoke puffs, or attached stars are allowed if they obey the allowed-effects rules; do not use red X marks, floating symbols, detached smoke, detached stars, or separate tear droplets.
  • review: show focus through lean, blink, eyes, head tilt, or paw position. Do not add magnifying glasses, papers, code, UI, punctuation, or symbols unless that prop already exists in the base pet identity.
  • running-right, running-left, and running: show locomotion through body, limb, and prop movement only. Do not draw speed lines, dust clouds, floor shadows, or motion trails.

Pet Naming

Ask the user for a pet name when they have not provided one and only if the conversation naturally allows it. If asking would slow down a direct execution request, choose a short appropriate name from the pet concept, reference image, or personality, then use that name consistently as the display name and as the source for the package folder slug.

Good built-in style examples:

  • Codex - The original Codex companion.
  • Dewey - A tidy duck for calm workspace days.
  • Fireball - Hot path energy for fast iteration.
  • Rocky - A steady rock when the diff gets large.
  • Seedy - Small green shoots for new ideas.
  • Stacky - A balanced stack for deep work.
  • BSOD - A tiny blue-screen gremlin.
  • Null Signal - Quiet signal from the void.

Visible Progress Plan

For every pet run, keep a visible checklist so the user can see where the work is up to. Create the checklist before starting, keep one step active at a time, and update it as each step finishes.

Before creating the checklist, establish the pet name when possible. Use the user-provided name when available; otherwise infer a short appropriate name from the concept or references. If the name is too long, not settled, or not appropriate for a friendly checklist, use your pet instead.

Use this checklist for a normal pet run, replacing <Pet> with the pet's name or your pet:

  1. Getting <Pet> ready.
  2. Imagining <Pet>'s main look.
  3. Picturing <Pet>'s poses.
  4. Hatching <Pet>.

What each step means:

  • Getting <Pet> ready. Choose or confirm the pet name, description, source images, and working folder.
  • Imagining <Pet>'s main look. Generate the pet's main reference image. This is required for new pets, even when the user does not provide an image, because it becomes the visual source of truth.
  • Picturing <Pet>'s poses. Create the pose rows, starting with idle and running-right to confirm the pet still looks consistent. Only mirror running-left if running-right clearly works when flipped.
  • Hatching <Pet>. Turn the approved poses into the final pet files, review the contact sheet, previews, and validation results, fix any broken parts, save pet.json and spritesheet.webp into the pet folder, then tell the user where the pet and QA files were saved.

Only mark a step complete when the real file, image, or decision exists. If this is just a repair run, start from the first relevant step instead of restarting the whole checklist.

Default Workflow

  1. Prepare a pet run folder and imagegen job manifest:
bash
SKILL_DIR="${CODEX_HOME:-$HOME/.codex}/skills/hatch-pet"
python "$SKILL_DIR/scripts/prepare_pet_run.py" \
  --pet-name "<Name>" \
  --description "<one sentence>" \
  --reference /absolute/path/to/reference.png \
  --output-dir /absolute/path/to/run \
  --pet-notes "<stable pet description>" \
  --style-notes "<style notes>" \
  --force

All arguments above are optional except any flags needed to express user constraints. For text-only requests, pass the concept through --pet-notes and omit --reference; prepare_pet_run.py will infer a name, description, chroma key, and output directory as needed.

  1. Inspect the next ready $imagegen jobs:
bash
python "$SKILL_DIR/scripts/pet_job_status.py" --run-dir /absolute/path/to/run
  1. For each ready job, invoke $imagegen with:
  • the prompt file listed in imagegen-jobs.json
  • every input image listed for the job, with its role label
  • the default built-in image_gen path unless $imagegen itself routes otherwise

The base job must complete first. If user references exist, the base job uses them. If no references exist, the base job may be prompt-only. After recording the base, record_imagegen_result.py writes decoded/base.png and references/canonical-base.png; all row jobs use the original references if present plus those canonical base images.

prepare_pet_run.py also creates 9 row-specific layout guide images under references/layout-guides/, one per animation state. Row jobs attach the matching guide as a layout-only input so the model can follow the correct frame count, spacing, centering, and safe padding. Treat these guides as invisible construction references: the generated row strip must not include visible boxes, borders, center marks, labels, guide colors, or the guide background.

When generating row strips, keep the identity lock in the row prompt authoritative: do not redesign the pet, and preserve the same head shape, face, markings, palette, prop, outline weight, body proportions, and silhouette. A row that looks like a related but different pet is failed even if the deterministic geometry QA passes.

Generate and record running-right before deciding how to complete running-left. Inspect running-right against the base and references. If the pet is visually symmetric enough that a horizontal mirror preserves identity, prop placement, handedness, markings, lighting, text-free details, and direction semantics, derive running-left with:

bash
python "$SKILL_DIR/scripts/derive_running_left_from_running_right.py" \
  --run-dir /absolute/path/to/run \
  --confirm-appropriate-mirror \
  --decision-note "<why mirroring preserves this pet's identity>"

If there is any asymmetric side-specific marking, readable text, non-mirrored logo, handed prop, one-sided accessory, lighting cue, or direction-specific pose that would become wrong when flipped, do not mirror. Generate running-left with $imagegen using its row prompt and all listed grounding images, including decoded/running-right.png as a gait reference.

For the built-in path, record the selected source image from $CODEX_HOME/generated_images/.../ig_*.png. Do not record files from the run directory, tmp/, hand-made fixtures, deterministic row folders, or post-processed copies as visual job sources.

  1. After selecting a generated output for a job, ingest it:
bash
python "$SKILL_DIR/scripts/record_imagegen_result.py" \
  --run-dir /absolute/path/to/run \
  --job-id <job-id> \
  --source /absolute/path/to/generated-output.png

This copies the image to the exact decoded path expected by the deterministic pipeline and records source metadata in imagegen-jobs.json.

  1. When all jobs are complete, finalize:
bash
python "$SKILL_DIR/scripts/finalize_pet_run.py" \
  --run-dir /absolute/path/to/run

Expected output:

text
run/
  pet_request.json
  imagegen-jobs.json
  prompts/
  decoded/
  frames/frames-manifest.json
  final/spritesheet.png
  final/spritesheet.webp
  final/validation.json
  qa/contact-sheet.png
  qa/review.json
  qa/run-summary.json
  qa/videos/*.mp4

Package output is written outside the run directory by default. If CODEX_HOME is set, use it; otherwise use $HOME/.codex.

text
${CODEX_HOME:-$HOME/.codex}/pets/<pet-name>/
  pet.json
  spritesheet.webp

Review qa/contact-sheet.png, qa/review.json, final/validation.json, and qa/videos/ before accepting the pet.

Deterministic validation is necessary but not sufficient. Before calling the pet done, visually inspect the contact sheet for identity consistency. Block acceptance if any row changes species/body type, face, markings, palette, prop design, prop side unexpectedly, or overall silhouette.

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

Subagent Row Generation

After the base job has been recorded and references/canonical-base.png exists, row-strip visual generation must use subagents unless the user explicitly says not to use subagents for this session. Before row generation, state that subagents are being used and which row jobs are being delegated. If subagents cannot be spawned because the current environment or tool policy blocks them, stop before row-strip generation, explain the blocker, and ask for explicit user direction before continuing sequentially.

The parent agent must own the manifest and package writes.

Default flow:

  1. Parent runs prepare_pet_run.py.
  2. Parent generates and records base.
  3. Parent runs pet_job_status.py.
  4. Parent spawns subagents for idle and running-right first as identity and gait checks.
  5. Parent records the selected idle and running-right results returned by subagents.
  6. Parent decides whether running-left is safe to derive by mirror; if not, parent treats it as a normal grounded row job delegated to a subagent.
  7. Parent spawns subagents for every remaining non-derived row image-generation job.
  8. Each subagent receives the row prompt and every listed input image path, invokes $imagegen, and returns only the selected $CODEX_HOME/generated_images/.../ig_*.png source path.
  9. Parent alone runs record_imagegen_result.py, derive_running_left_from_running_right.py, repair queueing, finalization, QA, and packaging.

Subagent write boundary: do not let subagents edit imagegen-jobs.json, copy files into decoded/, run record_imagegen_result.py, run derive_running_left_from_running_right.py, run finalize_pet_run.py, or package the pet. This avoids manifest races and keeps provenance checks centralized.

Subagent handoff contract:

  • Give each subagent exactly one row job unless you are intentionally batching adjacent simple rows.
  • Include the row id, the absolute prompt file path, the full prompt text or an instruction to read that exact prompt file, and every input image path with its role label from imagegen-jobs.json.
  • Explicitly remind the subagent that the prompt's transparency and effects rules are mandatory: no detached effects, no wave marks for waving, no speed lines or dust for running rows, and only attached opaque sprite-like tears/smoke/stars when allowed by the state prompt.
  • Tell the subagent to inspect the generated candidate for frame count, identity consistency, clean flat chroma-key background, safe spacing, and forbidden detached effects before returning it.
  • Tell the subagent to return only the selected original $CODEX_HOME/generated_images/.../ig_*.png source path plus a one-sentence QA note. The parent decides whether to record or repair it.

Use this template for each subagent:

text
Generate the `<row-id>` row for this hatch-pet run.

Run dir: <absolute run dir>
Prompt file: <absolute prompt file>
Input images:
- <absolute path> — <role>
- <absolute path> — <role>

Read and follow the row prompt exactly, including the Transparency and artifact rules. Use `$imagegen` only; do not use local scripts to draw, tile, edit, or synthesize sprites.

Before returning, visually check:
- exact requested frame count
- same pet identity as the canonical base
- clean flat chroma-key background
- complete, separated, unclipped poses
- no forbidden detached effects or slot-crossing artifacts

Do not edit manifests, copy into decoded, record results, mirror rows, finalize, repair, or package. Return only:
selected_source=/absolute/path/to/$CODEX_HOME/generated_images/.../ig_*.png
qa_note=<one sentence>

No silent sequential fallback: if subagents cannot be used for row-strip visual generation, stop and ask for explicit user direction before continuing without them. Only an explicit user instruction such as "do not use subagents" or "run this sequentially" authorizes a normal sequential row-generation path. The final answer must report which row jobs were delegated to subagents and which, if any, were mirrored or repaired by the parent.

Repair Workflow

If finalization stops because row QA failed, queue targeted repair jobs:

bash
python "$SKILL_DIR/scripts/queue_pet_repairs.py" \
  --run-dir /absolute/path/to/run

Then repeat the $imagegen generation and record_imagegen_result.py ingest loop for each reopened row job. Regenerate the smallest failing scope: the failed row, not the whole sheet.

For identity repairs, use the canonical base image, original references, contact sheet, and exact row failure note as grounding context. Repair only the failed row while preserving the canonical pet identity.

Secondary Image Generation Fallback

scripts/generate_pet_images.py is a secondary fallback for this skill.

Use it only when the installed $imagegen system skill is unavailable or cannot be invoked in the current environment. Normal pet creation should delegate visual generation to $imagegen, because $imagegen owns the built-in-first image generation policy and its own CLI fallback behavior.

Run the secondary fallback only after explaining why $imagegen cannot be used:

bash
python "$SKILL_DIR/scripts/generate_pet_images.py" \
  --run-dir /absolute/path/to/run \
  --model gpt-image-2 \
  --states all

The secondary fallback requires OPENAI_API_KEY.

Rules

  • Keep $imagegen as the primary generation layer.
  • Keep reference images attached/visible for $imagegen whenever the chosen path supports references.
  • Attach the row's references/layout-guides/<state>.png image to every row-strip job as a layout-only guide, and do not accept outputs that copy guide pixels.
  • Use subagents for row-strip visual generation after the parent records the base image. The parent may generate the base, but row-strip jobs belong to subagents unless the user explicitly says not to use subagents for this session.
  • Generate every normal visual job with $imagegen: base plus all row strips that are not explicitly approved running-left mirror derivations.
  • Treat only the base job as eligible for prompt-only generation; every row job must attach its listed grounding images.
  • Delegate running-right first, then mirror running-left only when visual inspection confirms a mirror preserves identity and semantics; otherwise delegate running-left as a normal grounded $imagegen row.
  • Never substitute locally drawn, tiled, transformed, or code-generated row strips for missing $imagegen outputs.
  • Never manually mutate imagegen-jobs.json to claim a visual job completed.
  • Do not rely on generated images for exact atlas geometry; use this skill's deterministic scripts.
  • Use the chroma key stored in pet_request.json; do not force a fixed green screen.
  • Keep the pet's silhouette, face, materials, palette, and props consistent across all rows.
  • Enforce the transparency and effects rules above in every base, row, and repair prompt.
  • Treat visual identity drift as a blocker even when qa/review.json and final/validation.json have no errors.
  • Treat a contact sheet that shows cropped references, repeated tiles, white cell backgrounds, or non-sprite fragments as failed.
  • Treat forbidden detached effects, chroma-key-adjacent artifacts, shadows, glows, smears, dust, landing marks, wave marks, speed lines, or motion trails as failed rows.
  • Treat qa/review.json errors as blockers. Warnings require visual review.

Acceptance Criteria

  • Final atlas is PNG or WebP, 1536x1872, transparent-capable, and based on 192x208 cells.
  • Used cells are non-empty and unused cells are fully transparent.
  • Atlas follows the row/frame counts in references/animation-rows.md.
  • Contact sheet and preview videos have been produced unless explicitly skipped.
  • qa/review.json has no errors.
  • Row-by-row review confirms the animation cycles are complete enough for the Codex app.
  • ${CODEX_HOME:-$HOME/.codex}/pets/<pet-name>/pet.json and ${CODEX_HOME:-$HOME/.codex}/pets/<pet-name>/spritesheet.webp are staged together for custom pets.

© nexu-io, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 22 other files (scripts, references) in skills/hatch-pet of nexu-io/open-design.

  • SKILL.md
  • LICENSE.txt
  • README.md
  • agents/openai.yaml
  • references/animation-rows.md
  • references/codex-pet-contract.md
  • references/qa-rubric.md
  • scripts/compose_atlas.py
  • scripts/derive_running_left_from_running_right.py
  • scripts/extract_strip_frames.py
  • scripts/finalize_pet_run.py
  • scripts/generate_pet_images.py
  • scripts/inspect_frames.py
  • scripts/make_contact_sheet.py
  • scripts/package_custom_pet.py
  • scripts/pet_job_status.py
  • scripts/prepare_pet_run.py
  • scripts/queue_pet_repairs.py
  • … and 5 more

Open the folder on GitHubat commit 17e2559

Compare with similar skills

Hatch Pet 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.

Hatch Pet compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hatch Pet this skillnexu-io/open-design100k—~6kAutomated safety check: PassApache-2.0
Sprite Genaldegad/sprite-gen2.7k—~4.9kAutomated safety check: PassApache-2.0
Hatch PethAcKlyc/MyAgents9191 repos~9.5kAutomated safety check: PassApache-2.0
2D Sprite Generator0x0funky/agent-sprite-forge4.4k—~3.6kAutomated safety check: PassMIT
Img Gen Avatar4thfever/cultivation-world-simulator2.1k—~641Automated safety check: PassCustom licence
Retro Diffusionchongdashu/vibejam-starter-pack149—~3.4kAutomated safety check: PassNone

Similar skills

  • Sprite Gen

    aldegad/sprite-gen

    Generates images and game sprites through GPT or Grok with guided provider choices, separate saved defaults, automatic cleanup and optional curation.

    2.7k GitHub stars~4.9k tokensUpdated today
    Game DevelopmentAuto-check passed
  • Hatch Pet

    hAcKlyc/MyAgents

    Create, repair, validate, visually QA, and package MyAgents/Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual…

    919 GitHub starsUsed in 1 repo~9.5k tokens
    Game DevelopmentAuto-check passed
  • 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.

    4.4k GitHub stars~3.6k tokensUpdated 4 days ago
    Game DevelopmentAuto-check passed
  • Img Gen Avatar

    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…

    2.1k GitHub stars~641 tokensUpdated 1 mo ago
    Game DevelopmentAuto-check passed
  • Retro Diffusion

    chongdashu/vibejam-starter-pack

    Use Retro Diffusion for pixel-art image generation, img2img edits, spritesheets, and animation experiments such as platformer walk cycles, turnarounds, and action sheets from reference images.

    149 GitHub stars~3.4k tokensUpdated 5 mo ago
    Game DevelopmentAuto-check passed
  • Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.

    7.1k GitHub stars~2.8k tokensUpdated 8 days ago
    Game DevelopmentAuto-check passed

More from nexu-io/open-design

All 245 skills in this repo
  • Humanize PPT

    nexu-io/open-design

    Turns raw notes into a talk-ready slide outline with per-page image, diagram or video decisions, then checks the rendered deck against that outline.

    100k GitHub stars~4k tokensUpdated today
    Auto-check passed
  • Last 30 Days Trend Research

    nexu-io/open-design

    Produces a cited Markdown briefing on recent community sentiment and social reaction to a topic, labeling every source it could not actually check.

    100k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • OpenDesign Contribution Flow

    nexu-io/open-design

    Helps newcomers contribute to OpenDesign: ship a skill or design system, translate docs, fix docs or report a bug, ending in a pull request or issue.

    100k GitHub stars~3.5k tokensUpdated today
    Auto-check: notes
  • Turns a chat transcript or screenshot into a configurable animated chat clip, rendered as a Remotion bundle with optional transparency.

    100k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Team-management dashboard skill in the FlowAI aesthetic — three tabs (Team Members, Team Details, Activity Log), KPI stat row, member table, role distribution bar chart, online presence and activity…

    100k GitHub stars~865 tokensUpdated today
    Auto-check passed
  • HTML PPT Studio

    nexu-io/open-design

    Builds slide decks as static HTML files from a token-based design system, with themes, layouts, animations and a presenter mode.

    100k GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Questions about Hatch Pet

What does Hatch Pet do?

Create, repair, validate, preview, and package Codex-compatible animated pet spritesheets from character art, screenshots, generated images, or visual references. Hatch Pet is an agent skill from nexu-io/open-design. Create, repair, validate, preview, and package Codex-compatible animated pet spritesheets from character art, screenshots, generated images, or visual references.

When should I use Hatch Pet?

Hatch Pet fits situations like: A user wants to hatch a Codex pet; create a custom animated pet; build a built-in pet asset with an 8x9 atlas; transparent unused cells.

How do I install Hatch Pet in Claude Code?

Run `npx skills add nexu-io/open-design --skill hatch-pet -a claude-code`. Or copy the skill folder (skills/hatch-pet in nexu-io/open-design) into .claude/skills/hatch-pet in your project. Claude Code loads it when a task matches its description.

How do I install Hatch Pet in Codex?

Run `npx skills add nexu-io/open-design --skill hatch-pet -a codex`. Or copy the skill folder (skills/hatch-pet in nexu-io/open-design) into .agents/skills/hatch-pet in your project. Codex loads it when a task matches its description.

Can I use Hatch Pet 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 nexu-io/open-design --skill hatch-pet -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hatch-pet, .gemini/skills/hatch-pet, .github/skills/hatch-pet and .opencode/skills/hatch-pet in your project.

What does Hatch Pet need to run?

Going by SKILL.md and its folder, Hatch Pet needs Python for the scripts in its folder, the command-line tools its instructions call (python) and credentials named OPENAI_API_KEY. Our summary lists: Python 3.

Does Hatch Pet 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 Hatch Pet 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Hatch Pet use?

Hatch Pet is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hatch Pet use?

About 6k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.

What are the alternatives to Hatch Pet?

Skills that share tags, products or a category with Hatch Pet: Sprite Gen (aldegad/sprite-gen, 2.7k stars), Hatch Pet (hAcKlyc/MyAgents, 919 stars), 2D Sprite Generator (0x0funky/agent-sprite-forge, 4.4k stars) and Img Gen Avatar (4thfever/cultivation-world-simulator, 2.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hatch Pet?

nexu-io (a GitHub organization) maintains it in nexu-io/open-design, which has 100,280 GitHub stars. The repository holds 245 skills in this directory. The repository was last updated on October 10, 2026.

Source: nexu-io/open-design on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.