Codex Pets flicker/disappear with AeroSpace window manager on macOS

Open 💬 0 comments Opened Jun 30, 2026 by vp275

What happened?

Codex Pets do not behave well with the AeroSpace tiling window manager on macOS. When a Pet is visible and I switch between apps/workspaces, the Pet flickers and/or disappears because AeroSpace appears to manage the Pet as a normal Codex window rather than as a sticky overlay/status window.

Environment

  • Codex app: 26.623.70822 (CFBundleVersion 4559)
  • macOS: 15.7.3 (24G419)
  • AeroSpace: 0.20.3-Beta 6dde91ba43f62b407b2faf3739b837318266e077
  • Codex bundle id: com.openai.codex

Reproduction steps

  1. Run Codex on macOS with AeroSpace enabled.
  2. Enable/show a Codex Pet from Settings > Appearance > Pets or via /pet / Wake Pet.
  3. Switch between apps/workspaces, for example with Cmd+Tab, while the Pet is visible.
  4. Observe the Pet flicker, disappear, or get stranded on a different AeroSpace workspace.

Expected behavior

The Pet should behave like a true overlay/status window and remain visible/stable while switching apps/workspaces, similar to a sticky always-on-top overlay.

Actual behavior

AeroSpace appears to see the Pet as a normal managed Codex window. This causes flicker/disappearance when switching focus or workspaces.

Debugging details

Using AeroSpace and macOS Accessibility/WindowServer inspection, Codex exposes two normal windows with the same app/title:

26993 | com.openai.codex | Codex | Codex | workspace=Y | layout=floating
26583 | com.openai.codex | Codex | Codex | workspace=C | layout=floating

The two windows observed locally were:

  • Main Codex window: approximately 2304x1271
  • Codex Pet overlay: approximately 356x320

Both report app/title as com.openai.codex / Codex, which makes it hard for AeroSpace rules to distinguish the Pet from the main app window.

I tried an AeroSpace rule to float Codex windows:

[[on-window-detected]]
if.app-id = 'com.openai.codex'
run = ['layout floating']

This helps prevent tiling but does not solve the flicker/disappear behavior because the Pet is still assigned to a normal AeroSpace workspace.

Possible improvement

If feasible, Codex Pets should use a window type/level/role that tiling window managers can identify as an overlay, utility, panel, or non-managed/sticky window. Alternatively, giving the Pet window a distinct title, subrole, or bundle/window identifier would let AeroSpace users write a targeted rule for it without affecting the main Codex app window.

View original on GitHub ↗