Skip to content

Feature request: configurable Codex pet animation duration #30268

Open

Description

@3ooowe

Feature request

Please consider adding configurable animation behavior for Codex pets, especially for the built-in pet states shown in the floating overlay.

Motivation

The built-in pet animations are delightful and also useful as lightweight status indicators. For example, the Seedy pet's running/working-at-laptop animation clearly communicates that Codex is actively working. Currently, the non-idle animation appears briefly and then returns to the idle loop, even when Codex is still running.

It would be helpful if users could configure how long non-idle pet animations remain visible, or optionally keep the running/working animation active while Codex is still working.

Possible behavior

  • Keep the running/working animation visible for as long as Codex is actively running.
  • Let users adjust how long non-idle pet animations play before returning to idle.
  • Optionally let users choose a preferred idle or working animation for built-in pets.
  • Respect reduced-motion settings, so users who prefer less animation can keep the current or a simplified behavior.

Why this helps

This would make the floating pet overlay more expressive and useful. Users could glance at the pet and immediately understand that Codex is still working, without reopening the main window or checking the thread status.

Activity

  1. github-actions commented on Jun 26, 2026

    @github-actions
    Contributor
  2. Nicolas0315 commented on Jun 26, 2026

    @Nicolas0315

    Implemented a focused patch for this in my fork:

    What changed:

    • Added [tui] pet_status_animation_duration_seconds to let users keep non-idle pet status animations playing longer before returning to idle.
    • The default/omitted value, and 0, preserve current built-in timing.
    • animations = false still uses the stable first frame and schedules no follow-up animation frames.
    • Regenerated codex-rs/core/config.schema.json.

    Local verification:

    • just fmt
    • just write-config-schema
    • git diff --check
    • cargo test --manifest-path codex-rs\Cargo.toml -p codex-tui status_animation -- --nocapture
    • cargo test --manifest-path codex-rs\Cargo.toml -p codex-tui reduced_motion_uses_stable_first_frame_and_schedules_no_follow_up -- --nocapture
    • cargo check --manifest-path codex-rs\Cargo.toml -p codex-config
    • cargo check --manifest-path codex-rs\Cargo.toml -p codex-core -p codex-tui

    SSH validation:

    • cyberagent-mac-m5max: checked out exact commit, git diff --check OK, focused TUI tests OK, cargo check -p codex-core -p codex-tui OK.
    • nicolas2025: checked out exact commit, git diff --check OK, focused TUI tests OK, cargo check -p codex-core -p codex-tui OK, no lingering cargo/rustc/link processes.
    • nicolas-macbook-pro: checked out exact commit, git diff --check OK; Rust toolchain unavailable on this host, so diff-only.
    • rtx5060ti: checked out exact commit, git diff --check OK; cargo is still blocked by the host's existing linker mismatch (link: extra operand ..., exit 101), no lingering cargo/rustc/link processes.

    One boundary: cargo test -p codex-core pet_status_animation_duration is currently blocked before reaching these tests by an unrelated existing compile error in core/src/session/tests.rs where a CreateThreadParams literal is missing history_mode.

    Merge-tree against current origin/main (1168254bd) is clean; I left the validated commit unre-based.

  3. 3ooowe commented on Jun 27, 2026

    @3ooowe
    Author
  4. Somnusochi commented on Jun 29, 2026

    @Somnusochi

    I can reproduce the underlying behavior that motivated this request as well.

    Environment:

    • Codex Desktop: 26.623.61825
    • macOS, Apple Silicon

    The non-idle animation is useful as a status indicator, but currently both built-in and custom pets briefly enter running and then fall back to idle while Codex is still working. Configurable duration would help, but I think the baseline behavior should be that running, waiting, review, and failed remain visible while the corresponding Codex state is active.

    Related bug reports: #28995 and #23272.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appenhancementNew feature or requestpets

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions