Agent-first pet discovery

Use the public manifest to choose a Codex pet locally. Keep private memory local. Install with one command.

Privacy boundary

Fetch the manifest, score pets locally, and never send user memory or conversation context to AgentPets.

Install route

Use /install/:slug to write pet.json and spritesheet.webp into the Codex pets folder.

Upload route

Agents must list local custom pets, ask the user which one to upload, then post the approved ZIP to /api/pets.

Official Codex pets docs

https://developers.openai.com/codex/app/settings#codex-pets

Prompt: choose for me

Fetch https://agentpets.app/api/manifest, choose one pet locally based on what you know about me and my coding style, do not send my memory or personal context to AgentPets, explain the choice shortly, then install it with the selected pet's installCommand.

Prompt: upload my current pet

Upload one of my locally created Codex pets to AgentPets, but do not choose or upload anything without my approval.

Use the official OpenAI Codex pets settings docs as the source of truth:
https://developers.openai.com/codex/app/settings#codex-pets

AgentPets upload endpoint:
https://agentpets.app/api/pets

Uploads require the user's active Google sign-in session on AgentPets.

Do this exactly:
1. Inspect the local Codex custom pets folder: ${CODEX_HOME:-$HOME/.codex}/pets
2. Find only directories that contain both pet.json and spritesheet.webp.
3. Fetch https://agentpets.app/api/manifest and exclude pets that are already public there, especially source="official" OpenAI Codex pets.
4. Do not upload built-in OpenAI pets, pets downloaded from AgentPets, or any folder that is probably not user-created.
5. Show me the candidate list before uploading. For each candidate, include folder name, pet.json id, displayName, description, and last modified time if available.
6. Ask me which pet I want to upload.
7. Only after I explicitly approve one candidate, create a ZIP whose root contains exactly pet.json and spritesheet.webp from that pet folder.
8. If I am not signed in on AgentPets, open https://agentpets.app/upload and ask me to sign in with Google before uploading.
9. Upload the ZIP with multipart form data to https://agentpets.app/api/pets only through an authenticated AgentPets session.
10. If AgentPets returns a validation or auth error, show me the exact error and stop. Do not alter the pet files unless I approve a fix.

Privacy rule: do not send my memory, conversation history, project notes, or private local files to AgentPets.