IN USE / 2026 / Interactive desktop companion
Cursor PetPangdun
A desktop companion that turns Codex events, approvals, and idle moments into visible character states.

- Reacts to Codex events.
- Waits with you for approval.
- Click to pet — gently.
- Drag the slipper to play.
- A companion that lives on desktop.
Concept, interaction system, hook integration, asset iteration, and implementation.
IN USE
OPEN SOURCE / GITHUB
MAKE SYSTEM STATE FEEL HUMAN.
PROBLEM
Agent work often disappears behind terminals and status text. I wanted a glanceable signal for what Codex was doing, without adding another dashboard or taking over its approval model.
SOLUTION
Pangdun reads lifecycle and tool hooks, maps them to a conservative state machine, and responds through character animation. It stays local, never auto-approves commands, and adds optional play through petting, sleep, walking, and a draggable slipper.
LIVE PROTOTYPE / WEB EDITION
TRY PANGDUN
Loaded only on this case page.
Choose a Codex event.
CLICK PANGDUN / DRAG THE SLIPPER
EVENTSTATEREACTIONPLAY
- 01
Codex emits a lifecycle, tool, stop, or permission event.
- 02
A small hook writes a timestamped, validated state locally.
- 03
The WPF pet selects a matching animation and expires transient states safely.
- 04
Local interactions can temporarily override the calm idle state.
Eleven visible states spanning idle, work, approval, completion, and error.
A conservative destructive-command guard that leaves normal approvals in Codex.
Petting, annoyance, sleep/wake, walking, and slipper-toy sequences.
A dependency-free Windows install with config backup and hook merging.
BEFORE → BUILT → AFTER
Agent state lived in terminal output and approval UI.
A local event → state → animation system with safe fallbacks.
Work, waiting, completion, and errors are readable at a glance — with a companion worth keeping open.
The useful part was not adding more animation; it was deciding which events deserved a visible state, how long that state should live, and when interaction should yield to system truth.
Refine state transitions, package a clearer installer, and explore a small theme system without increasing runtime complexity.
SEE THE BUILD
[ GITHUB ↗ ]