claude-pets
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Warn
- process.env — Environment variable access in src/hook.ts
- process.env — Environment variable access in src/install.ts
- process.env — Environment variable access in src/map-claude-event.test.ts
Permissions Pass
- Permissions — No dangerous permissions requested
This tool connects Claude Code to the OpenPets desktop application. It uses hooks to send activity status updates, making a local desktop pet react while Claude processes tasks.
Security Assessment
Overall risk: Low. The tool does not request any dangerous permissions and lacks hardcoded secrets. The environment variable access flagged in the audit is standard and benign; it primarily checks for standard system paths (like the user's home directory) to locate the Claude settings file. It does not scrape or exfiltrate sensitive project data. The only notable local action is modifying the global `~/.claude/settings.json` file to register its hooks, though the installer safely creates a backup before making changes. It runs locally and does not appear to make external network requests.
Quality Assessment
The project is relatively new and has low visibility with only 6 GitHub stars, meaning it has not been extensively vetted by a large community. However, it is actively maintained, with repository updates pushed as recently as today. The code is open-source under the standard MIT license, providing clear usage rights.
Verdict
Safe to use.
Claude Code integration for OpenPets: automatic desktop pet status updates with one-command setup.
Claude Pets
Make Claude Code feel alive with OpenPets.
Tiny Claude Code hooks that update your desktop pet while Claude works.
What is Claude Pets?
Claude Pets connects Claude Code activity to OpenPets, a local desktop pet.
Requirements
- Bun
>= 1.3.0 - Claude Code
- OpenPets desktop app
Quick start
1. Install OpenPets desktop
Download the latest OpenPets app:
https://github.com/alvinunreal/openpets/releases/latest
Pick the file for your OS:
- macOS Apple Silicon:
OpenPets-*-arm64.dmgorOpenPets-*-arm64.zip - Windows:
OpenPets-Setup-*-x64.exe - Linux:
OpenPets-*-x86_64.AppImageorOpenPets-*-amd64.deb
Open the app once. You should see the pet on your desktop and an OpenPets tray/menu-bar icon.
Preview builds are unsigned, so macOS or Windows may show a warning on first launch.
If macOS says the app is damaged or should be moved to Trash, remove the quarantine flag and open it again:
xattr -dr com.apple.quarantine /Applications/OpenPets.app
open /Applications/OpenPets.app
2. Add OpenPets to Claude Code
This gives Claude Code tools for talking to and controlling the pet:
claude mcp add -s user openpets -- bunx @open-pets/mcp
Restart Claude Code, then check:
claude mcp list
You should see openpets.
3. Enable automatic Claude reactions
Install Claude Pets hooks globally:
bunx @open-pets/claude-pets install
This updates your user-wide Claude Code settings:
~/.claude/settings.json
The installer preserves unrelated settings and creates a backup before writing.
Restart Claude Code after installing.
Test it
With OpenPets running:
bunx @open-pets/claude-pets test-event thinking
Your pet should animate briefly, then return to idle.
You can also try:
bunx @open-pets/claude-pets test-event testing
bunx @open-pets/claude-pets test-event success
Uninstall
Remove the global hooks:
bunx @open-pets/claude-pets uninstall
This only removes Claude Pets managed hook commands from ~/.claude/settings.json.
Troubleshooting
OpenPets is not reacting
- Start the OpenPets desktop app.
- Run:
bunx @open-pets/claude-pets test-event thinking
- If nothing happens, restart OpenPets and try again.
Hooks are not firing
- Make sure you installed hooks:
bunx @open-pets/claude-pets install
- Restart Claude Code.
- In Claude Code, run
/hooksand confirm the Claude Pets command appears under user settings. - Check that
~/.claude/settings.jsoncontains@open-pets/claude-pets.
Bun is missing
Install Bun first:
Restore settings from backup
Every write creates a backup next to the settings file:
~/.claude/settings.json.bak-<timestamp>
Quit Claude Code, copy the backup over ~/.claude/settings.json, then restart Claude Code.
Advanced
Project-only install
Global install is recommended. If you only want Claude Pets hooks in one project, run this from that project root:
bunx @open-pets/claude-pets install --project
This writes project-local settings instead:
.claude/settings.local.json
Uninstall project-local hooks with:
bunx @open-pets/claude-pets uninstall --project
Preview settings without writing
bunx @open-pets/claude-pets install --dry-run
Print the hook settings snippet
bunx @open-pets/claude-pets print
Production hooks use this command:
bunx --bun @open-pets/[email protected] hook
Commands
claude-pets install [--dry-run] [--project] [--local-command]
claude-pets uninstall [--dry-run] [--project]
claude-pets print [--local-command]
claude-pets hook
claude-pets test-event <state>
Local development
git clone https://github.com/alvinunreal/claude-pets.git
cd claude-pets
bun install
bun test
bun run typecheck
bun run build
Install hooks pointing at your local checkout:
bun src/cli.ts install --local-command
Recommended setup
Use both OpenPets integrations for the best experience:
- OpenPets MCP - lets Claude intentionally speak/control the pet.
- Claude Pets hooks - automatic background state changes while Claude works.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found