name: hd-captions-mac description: > macOS platform companion to hd-captions — the Apple-specific note on HD's on-screen captions. The two caption surfaces, the SECONDS-vs-MILLISECONDS unit trap, ids, positions, and the adom-cli / HTTP commands all live in hd-captions (adom/hd-bootstrap) and are platform-neutral; THIS skill carries only the one macOS difference: the full-DESKTOP overlay (adom-desktop desktop_caption) is a Win32 click-through window and is NOT implemented on macOS yet (the non-Windows build is a stub). The workspace caption (adom-cli hydrogen caption) works the same on macOS. Mirror of hd-captions-windows. Trigger words — caption macos, desktop_caption macos, desktop overlay mac, screen overlay mac, caption not showing mac, click-through caption mac.

hd-captions (macOS) — only the desktop overlay differs

This is the macOS half of hd-captions, and it is deliberately short: almost nothing about captions is macOS-specific. The two surfaces, the units (workspace = SECONDS, desktop overlay = MILLISECONDS), positions/ids/sizes, the adom-cli hydrogen caption command and the raw-HTTP .../current/caption fallback all live in the generic hd-captions skill and behave identically here — read that first. There is exactly one macOS-distinct fact, below.

(1) Workspace caption — fully platform-neutral on macOS

adom-cli hydrogen caption show/hide renders inside the HD workspace webview via the workspace-events server → SSE → the frontend captionStore. That path has no host-native code, so it works on macOS exactly as documented in hd-captions (same SECONDS unit, 30s default / 300s cap, newest-wins, the HTTP fallback). This is your default on a Mac.

(2) ⚠️ Desktop overlay — NOT implemented on macOS

adom-desktop desktop_caption (the always-on-top, click-through, whole-screen overlay) is Windows-only. The implementation in src-tauri/crates/hd-app/src/caption.rs is a Win32 layered-window stack (WS_EX_LAYERED | WS_EX_TOPMOST | WS_EX_TRANSPARENT popups, EnumWindows-keyed by id) gated entirely behind #[cfg(windows)]. The non-Windows show_caption_window is a stub that logs "Caption overlay is only supported on Windows" and returns created=false. So on macOS:

  • adom-desktop desktop_caption will fail to actually paint a desktop overlay (the command returns, but visible:false / no window appears). Do NOT rely on it for a full-screen recording on macOS — there is no native overlay layer yet.
  • For a whole-desktop / other-app (KiCad, Fusion, browser) recording on macOS, there is currently no on-screen caption equivalent. Caption the HD workspace instead (surface 1), or narrate via TTS — don't claim a desktop overlay you can't render.

This is an honest gap, not a different mechanism: HD has no macOS-native desktop caption overlay at this time. (The caption capability that adom-desktop status advertises reflects the Windows host overlay; treat it as Windows-only until a macOS overlay ships.)

NOT here (lives in the Windows companion)

The Win32 always-on-top click-through layered-window implementation — caption.rs's #[cfg(windows)] show_caption_window / destroy_captions, the AdomCaptionOverlay window class, and the id-as-window-title routing that backs adom-desktop desktop_caption — is the Windows delivery; see hd-captions-windows.