Panduan Pet Desktop Codex

Diperbarui 2026-07-16

Apa sebenarnya ini

Pets adalah salah satu fitur di OpenAI Codex App (versi desktop): ada jendela kecil transparan yang selalu di atas layar, dan di dalamnya tinggal seekor pet piksel. Ia bukan sekadar hiasan — status animasinya terikat pada status kerja Codex:

  • saat Codex sedang menulis kode, pet masuk ke animasi "sedang bekerja", sibuk sampai gemetar di tempat;
  • saat Codex berhenti menunggu inputmu, pet berganti ke "menunggu balasan" dan mendongak menatapmu;
  • tugas berhasil, ia melompat merayakan; tugas gagal, ia langsung lesu dan berkeringat dingin.

Tanpa perlu berpindah jendela, cukup lirik pet-nya dan kamu tahu perlu balik ke terminal atau tidak.

Cara mulai memakai satu pet

  1. Pastikan yang terpasang adalah Codex App versi desktop (bukan CLI murni), lalu aktifkan Pets di pengaturan;
  2. Unduh .pet.zip pet mana pun dari katalog;
  3. Ekstrak ke folder pets, satu folder untuk tiap pet:
# macOS / Linux
~/.codex/pets/<id-pet>/
├── pet.json
└── spritesheet.webp   (PNG juga boleh)

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

Setelah itu, pet baru akan muncul di daftar pilihan pet Codex App. Kalau belum muncul, mulai ulang Codex App sekali.

Spesifikasi spritesheet (resmi)

Seluruh animasi seekor pet ada dalam satu gambar: 1536×1872 piksel, PNG atau WebP, berlatar transparan, dibagi jadi 8 kolom × 9 baris, tiap kotak 192×208. Perhatikan: jumlah frame yang benar-benar dipakai tiap baris berbeda-beda (ini ditetapkan secara eksplisit di berkas kontrak resmi animation-rows.md), dan kotak yang tak terpakai dalam satu baris harus benar-benar transparan. Dari atas ke bawah urutannya:

BarisID StatusNamaFrame terpakaiDurasi loopKapan diputar
0idleDiam61100msBernapas tenang, sesekali berkedip
1running-rightLari ke kanan81060msCodex menyuruhnya kerja ke sebelah kanan
2running-leftLari ke kiri81060msLagi di perjalanan pulang
3wavingMenyapa4700msMelambai dulu sebelum tugas dimulai
4jumpingMelompat5840msTugas beres, lompat kegirangan
5failedGagal81220msAda error — lemas di tempat sambil keringat dingin
6waitingMenunggu balasan61010msCodex berhenti menunggu input, dan ia menatapmu
7runningSedang bekerja6820msCodex lagi menulis kode, sibuk sampai gemetar
8reviewMeninjau61030msMenyipitkan mata, menyapu kodemu kiri-kanan

Beberapa aturan yang gampang bikin tersandung:

  • seluruh tubuh pet harus utuh di dalam kotak 192×208 — titik tertinggi lompatan pun tak boleh keluar kotak;
  • transparan berarti benar-benar transparan: alpha piksel yang tak dipakai harus 0 dan tak boleh menyisakan nilai RGB; dilarang menggambar bayangan semi-transparan, bayangan tanah, garis kecepatan, dan "efek terpisah" sejenisnya (validate_atlas.py resmi memeriksanya piksel demi piksel);
  • jangan menggambar teks terbaca atau logo di tubuh pet;
  • detailnya harus cukup besar — ukuran tampilan akhirnya sangat kecil, motif setipis satu-dua piksel sama sekali tak terlihat.

Seperti apa isi pet.json

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

Empat field saja sudah cukup. id pakai huruf kecil dan angka, sama persis dengan nama foldernya; spritesheetPath adalah path relatif terhadap pet.json.

Bikin satu sendiri

Cara pertama: biar AI yang menggambar (jalur resmi). OpenAI menyediakan skill hatch-pet di openai/skills. Setelah dipasang di Codex, jelaskan karakter yang kamu mau; ia akan memanggil pembangkit gambar untuk melukis 9 baris animasi baris demi baris, lalu otomatis menyusunnya jadi spritesheet sesuai spesifikasi, dan hasilnya langsung mendarat di ~/.codex/pets/. Cocok buat yang menginginkan kesan gambar tangan yang halus.

Cara kedua: gambar frame demi frame lewat kode (jalur situs ini). Seluruh 91 pet di situs ini dibuat secara prosedural dengan Python + Pillow: tubuhnya digambar dari blok warna di atas kisi logis 24×26, lalu tiap frame diberi parameter sesuai statusnya — diam berarti naik-turun napas plus kedipan, melompat berarti kurva perpindahan dari menekuk, meregang, melayang, hingga mendarat, dan gagal berarti tubuh yang gepeng plus mata X dan keringat dingin. Terakhir semuanya disusun jadi gambar besar 1536×1872 mengikuti jumlah frame resmi tiap baris. Setelah skalanya mencapai puluhan ekor, kami mengabstraksikannya jadi "digerakkan konfigurasi": bentuk badan, palet warna, telinga, ekor, kacamata, syal — semuanya parameter, dan menambah satu pet baru cukup menulis sepuluh baris konfigurasi.

Hasil kedua jalur itu benda yang sama: satu spritesheet yang lolos spesifikasi plus satu pet.json. Begitu jadi, lempar foldernya ke direktori pets dan langsung jalan.

Pertanyaan umum

Pet-nya diam saja atau tidak muncul? Cek dulu susunan foldernya — pet.json harus langsung berada di dalam pets/<id>/, tidak boleh terbungkus satu lapis folder tambahan hasil ekstrak; lalu cek apakah ukuran gambarnya persis 1536×1872.

Apa bedanya V1 dan V2? Yang komunitas sebut V2 adalah penambahan 16 frame "menoleh" ke berbagai arah di luar spesifikasi dasar 9 baris, supaya pet bisa menghadap ke arah kursor. Pet dengan spesifikasi dasar 9 baris (termasuk milik situs ini) tetap sepenuhnya bisa dipakai di Codex App versi baru.

Boleh tidak pet situs ini dimodifikasi? Boleh. Semua 91 ekor adalah karya piksel orisinal (seri inspirasi hanya mengacu pada jenis temanya, tanpa satu pun karakter berhak cipta) — modifikasi sesukamu, sebarkan sesukamu, tanpa perlu mencantumkan sumber.

Bingung mulai bikin gambar referensi dari mana? Di PixPix, satu kalimat saja cukup untuk menghasilkan gambar referensi "karakter seluruh badan, latar polos" — cocok dijadikan bahan hatch-pet maupun contekan menggambar frame demi frame.