YIFU HE / INDEX00—1 / IN USE

IN USE / 2026 / Interactive desktop companion

Cursor PetPangdun

A desktop companion that turns Codex events, approvals, and idle moments into visible character states.

PowerShellWPFCodex HooksInteraction Design
Archive-style character poster showing Pangdun reacting to Codex events, approvals, petting, and play across seven companion states.
ANNOTATION TRANSCRIPT
  • Reacts to Codex events.
  • Waits with you for approval.
  • Click to pet — gently.
  • Drag the slipper to play.
  • A companion that lives on desktop.
ROLE

Concept, interaction system, hook integration, asset iteration, and implementation.

STATUS

IN USE

OUTPUT

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.

IDLE

Choose a Codex event.

CLICK PANGDUN / DRAG THE SLIPPER

EVENTSTATEREACTIONPLAY

  1. 01

    Codex emits a lifecycle, tool, stop, or permission event.

  2. 02

    A small hook writes a timestamped, validated state locally.

  3. 03

    The WPF pet selects a matching animation and expires transient states safely.

  4. 04

    Local interactions can temporarily override the calm idle state.

F—1

Eleven visible states spanning idle, work, approval, completion, and error.

F—2

A conservative destructive-command guard that leaves normal approvals in Codex.

F—3

Petting, annoyance, sleep/wake, walking, and slipper-toy sequences.

F—4

A dependency-free Windows install with config backup and hook merging.

BEFORE → BUILT → AFTER

BEFORE

Agent state lived in terminal output and approval UI.

BUILT

A local event → state → animation system with safe fallbacks.

AFTER

Work, waiting, completion, and errors are readable at a glance — with a companion worth keeping open.

LEARNING

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.

NEXT

Refine state transitions, package a clearer installer, and explore a small theme system without increasing runtime complexity.

SEE THE BUILD

[ GITHUB ↗ ]