Halo GitHub

Open source · MIT · macOS 15+

A free Loom alternative
for Mac.

Halo records your screen with a circular webcam bubble straight to an MP4 on your disk. 1080p or 4K, hardware-encoded. It is the recording half of Loom, done locally — no cloud, no account, no upload.

  • MP4 not a link
  • 4K max capture
  • Menu bar no dock icon
  • 0 bytes ever uploaded

What it does

A recorder, not a platform.

Everything below happens on your Mac, in one pass, and ends in a file you own.

Compositor

A real circular webcam bubble

Your camera is masked into a circle and composited over the screen while you record. One file comes out — nothing to align, layer, or key in post.

Encoder

1080p or 4K

Encoding runs on Apple's media engine through VideoToolbox, so a 4K capture doesn't spend your CPU budget fighting the thing you're demoing.

Interface

Lives in the menu bar

No dock icon, no windows, no workspace to arrange. Click the icon, pick a screen and a camera, start recording. Click again to stop.

Output

Files, not links

Recordings land on disk as plain MP4. Drop them into any editor, attach them to an email, archive them. Nothing expires and nothing needs a viewer.

Network

No network code at all

Not "privacy-first" as a posture — there is no cloud, no account system, no telemetry, and no analytics to audit, because none of it was written.

License

MIT, genuinely

Read it, fork it, rename it, ship it inside something you sell. Keep the copyright notice with the source and you have met the whole obligation.

What it isn't

The platform half is deliberately absent.

  • No share links, no hosting
  • No timeline editor, no trimming
  • No cloud storage or sync
  • No account, sign-up, or team plan
  • No AI summaries or transcripts
  • No telemetry, no analytics

If you need a link in a client's inbox ten seconds after you stop recording, use Loom — that is what it is good at. If you want a file you own, on a machine you control, with no service between you and it, use Halo.

How it works

The whole pipeline, end to end.

Four stages, all on-device. This is every place your video goes between the glass and the file.

  1. ScreenCaptureKit

    Capture the screen

    macOS hands Halo the display's frames directly from the window server through an SCStream. ScreenCaptureKit only delivers a frame when the screen changes, so Halo re-submits the last frame on a fixed cadence and the file's duration tracks the wall clock.

  2. AVFoundation

    Capture the camera

    The webcam arrives as a separate stream at its own native frame rate, kept independent of the screen capture so neither one stalls the other.

  3. Core Image + Metal

    Mask and composite

    Core Image, on a persistent Metal-backed CIContext, masks the camera frame into a circle and composites that bubble over the screen frame on the GPU. Two images in, one pixel buffer out, every frame.

  4. VideoToolbox

    Encode to MP4

    Composited frames go straight to the hardware encoder on Apple's media engine and out to an MP4 on your disk. The file is complete the moment you stop.

Note what is not in that list: a network request, a background upload, or a server that has to be up for your recording to exist.

Comparison

Halo vs Loom, honestly.

Loom is a good product solving a different problem. A rigged table would not help you pick, so here is where each one actually wins.

Feature comparison between Halo and Loom
Feature Halo Loom
Price Free, forever, MIT licensed Free tier, paid plans above it
Account required None Yes, sign-up required
Where the video lives On your disk, as MP4 On Loom's servers
Instant share link No — you send the file Yes, the moment you stop Loom wins
Built-in editor and trimming No editor at all Yes Loom wins
Viewer analytics and comments No Yes Loom wins
Platforms macOS 15+ only Mac, Windows, browser, mobile Loom wins
Circular webcam bubble Yes Yes
Capture resolution Up to 4K, hardware-encoded Depends on your plan
Works with no internet Entirely Records offline, sharing needs the upload
Telemetry and analytics None Yes
Source code Public and MIT licensed Proprietary

Loom is a trademark of its owner. Halo is an independent project and is not affiliated with, endorsed by, or connected to Loom. Loom's plans and features change over time — check their site for current details before you decide.

Install

Three ways in.

Pick the first one that describes you. They all end with the same app in your menu bar.

  • macOS 15 (Sequoia) or later
  • Apple Silicon or Intel — built and tested on Apple Silicon (M4)
  • Free forever — MIT licensed, no account, nothing to buy
01

Download with Homebrew

RECOMMENDED

Two lines in Terminal and Halo is in your Applications folder. Homebrew also clears the macOS quarantine flag for you, so Halo opens normally the very first time — no right-click, no scary “damaged” warning.

brew tap techautomationpartners/halo
brew install --cask halo

Don't have Homebrew? Install it first from brew.sh. If Homebrew asks you to trust the tap, run brew trust --cask techautomationpartners/halo/halo and install again — that check applies to every tap outside Homebrew's core repository.

