Local first, desktop companion platform with animated pets, plugin SDK and coding-agent integrations.
$ npx -y skills add OpenPetsHQ/openpets --agent claude-code
Repo: OpenPetsHQ/openpets
What's inside
Download the latest OpenPets desktop release and launch it. A pet appears immediately; no agent setup required.
If OpenPets makes your coding setup or desktop workspace a little more fun, please give the repo a star.
You do not need to be a developer or connect any AI agents to enjoy OpenPets. The desktop app is fully functional out of the box with the official plugin lineup.
Download the package for your operating system from OpenPets Releases, or use the community-maintained AUR package on Arch-based Linux:
OpenPets-*-mac-arm64.dmgOpenPets-*-mac-x64.dmgOpenPets-*-win-x64-setup.exeOpenPets-*-linux-x86_64.AppImageopenpets-bin AUR package by @pinoybear with paru -S openpets-bin (or yay -S openpets-bin).Note: Windows release installers are signed. macOS builds may still be unsigned and can trigger a security warning; if macOS blocks execution, remove the quarantine flag via terminal:
xattr -dr com.apple.quarantine /Applications/OpenPets.app
Browse installed pets, preview their animation frames, and configure which pet monitors each workspace or agent window from the built-in Pet Gallery.
OpenPets v3 ships with a modular Official Plugin Catalog. Enable or configure plugins via the desktop Control Center to add focus timers, reminders, and mini interactive games.
The OpenPets plugin system offers a secure, developer-friendly SDK (@open-pets/plugin-sdk) for creating custom companion behavior.
voice:listen, clipboard, and pet:speak:dynamic) require explicit consent toggles.ctx)Plugins hook into the desktop environment via the ctx object, exposing:
ctx.pets / ctx.pet: Manage default and spawned pet instances: spawn, move, animate, and react.ctx.ui: Alerts, transient/pinned bubbles, custom menus, panels, and status HUDs. Pinned mini HUD bubbles support compact 2x2 grid layouts with progress bars, such as Virtual Pet stats.ctx.audio: Trigger host-managed alert tones or user-imported custom audio.ctx.schedule: Set precise timer hooks (once, every, daily, cron, at).ctx.ai / ctx.secrets: Hook into the user's host-configured AI provider (Anthropic, OpenAI, Ollama) without exposing API keys to the plugin source.ctx.storage: Simple JSON key-value store with change subscriptions.events, assets, bus, net (with streaming support), notify, voice (TTS & push-to-talk STT), auth (PKCE browser flow), files (secure picked OS dialogs), system, commands, status, and log.Create, validate, and test plugins using the official CLI.
Create a template from any of the official layouts (blank, reminder, ambient, ai-chat, tamagotchi, calendar):
npx @open-pets/cli plugin new "My Plugin" --template tamagotchi
Verify manifest layout, permissions, and configuration schemas before packing:
npx @open-pets/cli plugin validate ./my-plugin
Write deterministic tests without launching the desktop app. Using @open-pets/plugin-sdk/testing's createTestHarness, you can mock the host, advance clocks, trigger actions, and verify reactions:
import { createTestHarness } from "@open-pets/plugin-sdk/testing";
import { register } from "./index.js";
const h = createTestHarness(register, { permissions: ["pet:speak", "schedule"] });
await h.start();
h.expectScheduled("decay");
await h.clock.advance("30m");
h.expectSpoke(/need attention/i);
Run plugin tests from your plugin project:
npm test
If you want your development agent to drive your desktop companion, OpenPets provides an optional local MCP (Model Context Protocol) integration layer.
When you configure an agent, OpenPets exposes standard MCP tools. The agent can trigger animations, change status, and display text bubbles locally:
~/.claude/CLAUDE.md, and hooks in ~/.claude/settings.json.@open-pets/opencode automatic hook plugin.~/.config/devin/mcp_config.json plus lifecycle hooks for both (openpets configure --agent devin).Check whether the Claude hook and project Cursor MCP integrations are installed, need an update, or are broken, and whether the desktop app is reachable:
npx @open-pets/cli doctor
Pass --cwd <path> to inspect a different project's .cursor/mcp.json, or --json for machine-readable output. The command exits non-zero only when an integration is broken, so it is safe to run before reporting a bug.
To run OpenPets as an MCP tool, add the server to your agent's configuration:
{
"mcpServers": {
"openpets": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@open-pets/mcp@latest"]
}
}
}
Tip: To target a specific pet, pass the --pet <petId> argument.
openpets_status: Retrieve target pet ID and check runtime connectivity.openpets_react: Set pet reaction animations (e.g., thinking, editing, testing, success, error).openpets_say: Display a short speech bubble.For contributing to the OpenPets codebase, testing changes, or building the desktop packages locally.
Install project workspace dependencies:
pnpm install
Launch the Electron application in local developer mode:
pnpm dev:desktop
Launch with live official plugins loaded and monitored:
pnpm dev:desktop:plugins
Run workspace typechecking, code-conformance validations, and tests:
pnpm check
pnpm typecheck
pnpm test
Package the desktop application:
# Build & package into target OS directory
pnpm package:desktop:dir
# Build & package into final installer / setup archives
pnpm package:desktop
FAQ
openpets is a Claude Code plugin with 1 hand-picked skill for mobile work, indexed on Flowy. Install it with the command on its page. It includes openpets. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it