# Hatch

> Use when the user asks to hatch, create, adopt, or register a pets-driven pet for the current working directory from Codex.

- Skill: `young1the/hatch` (Agent Skill)
- Install (CLI): `npx skillmds@latest add young1the/hatch`
- Raw SKILL.md: https://api.skillmd.com/api/skills/young1the/hatch/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: young1the (https://skillmd.com/u/young1the)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/young1the/hatch

---


# Hatch pets-driven

This Codex skill shares the Claude command workflow in
`../../commands/hatch.md`. Read that command file first, then follow the same
guided workflow one prompt at a time.

Every pets-driven operation goes through the `pdd` CLI (on the user's PATH). It
reads and writes the shared state file directly and safely — a cross-process
lock keeps it from racing the desktop app — so it works whether or not the app
is running. Never hand-edit the state file or the pet asset folders yourself; go
through `pdd`. If `pdd` is not installed, say so and stop.

The command shapes are:

```bash
pdd list                                       # existing pets + their cwd
pdd presets                                    # personality ids hatch accepts
pdd hatch                                      # name from the folder, random asset + personality
pdd hatch "<name>"                             # random asset + personality, current folder
pdd hatch "<name>" --asset <id> --personality <id> --cwd "<folder>"
pdd hatch "<name>" --no-cwd                    # adopt with no folder bound; bind it later
pdd bind "<petId>"                             # bind a pet to this folder (--cwd for another)
pdd unbind "<petId>"                           # release it (cwd -> null)
pdd update --name "<name>"                     # edit this folder's pet in place
pdd update "<petId>" --asset <id> --personality <id> --note "<text>" --scale <0.5-2>
pdd note                                       # print this folder's pet's note
pdd note "<text>"                              # write it (--clear erases, - reads stdin)
```

Nothing is required to hatch: the name defaults to the bound folder's own name,
the asset (look) and personality to a random pick, and the folder to the current
directory. Pass a name, `--asset`, `--personality`, or `--cwd` to choose any of
them. `--no-cwd` hatches a pet with no folder bound at all (an unnamed one is
named after its asset); it contradicts `--cwd`, so never pass both.

A pet's `cwd` may be `null` — that pet exists with no folder bound and receives
no agent events. Offer to `bind` such a pet rather than hatching a new one when
the user just wants a pet on this folder.

