Anleitung für Codex Desktop-Pets

Aktualisiert am 2026-07-16

Worum es geht

Pets ist eine Funktion der OpenAI Codex App (Desktop-Version): Auf dem Bildschirm schwebt ein transparentes kleines Fenster im Vordergrund, in dem ein Pixel-Haustier wohnt. Es ist keine bloße Dekoration – die Animationszustände hängen direkt am Laufzeitstatus von Codex:

  • Generiert Codex gerade Code, wechselt das Pet in die Animation „Bei der Arbeit“ und zittert vor lauter Betriebsamkeit;
  • Wartet Codex auf deine Eingabe, springt es auf „Wartet auf dich“ um und schaut dich an;
  • Ist die Aufgabe geglückt, macht es einen Freudensprung; ist sie gescheitert, sackt es zusammen und schwitzt kalt.

Kein Fensterwechsel nötig: Ein Blick auf das Pet genügt, um zu wissen, ob du zurück ins Terminal solltest.

So bekommst du ein Pet zum Laufen

  1. Vergewissere dich, dass du die Desktop-Version der Codex App installiert hast (nicht nur das CLI) und aktiviere Pets in den Einstellungen;
  2. Lade aus dem Katalog die .pet.zip eines beliebigen Pets herunter;
  3. Entpacke sie in den pets-Ordner – ein Ordner pro Pet:
# macOS / Linux
~/.codex/pets/<pet-id>/
├── pet.json
└── spritesheet.webp   (PNG geht auch)

# Windows
%USERPROFILE%\.codex\pets\<pet-id>\

Danach erscheint das neue Pet in der Pet-Auswahl der Codex App. Falls nicht, starte die Codex App einmal neu.

Spritesheet-Spezifikation (offiziell)

Sämtliche Animationen eines Pets stecken in einem einzigen Bild: 1536×1872 Pixel, PNG oder WebP, transparenter Hintergrund, aufgeteilt in 8 Spalten × 9 Zeilen mit je 192×208 pro Feld. Wichtig: Jede Zeile nutzt eine andere Anzahl Frames (so steht es im offiziellen Contract animation-rows.md), und ungenutzte Felder einer Zeile müssen vollständig transparent bleiben. Von oben nach unten:

ZeileZustands-IDNameGenutzte FramesSchleifendauerWann sie läuft
0idleBereitschaft61100msRuhiges Atmen, gelegentliches Blinzeln
1running-rightLäuft nach rechts81060msCodex schickt es nach rechts an die Arbeit
2running-leftLäuft nach links81060msAuf dem Rückweg
3wavingWinken4700msWinkt dir kurz zu, bevor die Aufgabe startet
4jumpingSprung5840msAufgabe erledigt, Freudensprung
5failedFehlgeschlagen81220msEtwas ging schief – hängt durch und schwitzt kalt
6waitingWartet auf dich61010msCodex wartet auf deine Eingabe und starrt dich an
7runningBei der Arbeit6820msCodex generiert Code, es zittert vor Betriebsamkeit
8reviewReview61030msKneift die Augen zusammen und scannt deinen Code

Ein paar Regeln, über die man leicht stolpert:

  • Das gesamte Pet muss komplett im Feld von 192×208 bleiben – auch am höchsten Punkt eines Sprungs;
  • Transparent heißt wirklich transparent: Ungenutzte Pixel müssen Alpha 0 haben und dürfen keine RGB-Reste enthalten. Halbtransparente Schlagschatten, Bodenschatten, Speedlines und ähnliche „abgesetzte Effekte“ sind verboten (das offizielle validate_atlas.py prüft das Pixel für Pixel);
  • Male keine lesbare Schrift und keine Logos auf das Pet;
  • Die Details müssen groß genug sein – die Anzeigegröße ist am Ende winzig, ein Muster aus ein, zwei Pixeln sieht schlicht niemand.

So sieht eine pet.json aus

{
  "id": "momo",
  "displayName": "Momo",
  "description": "A round cream-orange cat.",
  "spritesheetPath": "spritesheet.webp"
}

Vier Felder genügen. id besteht aus Kleinbuchstaben und Ziffern und stimmt mit dem Ordnernamen überein; spritesheetPath ist relativ zur pet.json angegeben.

Bau dir selbst eines

Weg 1: die KI malen lassen (der offizielle Weg). OpenAI stellt in openai/skills die Skill hatch-pet bereit. Installiere sie in Codex, beschreibe die gewünschte Figur, und die Skill ruft die Bildgenerierung auf, malt die 9 Animationszeilen Zeile für Zeile, setzt sie automatisch zum spezifikationskonformen Spritesheet zusammen und legt das Ergebnis direkt in ~/.codex/pets/ ab. Ideal für alle, die eine fein gezeichnete Optik wollen.

Weg 2: jedes Frame per Code zeichnen (unser Weg). Die 91 Pets dieser Seite sind allesamt prozedural mit Python + Pillow erzeugt: Auf einem logischen Raster von 24×26 entsteht der Körper aus Farbflächen, dann bekommt jedes Frame je nach Zustand seine Parameter – Bereitschaft heißt Atembewegung plus Blinzeln, der Sprung folgt einer Bewegungskurve aus Ducken, Strecken, Schweben und Landen, und Scheitern bedeutet gestauchter Körper plus X-Augen und kaltem Schweiß. Am Ende wird alles gemäß den Framezahlen der einzelnen Zeilen zum großen Bild mit 1536×1872 zusammengesetzt. Als wir bei ein paar Dutzend Pets angekommen waren, haben wir das Ganze zu einem „konfigurationsgetriebenen“ Ansatz abstrahiert: Körperform, Farbgebung, Ohren, Schwanz, Brille und Schal sind Parameter – für ein neues Pet reichen zehn Zeilen Konfiguration.

Beide Wege führen zum selben Ergebnis: ein regelkonformes Spritesheet plus eine pet.json. Ordner in das pets-Verzeichnis werfen, läuft.

Häufige Fragen

Das Pet bewegt sich nicht oder taucht nicht auf? Prüfe zuerst die Ordnerebene – die pet.json muss direkt in pets/<id>/ liegen, nicht in einem zusätzlichen Ordner aus dem Entpacken. Prüfe dann, ob das Bild exakt 1536×1872 groß ist.

Was ist der Unterschied zwischen V1 und V2? Was die Community V2 nennt, ergänzt die 9 Basiszeilen um „Umschau“-Frames in 16 Blickrichtungen, damit das Pet in Richtung des Mauszeigers schauen kann. Pets nach der Basisspezifikation mit 9 Zeilen (also auch die von dieser Seite) funktionieren in neuen Versionen der Codex App uneingeschränkt weiter.

Darf ich die Pets dieser Seite verändern? Ja. Alle 91 sind eigene Pixel-Arbeiten (die Inspirationsreihe orientiert sich lediglich an Motivtypen und enthält keine urheberrechtlich geschützten Figuren) – verändere und verbreite sie nach Belieben, eine Namensnennung ist nicht nötig.

Keine Idee fürs Referenzbild? Bei PixPix genügt ein Satz, um ein Referenzbild im Stil „Charakter in Ganzkörperansicht, einfarbiger Hintergrund“ zu erzeugen – ideal, um es an hatch-pet zu geben oder Frame für Frame danach zu pixeln.