---
title: "Codex pet checker: preview and validate a pet spritesheet"
description: "Drop a Codex pet's zip, folder or spritesheet: watch every row play, check it the way Desktamer imports pets, fix run rows that face backwards, and save a GIF."
image: "https://desktamer.com/og.png"
url: "https://desktamer.com/tools/codex-pet-checker/"
---

# Codex pet checker

Drop in a Codex pet to watch every animation row play and check it the way Desktamer's importer does. It fixes what would look wrong, like run rows facing backwards or a missing pet.json, and saves any row as a GIF.

It all happens in your browser: your pets never leave your computer.

## What it checks

It reads your pet the way Desktamer's importer does. It's the same code, rewritten for the browser and tested against the app's own, so if the checker says Desktamer will take a pet, Desktamer will.

- **What you dropped.** A zip, a folder, `pet.json` with its sheet, or a sheet on its own. In a zip, the `pet.json` nearest the top wins, and a Mac's leftovers (`__MACOSX`, `._`files) are skipped. A zip can hold up to 64 files and 64 MB unpacked.
- **pet.json.** It needs an `id` or a `displayName`. The id is used as a folder name, so it's made safe for one, the way codex-pets.net does it: "Happy Dog!" becomes `happy-dog`.`spritesheetPath` has to stay inside the pet, and `spriteVersionNumber`, if it's there, has to be 1 or 2.
- **The sheet's size.** A WebP, PNG or GIF of exactly 1536 × 1872 (v1, 9 rows) or 1536 × 2288 (v2, 11 rows), and the version in `pet.json` has to match.
- **Every row.** Frames are counted up to the last cell with a few pixels of art in it. A blank cell before that makes the pet blink out, and an empty row makes it vanish while it plays.
- **The background.** A sheet with nothing see-through would stand on your desktop in a box.
- **Art at the edge of a cell**, which gets cut off there.
- **Which way it runs**, below.

What each row is for, and how many frames it holds, is in [How to make your own desktop pet](https://desktamer.com/blog/make-your-own-desktop-pet/).

## When a pet runs backwards

Row 1 is meant to run right and row 2 to run left. Many sheets have them swapped, or have both drawn facing the same way. The checker compares the two rows, as drawn and mirrored, to see whether they face opposite ways. Then it looks at which way the runner leans: people lean into a run, and animals lead with the head while the tail trails behind.

Desktamer measures this on import and plays the rows the right way round. Codex plays them as labelled, so there your pet would moonwalk. The zip the checker gives back swaps the rows, or makes one the mirror of the other, so it runs the right way everywhere.

It's a measurement, and odd shapes can fool it, so watch the run rows play before you take the fix. If they were right all along, untick *Fix the run rows*. In Desktamer, *Running Backwards? Flip Direction* in a pet's right-click menu turns it round, and a `pet.json` can say which way row 1 runs (`"desktamer": { "runFacing": "right" }`) so it's never measured, as our Knight's does.

## Saving a row as a GIF

Any row can be saved as a looping GIF, at the speed Desktamer plays it. Choose *Cropped* to cut it close round the art, or a 128 or 320 pixel square, sizes chat apps use for emoji and stickers. A GIF's pixels are either solid or clear, so soft edges come out hard.

## Questions

### Is my pet uploaded?

No. The checker runs in this page, on your own computer, and your files never leave it. We only count that a pet was checked or saved, never which.

### Will Codex take any pet this passes?

The checks are Desktamer's, and Desktamer is the more forgiving of the two: it takes a bare sheet, swaps run rows that face backwards, and plays animated GIFs. A pet that passes with nothing to look at is a well-formed Codex pet. The Codex CLI and ChatGPT on the web only take v1 sheets so far.

### Where do I find more pets?

On [codex-pets.net](https://codex-pets.net/), where people share theirs. [Codex pets: how to use them, and where to find more](https://desktamer.com/blog/codex-pets/) has the rest.

**Desktamer** plays Codex pets on your Mac, Windows or Linux desktop. They walk, wave, nap and keep you company while you work. [Meet them](https://desktamer.com/)

Desktamer is made by [Taha Bozdemir](https://tahabozdemir.com/) at [Bold Biscuit](https://boldbiscuit.com/). Questions and bug reports go to <hello@boldbiscuit.com>.

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebApplication",
      "@id": "https://desktamer.com/tools/codex-pet-checker/#tool",
      "name": "Codex pet checker",
      "description": "Drop a Codex pet's zip, folder or spritesheet: watch every row play, check it the way Desktamer imports pets, fix run rows that face backwards, and save a GIF.",
      "url": "https://desktamer.com/tools/codex-pet-checker/",
      "applicationCategory": "DesignApplication",
      "operatingSystem": "Any",
      "browserRequirements": "Requires JavaScript",
      "isAccessibleForFree": true,
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "USD"
      },
      "inLanguage": "en",
      "publisher": {
        "@id": "https://boldbiscuit.com/#organization"
      }
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Desktamer",
          "item": "https://desktamer.com/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Free tools",
          "item": "https://desktamer.com/tools/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Codex pet checker",
          "item": "https://desktamer.com/tools/codex-pet-checker/"
        }
      ]
    }
  ]
}
```
