Open-source, self-hosted voice diary and transcription system.
Local Loop is an alternative to commercial always-on voice recorders like Limitless, Plaud, and Rewind. Instead of trusting a startup with your most personal data, you control the entire pipeline: your iPhone records, your Google Drive stores, your Mac transcribes, your notes app saves the results.
- Own your data - Recordings go to YOUR Google Drive, transcripts to YOUR notes app
- No subscriptions - One-time setup, minimal ongoing costs (~$0-5/month)
- No vendor lock-in - Standard formats (M4A audio, Markdown text)
- No third-party servers - Your data never touches someone else's startup servers
- Fully customizable - Modify the code to fit your workflow
- Continuous background audio recording
- 10-minute chunks with seamless 5-second overlap
- Automatic upload to Google Drive
- WiFi-only and charging-only upload modes
- Minimal battery impact (~5-10% additional daily drain)
- Downloads audio from Google Drive
- Voice Activity Detection (VAD) - Skips silent chunks to save API costs
- Gemini-powered transcription with custom context
- Markdown output organized by time of day
- Scheduled daily runs via macOS launchd (or cron on Linux)
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐
│ iPhone │────▶│ Google Drive │────▶│ Mac Transcriber │────▶│ Notes App │
│ (Records) │ │ (Storage) │ │ (Gemini) │ │ (Markdown) │
└─────────────┘ └──────────────┘ └─────────────────┘ └──────────────┘
- iOS App: macOS with Xcode 15+, Apple Developer account (free works for personal use)
- Transcriber: macOS or Linux, Python 3.10+
- APIs: Google Cloud account (free), Gemini API key (free tier available)
- Storage: Google Drive (free 15GB is plenty)
| Component | Cost |
|---|---|
| Google Drive | Free (15GB included) |
| Google Cloud OAuth | Free |
| Gemini API | Free tier: ~1,500 requests/day |
| Apple Developer (device install) | Free (with limitations) or $99/year |
Typical monthly cost: $0-5 depending on usage. The free Gemini tier handles most personal use cases. VAD filtering reduces API calls by 50-80% by skipping silent audio.
-
Clone this repo
git clone https://github.com/mikeprebledotcom/localloop.git cd localloop -
Set up Google Cloud credentials - See SETUP.md
-
Get a Gemini API key - See SETUP.md
-
Build and install the iOS app - See SETUP.md
-
Configure the Python transcriber - See SETUP.md
-
Schedule daily transcription - See SETUP.md
For detailed instructions, see SETUP.md.
Edit ios/LocalLoop/Resources/Info.plist with your Google OAuth Client ID.
Copy transcriber/config.example.yaml to transcriber/config.yaml and fill in:
- Google Drive folder ID
- Gemini API key
- Output directory path
- Speaker name and domain context (optional, improves accuracy)
Transcripts are saved as Markdown files organized by time of day:
# Recording - 2025-01-15
## Morning
- Speaker (1/15/25 8:30 AM): First thought of the day...
## Afternoon
- Speaker (1/15/25 2:15 PM): Meeting notes here...Local Loop includes Silero VAD to automatically skip silent audio chunks. This saves significant API costs when you have long periods without speaking (e.g., working at your desk).
Configure in config.yaml:
vad:
enabled: true
threshold: 0.5 # Speech probability (0-1)Local Loop supports two transcription backends:
Cloud-based transcription using Google's Gemini API.
transcription:
backend: "gemini"Pros: No local compute needed, context hints improve accuracy, generous free tier Cons: Audio is sent to Google for processing
100% local transcription using OpenAI's Whisper model via faster-whisper.
# Install the optional dependency
pip install faster-whispertranscription:
backend: "whisper"
whisper:
model: "base" # tiny (fast), base, small, medium, large-v3 (accurate)
device: "auto" # auto, cpu, cuda
language: "en"Model sizes:
| Model | Size | Speed | Accuracy |
|---|---|---|---|
| tiny | 39 MB | ~10x realtime | Good |
| base | 74 MB | ~7x realtime | Better |
| small | 244 MB | ~4x realtime | Great |
| medium | 769 MB | ~2x realtime | Excellent |
| large-v3 | 1.5 GB | ~1x realtime | Best |
Pros: Completely private, no API costs, works offline Cons: Requires CPU/GPU resources, slower than cloud, no context hints
Fair point. Let me be clear about what this project offers:
- What it IS: Data ownership. Your recordings stay in YOUR Google account, not a startup's servers. You can delete everything anytime. No company is training models on your conversations.
- What it ISN'T: End-to-end encrypted, zero-knowledge, or "Google can't see it." Google theoretically has access to your Drive files and Gemini processes your audio.
If you need true privacy, use the local Whisper backend - your audio never leaves your machine. See Transcription Backends below.
Google Drive was chosen because:
- Free 15GB storage
- Google Sign-In SDK is well-maintained for iOS
- Single auth flow for both storage and Gemini API
Want to add S3, Dropbox, or local-only support? PRs welcome!
Both are supported! Choose based on your priorities:
| Backend | Pros | Cons |
|---|---|---|
| Gemini (default) | No local compute, context hints improve accuracy, free tier | Audio sent to Google |
| Whisper (local) | 100% private, no API costs, works offline | Requires CPU/GPU, slower |
See Transcription Backends for setup instructions.
Not currently supported. The iOS app would need to be rewritten. If you're an Android developer interested in contributing, please open an issue!
Expect roughly 5-10% additional daily battery drain. The app uses AVAudioRecorder with hardware-accelerated AAC encoding, which is fairly efficient. Tips:
- Enable "WiFi-only" uploads to avoid cellular radio usage
- Enable "Require charging" to batch uploads
You are responsible for complying with local laws. Many jurisdictions have wiretapping/eavesdropping laws:
- One-party consent (e.g., most US states): You can record conversations you're part of
- Two-party/all-party consent (e.g., California, many EU countries): All parties must consent
This tool is designed for personal voice memos - recording your own thoughts, ideas, and reminders. If you use it to record conversations with others, ensure you have appropriate consent.
The authors accept no liability for misuse of this software.
Technically yes, but consider:
- Legal consent requirements (see above)
- Better tools exist for structured recordings (Otter.ai, etc.)
- This is optimized for personal, continuous capture
- Local Whisper transcription option
- Android app
- Alternative cloud storage (S3, Dropbox, local)
- Web UI for browsing transcripts
- Better search/tagging system
- Speaker diarization (who said what)
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
See the roadmap above for ideas, or open an issue to discuss new features.
MIT License - See LICENSE for details.
- Silero VAD - Voice Activity Detection
- faster-whisper - Local Whisper transcription
- Google Sign-In for iOS
- Google API Client for REST
- Gemini API