A small collection of ready-to-use AI coding companion pet assets.
This repository stores generated pet packages, not the generation workflow. Each pet folder contains the files needed by the target app.
pet/
βββ codex/
βββ pets.json
βββ airi/
β βββ pet.json
β βββ spritesheet.webp
βββ kerno/
βββ ...
Codex custom pets are stored under codex/<pet-id>/.
Available pets:
airi- A cute refined anime coding companion who keeps the workspace calm.kerno- A tiny terminal-kernel sentinel for Noi architecture and runtime work.
Each pet package should contain:
pet.json- Pet metadata, including the display name and spritesheet path.spritesheet.webp- The animated pet spritesheet used by Codex.
Example:
codex/kerno/
βββ pet.json
βββ spritesheet.webp
You do not need to clone this repository or install Node.js. Install a specific Codex pet directly from lencx.me:
macOS / Linux:
curl -fsSL https://lencx.me/pet/install.sh | sh -s -- kernoWindows PowerShell:
irm https://lencx.me/pet/install.ps1 | iex; CodexPet kernoInstall all available Codex pets:
curl -fsSL https://lencx.me/pet/install.sh | sh -s -- --allirm https://lencx.me/pet/install.ps1 | iex; CodexPet --allList available pets:
curl -fsSL https://lencx.me/pet/install.sh | sh -s -- --listirm https://lencx.me/pet/install.ps1 | iex; CodexPet --listThe remote list is read from the generated codex/pets.json index. The install script does not use the GitHub API.
Replace an existing installed pet:
curl -fsSL https://lencx.me/pet/install.sh | sh -s -- kerno --forceUse a custom Codex home:
curl -fsSL https://lencx.me/pet/install.sh | sh -s -- kerno --codex-home "/path/to/.codex"If you already cloned the repository, you can run the local shell script:
sh scripts/install-codex-pet.sh kerno --base-url "file://$PWD"After copying, restart Codex or refresh the pet list if the app does not show the new pet immediately.
You can also copy a pet folder manually into ${CODEX_HOME:-~/.codex}/pets/<pet-id>/.
- Create a new folder under
codex/<pet-id>/. - Add
pet.jsonandspritesheet.webp. - Make sure
pet.jsonpoints to the spritesheet file:
{
"id": "pet-id",
"displayName": "Pet Name",
"description": "A short description of the pet.",
"spritesheetPath": "spritesheet.webp"
}- Commit the new folder.
codex/pets.json is generated from the pet folders. The GitHub Action updates it on main; you can also update it locally:
macOS / Linux:
sh scripts/update-codex-index.shWindows PowerShell:
powershell -ExecutionPolicy Bypass -File scripts/update-codex-index.ps1- Keep generated assets in their own pet folder.
- Do not commit temporary generation outputs or QA files unless they are intentionally part of the release.
- Use lowercase kebab-case folder names for pet IDs.