Skip to content

Releases: arshawnarbabi/Halo

Halo v1.0.4

Choose a tag to compare

@arshawnarbabi arshawnarbabi released this 07 Jun 18:41

Halo v1.0.4 — fullscreen window previews, actually.

What's new

  • Fullscreen apps now show their windows at all. v1.0.3 added a cross-Space capture fallback, but it never got the chance to run: macOS's Accessibility API only lists windows on the active Space, so an app fullscreen on its own Space enumerated zero windows — no cards, no previews. Halo now discovers those windows through CoreGraphics window enumeration, filtered down to real windows (placed on a Space, big enough not to be a toolbar-reveal strip), and previews them via the SkyLight capture from v1.0.3.
  • Clicking a fullscreen app's preview switches straight to its Space, via the same SkyLight raise path used everywhere else.

Update

Already on Halo? Click the menu-bar icon → Check for Updates… and it'll download and relaunch into this version. Or grab Halo.app.zip below.

Requires macOS 26 (Tahoe) on Apple Silicon. Not Mac App Store eligible (self-build / sideload only).

macOS says it "could not verify Halo is free of malware"?

That's expected for a downloaded Halo.app.zip — the release is signed with an Apple Development certificate, not a notarized Developer ID one, so Gatekeeper blocks the first launch. Two ways past it:

  1. Terminal (recommended). Move Halo.app to /Applications, then strip the quarantine flag:
    xattr -dr com.apple.quarantine /Applications/Halo.app
    This also prevents Gatekeeper App Translocation, which would otherwise break the permission grants and the in-app updater.
  2. System Settings. Try to open Halo once (let it get blocked), then go to System Settings ▸ Privacy & Security, scroll down to the "Halo was blocked" notice, and click Open Anyway. (On macOS 26 the old right-click ▸ Open bypass no longer works for unnotarized apps.)

More detail in the README.

Halo v1.0.3

Choose a tag to compare

@arshawnarbabi arshawnarbabi released this 07 Jun 17:52

Halo v1.0.3 — live previews for fullscreen apps.

What's new

  • Fullscreen apps get real window previews. Hovering an app that's fullscreen on its own Space now shows a live preview of that window, instead of falling back to an icon card. ScreenCaptureKit can only screenshot windows on the active Space (it fails with error -3811 for everything else), so Halo now falls back to a WindowServer-side SkyLight capture that renders a window regardless of Space — the same approach AltTab uses. Best-effort and isolated like all of Halo's private-API use: if it ever fails, you get the icon card as before.
  • Other-Space and minimized windows too. The same fallback covers windows on any other Space, and minimized windows now preview their last-rendered content.

Update

Already on Halo? Click the menu-bar icon → Check for Updates… and it'll download and relaunch into this version. Or grab Halo.app.zip below.

Requires macOS 26 (Tahoe) on Apple Silicon. Not Mac App Store eligible (self-build / sideload only).

macOS says it "could not verify Halo is free of malware"?

That's expected for a downloaded Halo.app.zip — the release is signed with an Apple Development certificate, not a notarized Developer ID one, so Gatekeeper blocks the first launch. Two ways past it:

  1. Terminal (recommended). Move Halo.app to /Applications, then strip the quarantine flag:
    xattr -dr com.apple.quarantine /Applications/Halo.app
    This also prevents Gatekeeper App Translocation, which would otherwise break the permission grants and the in-app updater.
  2. System Settings. Try to open Halo once (let it get blocked), then go to System Settings ▸ Privacy & Security, scroll down to the "Halo was blocked" notice, and click Open Anyway. (On macOS 26 the old right-click ▸ Open bypass no longer works for unnotarized apps.)

More detail in the README.

Halo v1.0.2

Choose a tag to compare

@arshawnarbabi arshawnarbabi released this 05 Jun 06:10

Halo v1.0.2 — tidier window previews.

What's new

  • Cleaner preview layout. When you fan out an app's window previews, they now tile in a compact, screen-aligned grid with uniform spacing, instead of spreading along a diagonal that changed with the icon's position on the ring. The arrangement is consistent for every spot around the ring and stays on-screen (1 window → single card, 2 → a row, 3–4 → 2×2, 5–6 → 3×2, and so on).

