macOS 14+ · $2 one-time
A desktop pet you can program.
Petty is a floating, animated macOS companion with a JavaScript plugin API. Teach it new tricks in a few lines of code — build reactions, meeting reminders, git watchers, anything you can script.
Plugin system
Everything Petty does is a plugin.
Pomodoro, calendar reminders, git watching, Claude Code hook reactions — every built-in behavior is JavaScript running on the same petty.* API you'd use to write your own. A sandboxed runtime, permission-gated system access, and an event bus. That's it.
manifest.json
{
"id": "builtin-claude-code",
"name": "Claude Code",
"version": "1.0.0",
"script": "main.js",
"capabilities": ["reactions"],
"permissions": ["system"]
}main.js
petty.events.on("hook:task-complete", () => {
petty.pet.animate("yell");
petty.pet.showBubble("Task done!", 3);
petty.pet.speak("Your task is done!");
});
petty.events.on("hook:needs-attention", () => {
petty.pet.animate("excited");
petty.pet.showBubble("Needs attention!", 3);
});Permission-gated
Every plugin declares what it needs in the manifest — calendar, clipboard, shell access, network. The runtime enforces it. A plugin that doesn't declare calendar can't touch your calendar.
Community marketplace
Download plugin zips from the marketplace and drop them into Petty's plugin folder. Nothing auto-runs, nothing installs silently. You see what you're getting before you enable it.
Before you install anything
Plugins are JavaScript that runs on your Mac. Only install from authors you trust, and read the manifest before enabling — treat it like any other code you're about to run.Bundled plugins
Nine plugins in the box.
Every bundled behavior is a plugin you could have written yourself. Here's what comes installed. Toggle them individually from Settings.
Pomodoro
Focus/break cycle timer. Petty sleeps through focus, wakes you up on break.
Calendar
Reads macOS Calendar via EventKit. 15/5/0 minute reminders and a morning briefing.
Claude Code hooks
Wire petty:// URL events into your Claude Code hooks — task complete, needs attention, session start/end.
Git watcher
Polls your repos for dirty files, unpushed commits, and conflicts. Nags gently.
Weather
Temperature and condition quips via wttr.in, with context-aware commentary.
Personality
Time-of-day quips and tunable chattiness. The pet has opinions.
Clipboard reactions
Context-aware comments when you copy URLs, code snippets, or plain text.
App awareness
Observes the frontmost app and drops in app-specific commentary.
Idle timer
Notices when you've been away too long and gets progressively snarkier about it.
The character
Still a pet, first.
None of the plugin stuff matters if the pet isn't charming. So Petty gets the pet part right too.
Animated blob character
An amber procedural character rendered in SpriteKit with a full animation set — idle breathing, random walking, excited hops, yell, sleep, think.
Skin system
Swap the default blob for custom sprite-sheet skins. Drop a skin pack folder into ~/Library/Application Support/Petty/Skins and pick it in Settings.
Speech bubbles + TTS
Floating speech bubbles with custom Bezier tails, plus optional text-to-speech via AVSpeechSynthesizer.
File drop actions
Drag a file onto Petty for type-aware actions: image dimensions, PDF page count, LOC count, or compress to zip.
Quick notes HUD
A floating notepad one right-click away. Auto-saves to disk, stays on top when you need it.
Lives above everything
Borderless NSPanel at maximum window level. Joins every Space, click-through transparency, draggable anywhere.
Pricing
macOS 14 Sonoma or later
Download Petty- · Pay once, keep forever
- · Free updates
- · Nine bundled plugins
- · Write your own in JavaScript