Feature Request: Selective action label display in GIF recordings

Resolved 💬 2 comments Opened Jan 18, 2026 by LennyPaz Closed Feb 27, 2026

Feature Request

Add the ability to selectively show/hide action labels for specific action types in GIF recordings.

Current Behavior

The showActionLabels option in gif_creator export is all-or-nothing. When enabled, ALL actions are labeled in the GIF (clicks, scrolls, hovers, waits, drags, etc.).

Desired Behavior

Allow users to specify which action types should display labels. For example:

{
  actionLabels: {
    click: true,      // Show labels for clicks
    scroll: true,     // Show labels for scrolls
    type: true,       // Show labels for typing
    wait: false,      // Hide labels for wait actions
    hover: false,     // Hide labels for hover actions (used for workarounds)
    drag: true        // Show labels for drags
  }
}

Or alternatively, a simpler exclusion list:

{
  showActionLabels: true,
  hideLabelsFor: ['wait', 'hover']
}

Use Case

When creating polished GIF demos:

  1. Wait actions often don't add meaningful information for viewers - they just show "waiting" which can be distracting
  2. Hover actions are sometimes used as workarounds (e.g., to prevent frame deduplication) and shouldn't be displayed as they're implementation details, not meaningful user actions
  3. Users want to show the purposeful actions (clicks, typing, scrolling) while hiding technical actions

Example Scenario

Recording a Jupyter notebook demo requires hover actions between screenshots to prevent frame deduplication (see issue #18903). These hovers are purely technical and shouldn't appear as action labels in the final GIF, as they confuse viewers about what the demo is actually showing.

Proposed Solution

Either:

  1. A granular actionLabels object with per-action-type boolean flags
  2. A hideLabelsFor array to exclude specific action types
  3. A callback/filter function for maximum flexibility

Any of these would significantly improve GIF quality for polished demos.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