OMPet turns Oh My Pi / OMP session states into animated desktop pets, so you can see what your coding agents are doing without staring at every terminal.
Oh My Pi · AI coding agent · Desktop pet · Multi-session monitor · Codex pet compatible · Local only
English | 简体中文
Running, waiting, idle, done — let the pet show you what your agent is doing.
OMPet is a desktop-pet extension for Oh My Pi (OMP). The OMP extension watches session lifecycle events, while a lightweight desktop app turns those states into pet animations, session bubbles, and clickable shortcuts back to the matching terminal.
When several coding-agent sessions are running at once, the annoying part is no longer starting them — it is remembering which one is working, which one needs approval, and which terminal you need to return to.
OMPet makes that state visible at a glance:
- See agent activity as animation — map running, waiting-for-approval, idle, and other OMP states to different pet animations.
- Monitor multiple sessions at once — each active OMP session gets its own compact status bubble.
- Jump back to the right terminal — click a pet or session bubble to focus the matching OMP terminal.
- Reuse Codex-compatible pets directly — existing Codex pet bundles can be loaded without converting their assets or rewriting
pet.json. - Configure animation rows visually — use
/ompetto switch pets and map sprite-sheet rows to OMP states. - Stay local — Canvas rendering, local snapshots, no network requirement, no telemetry.
OMPet keeps multiple OMP sessions visible without turning your desktop into another dashboard.
The pet shown in these screenshots comes from the remilia-codex-pet repository. Its original pet bundle is not included or redistributed in this repository; the screenshots are for demonstration only.
Already using a Codex-compatible pet bundle? OMPet can read it directly.
Put a bundle containing pet.json plus the file referenced by spritesheetPath (usually spritesheet.webp) in either location:
~/.codex/pets/<id>/
~/.omp/ompet/pets/<id>/
Then open /ompet and select it.
OMPet treats ~/.codex/pets/<id>/ as read-only. OMP-specific animation mappings are stored in OMPet's own global configuration and are never written back into the Codex pet bundle.
To run OMPet:
- Windows 10+
- Bun ≥ 1.3
- WebView2 (normally included with supported Windows installations)
To build the desktop app from source:
- Rust toolchain
- Windows build prerequisites required by Tauri 2
# Install root dependencies
bun install
# Build the desktop app on a fresh checkout
cd desktop
bun install
bunx tauri build --no-bundle --ci
cd ..
# Build and deploy the OMP extension
bun scripts/build-extension.ts
# Restart your OMP session so the extension loads at startupscripts/build-extension.ts does not build or download the desktop executable. It only copies desktop/src-tauri/target/release/ompet-desktop.exe when that file already exists.
| Entry | What it does |
|---|---|
/ompet |
Open the OMPet panel, enable/disable the extension, switch pets, and configure animation-row mappings. |
/onmypet |
Compatibility alias for /ompet. |
| Desktop pet | Drag to move, resize from the corner, click the pet to focus the selected session, or click a bubble to focus that exact session. |
OMP session events
↓
OMPet extension
↓
Local session snapshots
↓
Desktop renderer
↓
Pet animation + session bubbles + terminal focus
- The extension listens to OMP lifecycle events.
- It writes one local snapshot for each active session.
- The desktop app reads snapshots and global configuration.
- The UI updates pet animations, session bubbles, and the active-session target.
- Clicking a pet or bubble returns you to the corresponding terminal.
| Path | Purpose |
|---|---|
~/.omp/ompet/config.json |
Global settings, selected pet, and animation-row mappings. |
~/.omp/ompet/run/<encodedSessionId>.json |
Local snapshot for one OMP session. |
~/.omp/agent/extensions/ompet/ |
Deployed extension files and desktop executable. |
| Path | Responsibility |
|---|---|
extension/ |
OMP lifecycle integration, session snapshots, pet discovery, and /ompet UI. |
desktop/ |
Tauri desktop window, pet rendering, session bubbles, and terminal focusing. |
packages/shared/ |
Shared pet contract, session states, configuration types, and snapshot types. |
scripts/build-extension.ts |
Builds and deploys the extension and any locally available pet bundles. |
Sample pet assets are not included in Git because their licenses are separate from OMPet. The build script can deploy local remilia/ and elaina-2/ bundles when those directories already exist, but the original external assets are not part of this repository.
Bring your own compatible pet bundle, or use one you already have locally.
MIT © LuaNMaT

