HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ExistentialAudio
BlackHole
C2019–2025
ExistentialAudio / BlackHole

BlackHole

BlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.

19Distinct people
20Mentions
0Explicit recommenders
20KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

BlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year20 dated mentions

Observed mentions: 2019-10-29 06:36:08 UTC to 2025-08-26 10:56:05 UTC.

02462019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC110
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC505
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC716
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC303
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC211
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

20 sources
If you want to record sound generated by the computer itself only (not the microphone), you can use a tool like BlackHole [1]. BlackHole adds a loopback audio device which can be used with the default video capture tool (select the loopback device in the options menu after pressing shift-command-5). To be able to play audio from the speakers while you're recording, you need to add a multi-output audio device in the macOS "Audio MIDI Setup" app. Switch to the multi-output device by option-clicking the audio icon in the top menu bar. Now both the speakers as well as the BlackHole audio device will receive audio. [1]: https://github.com/ExistentialAudio/BlackHole
In Tool beeps every time data is sent to Google
This (commercial) program[1] does the job for Spotify. I think what it does is just play the given playlist then it sets Spotify's audio output to a virtual audio device similar to BlackHole[2], then reads from it, encodes the audio, fetches the metadata (including album art) and sets it. There are open source[3] alternatives[4] but I haven't tested them. [1] https://www.noteburner.com [2] https://github.com/ExistentialAudio/BlackHole [3] https://github.com/jwallet/spy-spotify [4] https://github.com/richardk80/spotify-ripper
In Building an iPod for 2022
The unsung hero of Blackhole is the ability to easily build a new one, meaning you can have infinite sets of audio devices with custom names. https://github.com/ExistentialAudio/BlackHole/wiki/Build-wit... Just change around some variables: `kDevice_Name`, `Manufacturer_Name`, `kPlugIn_BundleID`, `kBox_UID`, `kDevice_UID`, `kDevice_ModelUID`, and then the Blackhole.driver folder it spits out after build. You can also go up to 16 (or more?) channels instead of the stock 2, which is great for multiple participants in a jacktrip session, among other things. https://github.com/ExistentialAudio/BlackHole/wiki/Change-th... That one is slightly out of date. The new variable name is `kNumber_Of_Channels` for number of channels. You can have a dedicated Blackhole audio device for each thing you want to mix and then stitch them together into an agg
Read the rest
regate audio device (on Macs). Now you can use this aggregate device inside something like Ableton live, and then you route and mix audio from different sources. Then you can send your Ableton mix to something like OBS Studio for example. Or even use different sets of return channels for different mixes to different places, like one for your monitors, one for OBS/live stream, one for your headphones for monitoring what you're playing perhaps. Multiple Blackholes + aggregate audio device = A+ happy audio routing
In BlackHole Audio Driver
It's a vanilla loopback Audio Server Plugin implementation, which is a userspace audio driver mechanism on macOS. Soundflower is an actual kernel-space driver using IOKit, which is the older (and deprecated) way of achieving the same thing. The actual work is done in a few dozen lines of code (see BlackHole_DoIOOperation at https://github.com/ExistentialAudio/BlackHole/blob/master/Bl...). The rest is just setting up the object model for the OS to provide metadata about the device.
In BlackHole Audio Driver
> Wanna record your desktop audio as part of a screencast? It doesn't have to be a screencast, it's kind of a convoluted process regardless of which operating system you're using [1]. If I'm not mistaken OBS is using the built-in virtual loopback devices available through pulseaudio, but MacOS does not include a virtual loopback device by default, hence requiring a third party one such as Blackhole or loopback. > ...and often involves shady stuff ...what shady stuff are we talking about here? Blackhole [2] is open source software. It's about as shady as any of the (several) linux audio systems. [1] https://en.wikipedia.org/wiki/Loopback [2] https://github.com/ExistentialAudio/BlackHole
In Memory leaks are crippling my M1 MacBook Pro
Is this hosted anywhere? I created https://omen.tv/ just last weekend. Similar in that it's powered by WebRTC, but it's designed for casting your screen (e.g. Jackbox Games) to other people's TVs. My greatest annoyances with WebRTC were: 1. WebRTC requires a STUN server, and despite the spec initially supporting default ICE servers, it has since been pulled out into an extension because browser vendors don't want to provide servers[1]. There are free STUN servers (Google etc.) but... 2. Double NAT clients. STUN is inevitably going to discover double NAT clients. The only way to connect these clients is through a proxy. Specifically a TURN server. Unlike STUN servers, these are not light-weight, and I can totally understand why browser vendors don't offer them by default. So inevitably any WebRTC use still requires a self-hosted TURN serve
Read the rest
r. 3. Inconsistent access to streams across browsers. In particular the getDisplayMedia[2] API provides poor availability of the audio stream. Courtesy of Apple doing Apple things, I don't believe it's even possible to implement this API on macOS as there's no audio loopback device. I worked around this for my use-case by installing BlackHole[3] (which is great software!) However, the loopback device appears as an input e.g. like a microphone, so isn't technically the display audio. For this all to be smooth I think all these pain points need to be addressed. Issue 1 and 2 require NAT to be kicked to the curb, come on IPv6! Issue 3, requires Apple to expose a loopback device and browsers to implement support. These aren't insurmountable issues, but they're unfortunately out of our hands as day-to-day devs. [1] https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConn... [2] https://developer.mozilla.org/en-US/docs/Web/API/MediaDevice... [3] https://github.com/ExistentialAudio/BlackHole
In Show HN: Talk – A free group video call app with screen sharing

Showing the 15 most recent of 20 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.