// macOS · proudly AI-built

Your calls, written down and summarised.

JakeListen quietly records both sides of a call, transcribes it with speaker names, and hands you a tidy summary the moment you hang up. No virtual audio driver, no faff.

macOS 14.2+ · Bring your own Gemini key · MIT licensed

Jake, a golden retriever in headphones, taking notes at a desk good boy 🦴
🤖

Yes, this is 100% AI slop. We're not hiding it.

Every single line of JakeListen was written by AI: the CLI, the Swift audio helper, the Mac app, the installer, and this exact website you're reading. A human pointed and nudged; the AI typed all of it. We're putting that right up front because you deserve to know what you're running. It works, it's open source, and you can read every line yourself. No human-made polish, no false claims, just honest robot output.

Why JakeListen

Everything a call needs, nothing it doesn't.

Jake sits in, listens to both sides, and gives you back a clean transcript and summary the second the call ends.

🎙️

Both sides, no BlackHole

Your mic via ffmpeg, everyone else via macOS Core Audio process taps. No virtual audio driver or Multi-Output Device to wrestle with.

🗣️

Speaker-labelled

Each side is transcribed on its own and merged by timestamp, so "Me" vs. everyone else stays reliably separated.

📝

Instant summaries

A short recap with participants, key points, decisions, and action items, ready to paste into Slack.

⏱️

Built for long calls

Recordings are chunked, transcribed in parallel, de-duplicated across overlaps, and silence-trimmed so it never loops.

💬

Posts to Slack

Optionally drop the summary straight into the channel of your choice as soon as the call wraps.

🔒

Yours by default

Audio, transcripts, and summaries stay on your disk. Nothing personal is hard-coded; your name and jargon live in local config.

Bring your own key

You hold the key, literally.

JakeListen runs on your own Google Gemini API key instead of routing your calls through someone else's server. Grabbing one is free and takes about a minute, and it means you stay in full control.

  • Your data, your account. Audio goes straight from your Mac to Google under your key. There's no middleman service in between.
  • Free to start. Gemini's free tier comfortably covers everyday calls.
  • You set the limits. Rotate, cap, or revoke the key whenever you like.
  • One-minute setup. Paste it once when you first run JakeListen and you're done.
The app

A native menu-bar & window front-end.

Start and stop from the menu bar, then browse every past call with its summary and transcript in one window. The GUI drives the same CLI under the hood.

JakeListen
⏺ Record

Jun 15, 2026 at 3:25 PM

▸ Summary
Summary — Weekly sync to lock the v0.6 release and split up the launch tasks.
  • Participants: Me, Sam, Priya
  • Decisions: Ship v0.6 Friday; docs site goes live with it.
  • Action items: Priya finalizes the README, Sam cuts the release.
▸ Transcript
[00:02] Me: Alright, are we good to ship v0.6 this week? [00:07] Sam: Yeah, build's green and the install script works on a clean Mac. [00:14] Priya: I'll have the README polished by Thursday. [00:19] Me: Perfect, let's tag it Friday morning then.

The menu-bar popover: one click to start or stop.

Get started

Just point Claude Code at it.

JakeListen was written entirely by AI, so why install it like it's 2015? No packages, no installers. Open Claude Code (or your coding agent of choice), paste the prompt below, and it'll clone the repo, sort out the dependencies, build the audio helper, and launch the app for you.

# paste this into Claude Code:
Install JakeListen from github.com/D-32/JakeListen
and launch it on my Mac.
1

Open Claude Code

Anthropic's agentic CLI, or any coding agent that can run commands on your Mac.

2

Paste the prompt

It works out Homebrew, ffmpeg, the Swift helper, and the macOS permissions on its own.

3

Pop in your Gemini key

On first launch JakeListen asks for your free Gemini key. Paste it once and you're set.

4

Record

Hit record from the menu bar or window. Your transcript and summary appear when you stop.

Rather do it by hand? The full manual steps live in the README.