Connecting agents
How to connect Claude Code, Codex, Cursor and your own programs so the pet shows their work.
The pet shows what an agent is doing: working, waiting for you, done or failed. Connections are free for everyone, including with the free pet.
How to connect
- Open the app settings, the “Connections” tab.
- Choose an agent. The app shows the agent's settings file and the exact snippet it will add.
- Click “Install”. Before changing the file, the app saves a copy next to it (
<file>.pets-backup-<time>) and adds only its own entries. Everything else stays as it was. - To check, click “Test”: the pet plays a demo. Such events are marked “Demo”.
The “Working” status appears only after a real event from the agent. Removing a connection removes only the app's entries — your edits and other entries stay.
The pet never approves anything or answers the agent for you. It only shows the state and does not hold up the agent.
Claude Code
Entries are added to ~/.claude/settings.json. The pet shows the start of work, tool use, “needs input” (a permission request or a question), “done” and errors.
Known limitations:
- when you approve a permission request, there is no separate signal for it: “needs input” stays until the next event, for example the end of a long command;
- if you interrupt a reply with Esc, the end signal may not come: the pet returns to rest in about a minute.
Codex
Entries are added to ~/.codex/hooks.json (or to the folder in CODEX_HOME, if that variable is set).
After installing, open Codex and run the /hooks command to trust the new entries. Until you do, “Connections” shows “Waiting for confirmation in Codex”. The app never confirms trust for you.
Cursor
Entries are added to ~/.cursor/hooks.json. The pet shows work, “done”, errors and cancellation.
Cursor has no “needs input” signal, so the pet does not show that state for Cursor. We do not fake it with a timer or other events.
Any program
For your own scripts and programs there is a command-line helper, pets-bridge. Its path and ready-to-copy examples are in “Connections”, under “Other programs”. There are two ways:
pets-bridge runstarts your command, and the pet shows work while it runs: “done” on success and an error if the command fails;pets-bridge emitsends a single event — for example “working” or “needs input” — from anywhere in your script.
Example (replace pets-bridge with the path from the settings):
pets-bridge run --label "Build" -- npm run build
The helper passes only the event type and short labels to the pet. The command itself and its output are not sent anywhere.
Not supported yet
Cursor CLI, WSL, SSH and cloud agents.
If something does not work
- An “Error” status has a code — tell it to support.
- The app settings, “Account” tab, have a “Copy diagnostics” button. Diagnostics contain no email, tokens, paths or project names.