02

No Homebrew yet?

ONE EXTRA STEP

Homebrew is a free installer for Mac apps and developer tools. Paste this into Terminal, press Return, and follow the prompts — then come back to step 01 above.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

That is Homebrew's own official installer, straight from brew.sh. It will ask for your Mac password, which it needs to create its install directory. Once it finishes, run the two Halo commands above.

Prefer not to use Terminal at all? A direct download is on the releases page — but you will have to right-click Halo and choose “Open” the first time, because the app is not notarized by Apple. Homebrew handles that for you, which is why it is the recommended route.

03

Build from source

XCODE 26 / SWIFT 6
git clone https://github.com/techautomationpartners/halo.git
cd halo
swift build -c release
Scripts/make_app.sh

Scripts/make_app.sh assembles Halo.app and signs it. The signature matters: macOS ties screen recording and camera permissions to a signed bundle identity, and an unsigned binary may never appear in the permission list at all.

Then run it. Halo has no Dock icon and no window — it lives in the menu bar at the top of your screen, as a small ring. Click it, pick a screen and a camera, and record. Files land in your Movies folder, in a folder called Halo. Nothing is uploaded anywhere, ever.

Permissions

macOS will ask. Here's the order.

Halo needs three permissions, and macOS deliberately makes them un-automatable — no app can grant them on your behalf. This is the part people get stuck on, so it is written out in full.

  • Screen & System Audio Recording — required; also covers system audio
  • Camera — only if you want the webcam bubble
  • Microphone — only if you want narration

1. Move Halo to /Applications first. Grants attach to the app where it lives. Granting from a build folder and then moving the app can invalidate the grant.

2. Start a recording. macOS shows the prompts at the moment Halo first needs each permission. Approve them.

3. Quit and relaunch Halo after granting Screen Recording. This step is not optional and is the single most common reason people think Halo is broken. macOS caches the answer for the lifetime of the process, so a running app keeps seeing "denied" no matter what you toggle.

If no prompt appears. macOS only ever shows the Screen Recording prompt once per app. After that the toggle is the only way in. Open System Settings → Privacy & Security → Screen & System Audio Recording, click the + button, and add /Applications/Halo.app directly. That pane is the one place macOS lets you add an app by hand — Camera and Microphone have no + button, which is why you cannot fix this from there.

If the toggle is on but Halo still says access was denied. You almost certainly have a stale duplicate entry from an earlier build. Look for two "Halo" rows in the list. Clear them and start clean:

tccutil reset ScreenCapture com.techautomationpartners.halo
tccutil reset Camera com.techautomationpartners.halo
tccutil reset Microphone com.techautomationpartners.halo

Then relaunch Halo and grant again. macOS treats an app's code signature as its identity, so a rebuilt binary can read as a different app and quietly lose its grants. Scripts/make_app.sh avoids this by signing with a Developer ID or Apple Development certificate when it finds one — that identity is stable across rebuilds. Falling back to an ad-hoc signature means re-granting after every build.

Nothing here phones home. These grants are between you and macOS. Halo has no network code at all, and your recordings never leave the machine.

FAQ

Questions worth answering.

Is Halo really free?

Yes. Halo is MIT licensed and free for anything, including commercial use. There is no paid tier, no trial, and nothing to buy.

Is Halo a Loom alternative?

It replaces Loom's recording, not Loom's platform. There are no share links, no hosting, and no editor. If your workflow ends with a video file, Halo replaces Loom completely. If it ends with a link you send someone, it does not.

Does Halo upload my recordings anywhere?

No. Halo has no networking code at all. Recordings are written to your disk and stay there. There is no cloud, no telemetry, and no analytics.

Do I need an account to use Halo?

No. There is no sign-up, no login, and no account system. You launch the app and record.

What version of macOS does Halo need?

macOS 15 (Sequoia) or later, because Halo captures the microphone through SCStreamConfiguration.captureMicrophone, which was introduced in macOS 15. It runs on Apple Silicon and Intel Macs, and is built and tested on Apple Silicon (M4).

What format and resolution does Halo record?

MP4, at 1080p or 4K. Encoding is done in hardware through VideoToolbox.

Can I trim or edit a recording inside Halo?

No. Halo has no timeline editor. It hands you a standard MP4 that opens in any editor you already use.

Can I use Halo at work or inside a commercial product?

Yes. The MIT license permits commercial use, modification, and redistribution. The only obligation is keeping the copyright notice with the source.

License

MIT. That's the whole deal.

Copyright © 2026 Tech Automation Partners. Use it personally or commercially, modify it, fork it, rebrand it, ship it inside a product you charge for. Keep the copyright notice with the source and you have met every obligation the license imposes.