Update

Already on Halo? Click the menu-bar icon → Check for Updates… and it'll download and relaunch into this version. Or grab Halo.app.zip below.

Requires macOS 26 (Tahoe) on Apple Silicon. Not Mac App Store eligible (self-build / sideload only).

macOS says it "could not verify Halo is free of malware"?

That's expected for a downloaded Halo.app.zip — the release is signed with an Apple Development certificate, not a notarized Developer ID one, so Gatekeeper blocks the first launch. Two ways past it:

  1. Terminal (recommended). Move Halo.app to /Applications, then strip the quarantine flag:
    xattr -dr com.apple.quarantine /Applications/Halo.app
    This also prevents Gatekeeper App Translocation, which would otherwise break the permission grants and the in-app updater.
  2. System Settings. Try to open Halo once (let it get blocked), then go to System Settings ▸ Privacy & Security, scroll down to the "Halo was blocked" notice, and click Open Anyway. (On macOS 26 the old right-click ▸ Open bypass no longer works for unnotarized apps.)

More detail in the README.

Halo v1.0.1

Choose a tag to compare

@arshawnarbabi arshawnarbabi released this 05 Jun 02:30

Halo v1.0.1 adds in-app updates.

What's new

  • Check for Updates… — a new menu-bar item. Halo checks the latest GitHub release and, on your confirmation, downloads the new signed build, swaps itself in place, and relaunches. The old build is replaced, not duplicated.
    • The download is verified against your installed app's designated requirement (bundle id + signing certificate), so a foreign-signed build is refused and your Accessibility / Screen Recording grants carry over.
    • The swap is failure-safe: it stages the new build beside the old one and uses same-volume renames, so an interrupted update can never leave you with a missing or corrupted app — and a failed update is reported on next launch instead of failing silently.
  • The menu header now shows the running version, and Check for Updates… disables itself while an update is in flight.

Install / update

  • New install: download Halo.app.zip below, unzip, move Halo.app where you like, and open it. (Built from source works too — see the README.)
  • Already running Halo? Just click the menu-bar icon → Check for Updates….

Requires macOS 26 (Tahoe) on Apple Silicon, and Accessibility permission. Halo uses private system symbols and is not Mac App Store eligible (self-build / sideload only).

Halo v1.0.0

Choose a tag to compare

@arshawnarbabi arshawnarbabi released this 05 Jun 02:04

Halo v1.0.0 — the first release.

Press ⌘⇥ and a Liquid Glass ring of your running apps blooms around the cursor. Hover an icon to float it out and reveal a stack of live window previews; slide onto the stack to fan them; click to jump straight to that exact window. Press ⌘⇥ again (or Esc, or click outside) to dismiss.

Highlights

  • ⌘⇥ toggle — Halo swallows ⌘⇥ at the HID level; the ring toggles instead of the native switcher. No holding.
  • Opens on the cursor, with a spring open/close (icons compress into one glass sphere, then spring out).
  • Native Liquid Glass — built on macOS 26 .glassEffect / GlassEffectContainer, with a hover bulge, specular sheen, and an edge outline that hugs the bulge↔ring junction.
  • Live window previews via ScreenCaptureKit; click a preview to raise that exact window, across Spaces.
  • Lone-⌘ recenter glides the open ring onto the current cursor (even another display).
  • Optional whole-screen backdrop blur with named levels in the menu bar.
  • Menu-bar control — permission status, a Show ring toggle, and the blur submenu; both settings persist across launches.

Requirements

  • macOS 26 (Tahoe), Apple Silicon
  • An Apple Development signing certificate in your keychain (keeps the Accessibility grant alive across rebuilds)

Install

git clone https://github.com/arshawnarbabi/Halo.git
cd Halo
./Scripts/build.sh release

Then grant Accessibility from the menu-bar icon and press ⌘⇥. See the README for details.

Notes

Halo uses private SkyLight / Accessibility / CoreGraphics Services symbols (isolated in PrivateAPIs.swift, all best-effort with public fallbacks), so it is not Mac App Store eligible — distribution is self-build / sideload only.