Guide

The OpenAI Codex pet package format

2 min read · updated

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.

# 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).