AllPet is an open-source (MIT licensed) cross-platform desktop pet application whose goal is to bring the progress and completion notifications of multiple AI coding tools together into a single desktop view. It reads the session logs that each platform has already saved locally, and does not require accounts, passwords, or additional API keys.
[Main Capabilities]
- Nine-platform monitoring: Supports Codex, Claude Code / Desktop, DeepSeek Harness (DSH), Grok, Cursor, WorkBuddy, Qoder, pi, and Z Code. Cursor and Qoder provide optional observer hooks to obtain complete lifecycle events.
- Real-time status animation: The pet switches animations based on task progress among idle, running, waiting, done, and failed.
- Task bubbles: Divided into three levels (summary → platform → session), with each platform using its own brand color. The title displays a stable session name, and the subtitle displays the current action and progress.
- Safe task wake-up: Verified Codex Desktop sessions use deep-link handoff; unsupported CLI, Claude, and Grok targets fail-closed when lacking safe precise targeting capability, avoiding duplicate task launches; DSH task links carry a precise session ID.
- Cross-platform CLI: status / watch can be built and run on macOS, Linux, and Windows; the full self-test that depends on AppKit currently runs only on macOS.
- Cross-platform desktop shell: The Electron shell (desktop/) displays the pet and graphical pet manager on Windows, Linux, and macOS; local multi-format conversion is currently available only on macOS, while installation, switching, and deletion of standard pet packages are available across platforms.
- Pet customization: Supports installing standard packages from GitHub, and on macOS you can also import and normalize local Codex / OpenPets / cc-haha / clawd-on-desk / LingChat / single-image pets.
- Pet creation toolkit: Pet Generation Standard Package / provides a guided kit for making pets from scratch, including character design guidelines, text-to-image prompt templates for each state, and assembling, validating, and packaging the standard 8×11 sprite sheet into an importable pet.jsPython script for on + spritesheet.webp.
[Usage] Installation: With Node.js 24.18+ (including npm 11.16+/npx) and Git already installed, the same command can be run on macOS, Windows PowerShell/CMD, or Linux. The command detects the operating system and CPU, downloads the latest stable GitHub Release, verifies the SHA-256, and installs it; running it again updates it. Add --dry-run to only preview the version and target location without installing. You can also download the installer directly from GitHub Releases: for macOS use AllPet-<version>-arm64.dmg, for Windows use AllPet-Setup-<version>.exe, and for Linux use AllPet-<version>.AppImage or allpet-desktop_<version>_amd64.deb. The installer has the Swift core, runtime, and 5 built-in pets bundled in, so there is no need to install Node.js or Swift.
Changing pets: Method one, click 🐾 in the macOS menu bar; each installed pet shows a thumbnail, and clicking instantly switches. Method two, choose 🐾 → Pet → Install pet from GitHub… and enter a preset name or a compatible repository URL; you can also use the various CLI commands to list, install, and switch. Method three, choose 🐾 → Pet → Import local pet… or run the import command. GitHub resources are only cloned locally to ~/.config/all-pet/pet-sources/ and will not be packaged into the AllPet repository.
Bubble interaction: Click the collapsed summary to view platforms; after selecting one of the nine platforms, multiple tasks open a session list, while a single task directly attempts navigation. Clicking a completed/failed task immediately confirms and persists that decision, then attempts navigation; running/thinking/waiting tasks remain visible. The × button closes the notification. Unconfirmed terminal tasks expire after 24 hours, and new task activity can appear again.
Returning to tasks: Codex Desktop uses task deep links, but accepting a link does not prove the target page is visible; Claude Desktop activates the existing app and, when needed, selects in the sidebara task; DSH tries the original session; terminal targets reuse an existing tab when supported; native macOS CLI resume requires confirmation. Cursor, WorkBuddy, Qoder, and Z Code currently open the app for manual session selection; pi never automatically starts a duplicate task. Closing the bubble only means the notification has been confirmed, not that navigation succeeded.
Status sources: AllPet reads the locally stored session logs of each platform; explicit task events in the logs take priority, and when there are no explicit events it falls back to the most recent write time to infer running / waiting / idle. Scanning, caching, and zstd decompression all run in the background to avoid stuttering the pet animation.
Configuration file: ~/.config/all-pet/config.json (see config.example.json), containing scale (pet size), anchor (bottom-right, bottom-left, top-right, top-left), bundlePath (current pet directory), hiddenBubblePlatforms (a list of top-level hidden provider keys, such as ["grok", "pi"]).
Building from source: The native GUI requires macOS 14+ and Xcode Command Line Tools; the status / watch / help / pet list CLI can be built and run on Linux (Swift 5.10+) and Windows. It builds automatically on first launch, and afterward you can run ./allpet directly.
[Platform differences and limitations]
- Platform maturity: macOS has the best adaptation and test coverage, including the native AppKit GUI and richer task-focusing behavior; Windows and Linux installers are supported, but use an Electron shell, so there are more operating system/desktop environment differences.
- Transparent windows: Natively supported on Windows / macOS; Linux requires a desktop compositor (Wayland or X11 with a compositor), and without a compositor the pet background appears black.
- Tray icon: Natively supported on Windows / macOS; Linux GNOME has no system tray by default, so the AppIndicator extension must be installed (KDE / XFCE, etc. include it).
- Always-on-top across all spaces: Only macOS / Linux supports all workspaces visible; Windows has no such concept (automatically skipped).
- Local import: AppKit/ImageIO multi-format conversion is currently available only on macOS; the Windows/Linux entry points are explicitly disabled, but standard pet packages can still be installed.
- Native GUI: only macOS provides an AppKit GUI; Windows/Linux use an Electron shell + Swift core sidecar; native tray custom views, Spaces, and precise terminal session focus degrade by platform.
- Not yet packaged: Intel Mac (x86_64), Windows on ARM, and Linux ARM (aarch64) currently have no ready-made installers and must be built from source or contributed packaging.
- No background auto-updater is needed; rerun the one-click install command to check for updates, or download a new version from GitHub Releases; Linux DEB users should continue using their package installation channel.
- The macOS installer is ad-hoc signed, with no Developer ID signature or Apple notarization; Gatekeeper may block the first launch, and you must follow the macOS Privacy & Security prompts.
[Make Your Own Pet] Pet Generation Standard Package/ is a self-contained kit for creating a pet from scratch (currently documented in Chinese). The process is: design the character → use text-to-image prompt templates to generate 9 states + 16 orientations → use a Python script (requires Python 3.9+ and Pillow) to assemble, validate, and package a standard 1536×2288 (8×11) sprite sheet, finally obtaining a pet.json + spritesheet.webp folder that can be imported with ./allpet pet import.