Feature request: Add Stay and Draggable modes for Codex pets
Open 💬 2 comments Opened Jul 11, 2026 by Crystal32378
Summary
Codex Desktop pets currently evade the pointer when the user approaches them. This makes it difficult to click, grab, or reposition the pet, and turns a companion into something the user has to chase.
Please add two explicit interaction modes:
- Stay — the pet remains in place when the pointer approaches. This should be the default.
- Draggable — the pet can be clicked and dragged directly without first triggering flee or movement behavior.
Why these two modes
A pet is primarily a companion and status indicator. It should remain reachable and should not block basic interaction.
The current flee-on-hover behavior causes several problems:
- the pet disappears or moves before the user can grab it
- repositioning becomes frustrating and unpredictable
- users may interpret the behavior as a rendering bug
- directional animations can be triggered when the user only intended to drag the pet
- the interaction is especially confusing for custom pets with incomplete directional rows
Even with a complete spritesheet, mandatory evasion is still undesirable for users who want a calm desktop companion.
Expected behavior
Stay
- pointer approach does not trigger movement
- pet continues its current state animation
- clicking or hovering does not make it flee
- suitable as the default interaction mode
Draggable
- pointer down immediately captures the pet
- drag begins without triggering
move_left,move_right,running-left, orrunning-right - releasing the pointer places the pet at the new position
- no evasive animation occurs before or during drag
Suggested setting
A per-user or per-pet setting such as:
Pet interaction
- Stay (default)
- Draggable
These two modes are enough for users who want the pet to behave as a stable companion rather than a mini-game.
A companion should be reachable. The user should not have to chase it in order to move it.
2 Comments
Additional runtime evidence from a custom pet:
running-leftis now populated and displays correctly.running-rightis populated and displays correctly.This rules out missing directional rows as the explanation for the disappearance. It may be a separate grab/drag state selecting another animation row, or App-level overlay behavior during pointer capture.
A full spritesheet test will help distinguish those cases, but the interaction problem remains: the user cannot reliably grab and reposition the pet. This supports the need for a true Draggable mode where pointer-down captures the pet immediately without switching animation state first.
Additional runtime evidence from a custom pet on macOS:
running-leftandrunning-rightrows are both present and render correctly.This strongly suggests the disappearance is not caused by missing directional frames or stale app state. It appears to be App-level pointer-down / drag behavior in the desktop pet overlay.
Requested behavior remains:
Stayas the defaultDraggableinteraction without hiding or fleeingA visible companion should remain visible when the user grabs it.