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:
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.