explaingit

tobi/recorder

21SwiftAudience · generalComplexity · 3/5Setup · moderate

TLDR

A macOS menu-bar app that records meetings by capturing system audio and your microphone into separate stereo channels, then optionally transcribes recordings with speaker labels using Google Gemini AI.

Mindmap

mindmap
  root((recorder))
    What it does
      Records two audio channels
      System audio left channel
      Microphone right channel
    Transcription
      Google Gemini AI
      Speaker identification
      Timestamps and labels
    Features
      Calendar integration
      Silence auto-stop
      Crash-safe continuous save
    Tech
      Swift and SwiftUI
      macOS 15 required
      Menu bar only app
Click or tap to explore — scroll the page freely

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

Things people build with this

USE CASE 1

Record a video call so remote participants and your own voice land in separate audio channels, making editing and transcription much easier.

USE CASE 2

Automatically transcribe a meeting recording with speaker labels and timestamps using a Gemini API key.

USE CASE 3

Auto-stop a recording after five minutes of silence so you never accumulate hours of empty audio after a call ends.

Tech stack

SwiftSwiftUI

Getting it running

Difficulty · moderate Time to first run · 30min

Requires macOS 15 and Xcode 26 to build from source, AI transcription requires a Google Gemini API key.

In plain English

Recorder is a small macOS menu-bar app for capturing meetings and voice notes. Its distinguishing feature is that it records two audio sources at the same time and places them in separate stereo channels: system audio (the sounds coming from your speakers, typically remote call participants) goes into the left channel, and your microphone goes into the right. The result is a single audio file where you can always tell the local voice from the remote voices, rather than a mixed mono recording where everyone sounds the same. Beyond the two-channel capture, the app can optionally send completed recordings to Google's Gemini AI service for transcription and speaker identification. The transcription output is a Markdown file with timestamps and speaker labels, placed alongside the audio in the recording folder. Gemini uses the stereo layout as a hint: left channel voices are likely remote participants, right channel is likely you. You can also provide your own name in the settings so the model can label you correctly. Transcription requires a Gemini API key, but recording works fine without one. The app integrates with macOS Calendar. When you open the menu-bar panel, it shows upcoming and recent meetings. Clicking a meeting starts a recording named after it. If a meeting's scheduled end time passes while you are still recording, the app sends a notification with an option to stop. A configurable silence detector (default: five minutes of quiet on both channels) also stops a recording automatically if you forget. Each recording session saves two raw audio files continuously as you go, so a crash loses almost nothing. The final stereo mix is only produced when you explicitly save. Files land in a dated folder under ~/Documents/Recordings/. The app is written entirely in Swift and SwiftUI, requires macOS 15 or later, and has no external runtime dependencies like ffmpeg. Building from source requires Xcode 26 and Swift 6. It runs without a Dock icon, appearing only as a menu-bar item. The app is non-sandboxed and ad-hoc signed.

Copy-paste prompts

Prompt 1
I want to build on tobi/recorder. How do I add a second transcription provider like OpenAI Whisper alongside the existing Gemini integration?
Prompt 2
In the recorder app, how does the silence detector decide when to stop a recording, and how do I change the default five-minute threshold?
Prompt 3
I cloned recorder in Xcode 26. How do I change which Gemini model is used for transcription to a specific version like gemini-2.0-flash?
Open on GitHub → Explain another repo

← tobi on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.