gitwtfhub

wtf is ear_witness?

code-my-spec/ear_witness — explained in plain English

Analysis updated 2026-05-18

2CAudience · developerComplexity · 4/5Setup · hard

TL;DR

A privacy focused desktop app that records audio, transcribes it locally with no data leaving your machine, and works toward identifying who said what.

Mindmap

mindmap
  root((EarWitness))
    What it does
      Local audio capture
      Local transcription
      Speaker identification
    Tech stack
      Elixir
      LiveView
      whisper.cpp
    Use cases
      Private meeting notes
      Recorded conversations
      Consent aware recording
    Consent policies
      Silent
      Notify
      Announce

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Transcribe meetings or calls locally without sending audio to any cloud service.

REASON 2

Keep a private, searchable text record of spoken conversations.

REASON 3

Add an audible recording notice so remote call participants know they are being recorded.

REASON 4

Experiment with local voice activity detection and speaker segmentation models.

What's in the stack?

ElixirCLiveViewwhisper.cppONNX

How it stacks up

code-my-spec/ear_witnessdouglascorrea/syscall-agentgnif/porthole-guest-driver
Stars222
LanguageCCC
Last pushed2019-11-12
MaintenanceDormant
Setup difficultyhardmoderatehard
Complexity4/54/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Needs specific Erlang and Elixir versions, a C++ compiler, npm, and a separate ~148MB speech model download not included in git.

Wtf does this do

EarWitness is a desktop app that listens to audio, writes down what is said, and tries to work out who said it, with everything processed entirely on your own computer. No audio is sent anywhere else. It is built with Elixir, a programming language, and a web style interface framework called LiveView, packaged as a native desktop app. The app works in stages. First, it captures raw audio from a microphone or, on Windows and Linux, directly from whatever your computer is playing. Next, it uses a voice detection model to split that audio into separate spoken parts and ignore silence. Then it transcribes those spoken parts into text using a local speech recognition tool called whisper.cpp, entirely on your machine rather than over the internet. Two further stages, detecting when the speaker changes and figuring out who each speaker actually is, are still being built. Finished transcripts are saved as plain text files in a folder inside your Documents. Because the app can record conversations, it includes three consent policies you choose in settings: recording silently with no notice, recording while showing an on screen notice, or recording while playing an audible notice into the call itself so that other people on a video call actually hear that recording has started. That audible notice requires installing a separate virtual microphone driver on macOS, which is not included automatically with the app and must be built and installed separately, without it, the announce option refuses to record rather than recording silently by mistake. Setting the project up requires specific versions of Erlang and Elixir, a C++ compiler, and npm, along with downloading a roughly 148 megabyte speech recognition model that is not stored in the repository itself. Once set up, running a single command opens the desktop recorder window, and recordings are deleted automatically once their transcript has been written.

Yoink these prompts

Prompt 1
Walk me through installing Erlang, Elixir, and the dependencies needed to run EarWitness.
Prompt 2
Explain the difference between the silent, notify, and announce consent policies.
Prompt 3
Help me understand why the announce policy needs a separate virtual microphone driver on macOS.
Prompt 4
Show me how the audio capture, voice detection, and transcription pipeline fits together.

Frequently asked questions

wtf is ear_witness?

A privacy focused desktop app that records audio, transcribes it locally with no data leaving your machine, and works toward identifying who said what.

What language is ear_witness written in?

Mainly C. The stack also includes Elixir, C, LiveView.

How hard is ear_witness to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is ear_witness for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.