Guide
The OpenAI Codex pet package format
Two files, no archives. An OpenAI Codex pet ships a pet.json description and a 1536×1872 WebP atlas of 8 columns × 9 rows of 192×208 cells. Anything else is rejected.
Agent reading? Open the markdown alternate.
# Required files
- pet.json — metadata, license, atlas geometry, and the list of animation states.
- spritesheet.webp — single WebP atlas, all states baked into one image.
# Spritesheet shape
- Format: WebP (no SVG, HTML, or JS).
- Dimensions: 1536 px wide × 1872 px tall.
- Grid: 8 columns × 9 rows.
- Cell: 192 px wide × 208 px tall.
- Max source size: 4 MB.
# pet.json shape
- Max size: 50 KB.
- Valid JSON, UTF-8.
- No external URLs, no script/code fields, no HTML.
- Allowed text fields are length-limited and sanitized before storage.
- Unknown fields are rejected for safety; preserve them only if they are documented as harmless.
{
"schema_version": "codexpet.v1",
"name": "Null Puff",
"description": "A tiny void cloud Codex pet for long coding sessions.",
"license": "CC-BY-4.0",
"author": "CodexPetHub",
"tags": ["void", "calm"],
"atlas": {
"width": 1536, "height": 1872,
"columns": 8, "rows": 9,
"cell_width": 192, "cell_height": 208
},
"states": [
{ "name": "idle", "row": 0, "frames": 6 }
]
}Top-level keys are restricted to: schema_version, name, description, license, author, tags, atlas, states. Unknown keys are rejected.
# License policy
Public listings require an explicit license. Pets without one stay in pending_review until a moderator can confirm the publisher meant to release the artwork. The accepted licenses for the MVP are the standard permissive set used elsewhere in the agent ecosystem.
- CC0-1.0
- CC-BY-4.0
- CC-BY-SA-4.0
- MIT
- Custom-free-use (attribution required, restated on the pet page)
- Unknown-private-review (hidden from public listings)
AI-generated pets: if you produced the artwork with an image-generation model (Midjourney, Stable Diffusion, DALL·E, Nano Banana, etc.), default to CC-BY-4.0 with author set to your handle or studio unless the model's terms force a stricter license. The launch catalog imported by scripts/import-frompetdex.ts stamps every AI-generated pet as license CC-BY-4.0, author CodexPetHub for exactly this reason — it is a permissive default that keeps the pet eligible for public listing while preserving attribution.
If you cannot establish the artwork's license, set license to Unknown-private-review and submit anyway — the pet stays hidden from public listings until a moderator can verify the chain of provenance.
# Validation rules at a glance
- All required files present (pet.json, spritesheet.webp).
- spritesheet.webp magic bytes valid; dimensions exactly 1536×1872.
- pet.json under 50 KB; sanitized; no external URLs.
- Both files SHA-256 hashes match the values declared by the publisher (publishers compute hashes locally before submission).
- Total package size within MVP limits (§8.4 of the architecture spec).