macOS · open source · v0.9 beta

Eavesdrop on yourself.
It's healthy now.

XooMe is the open-source Mac app that records your meetings, listens to your day via the pendant you already own, and turns the whole mess into searchable transcripts, summaries, and to-dos. Bring your own keys. Run it 100% local if you're paranoid. We respect that.

Download for macOS View on GitHub macOS 13+ · Apple Silicon & Intel
0kb
Sent to our servers (we don't have any)
BYO
Keys, models, opinions
MIT
Fork it like you mean it
The pendant lives on

When the cloud disappeared,
the hardware in your pocket didn't.

Thousands of us bought a wearable BLE pendant for always-on capture. Then the company was acquired and the service went dark. The hardware kept working. The protocol just needed someone to read it. So we did.

XooMe is the result — a reverse-engineered, open-source macOS companion app that talks to your existing pendant over Bluetooth, syncs the audio off the onboard NAND, and turns it into something you can actually use. Works with the original hardware. Designed to support more.

Project Timeline

Reverse-engineered, in public.

Jan 2026
Service goes darkCloud sync stops. Pendants become silent paperweights.
Feb 2026
BLE protocol decodedTX/RX characteristics mapped. NAND enumeration working over CoreBluetooth.
Mar 2026
First end-to-end syncOpus → PCM → Deepgram → TranscriptRecord on disk.
Now
XooMe v0.9 — public betaMeetings, Lifelog, BYO keys, MIT-licensed source.
Two modes, one substrate

Record on purpose. Or record on autopilot.

XooMe runs the same transcription, diarization, and AI pipeline behind both modes — but the products are different on purpose. Use what you need. Ignore the other.

Meetings

User-driven · clear start/stop

Hit record. XooMe captures system audio + your mic, transcribes live with speaker diarization, and produces a clean summary plus action items when you stop.

  • ScreenCaptureKit + AVAudioEngine — no loopback driver needed
  • Live transcript via Deepgram WebSocket
  • Claude or any OpenAI-compatible endpoint for summaries
  • Action items grouped by person and by team
  • Export to Markdown, Obsidian, Drive

Lifelog

Pendant-driven · always on

Wear the pendant. Forget about it. XooMe detects encounters from the day's audio, clusters speakers across days, and gives you a queryable timeline you actually want to revisit.

  • BLE batch sync over CoreBluetooth — works offline
  • VAD + encounter detection (not raw recordings)
  • Voiceprint clustering — "Richard" stays "Richard" across days
  • Salience scoring — low-signal noise stays hidden
  • End-of-day digest + semantic search across the corpus
The app

A native Mac app, not a web tab pretending.

SwiftUI, NavigationSplitView, real keyboard shortcuts. The pendant lives in your menu bar. Both feel like Mac apps because they are.

XooMe main window showing transcripts list
Bring your own keys

Your data, your provider, your call.

XooMe ships with no backend, no telemetry, no account. Point it at a frontier API or your own self-hosted endpoint — the app doesn't care, and neither does your wallet.

01 · LOCAL FIRST

Stays on your disk.

Audio, transcripts, notes, and summaries are JSON-per-record under ~/Library/Application Support/XooMe/. Backup is a folder copy.

02 · BYO API KEY

You pay the provider.

Deepgram for transcription. Anthropic, OpenAI, or any compatible endpoint for AI. No middleman markup. No "credits."

03 · FULLY LOCAL OPTION

Run it offline.

Point the AI dispatcher at a local model — Ollama, llama.cpp, your DGX cluster, whatever. Same UI, zero packets leaving your network.

No vendor lock-in. By design.

Drop your keys into Settings. Switch providers any time. Or skip the cloud entirely and route everything to a local endpoint. The escape hatch is part of the architecture, not an afterthought.

Settings — Providers
Transcribe deepgram_api_key=dg_•••••• Cloud
AI Model claude-sonnet-4-5-20250929 Cloud
Or http://localhost:11434/v1 Local
Storage ~/Library/.../XooMe/ Local
Capabilities

Everything you'd build yourself, already built.

Live + batch transcription

Real-time WebSocket streaming during a meeting. REST batch processing for pendant audio after the fact.

Speaker diarization

Server-side speaker turns from Deepgram. In Lifelog, voiceprint clustering keeps speakers consistent across days.

AI summaries & actions

Claude (or your model) generates summaries and structured action items grouped by person and by team.

Encounter detection

VAD-bounded sessions get clustered into actual conversations — no more 30 fragments of one car ride.

Ask XooMe AI

Coming next: a chat panel that RAGs over your full transcript corpus. "What did Richard say about pricing in March?"

Integrations

Calendar auto-record, Obsidian sync, push transcripts as context to ChatGPT, Claude, or Cursor.

What's cooking

Shipped, shipping, scheming.

This isn't a roadmap PDF. It's the actual project board, lightly edited so it reads like English.

Shipped
  • Live mic + system audio recording (no loopback driver)
  • Deepgram WebSocket transcription with diarization
  • Claude / OpenAI-compatible AI dispatch
  • Pendant BLE connect + NAND enumeration
  • Pendant audio sync → transcript
  • BYO keys + custom endpoint settings
Shipping now
  • Encounter detection (the conversation, not the silence)
  • Voiceprint clustering across days
  • Lifelog timeline UI with salience filtering
  • Daily digest — “here's what mattered today”
  • Speaker rename pills in the detail view
Soon-ish
  • Ask XooMe AI — RAG chat over your full corpus
  • Calendar trigger (Google) → auto-record
  • ChatGPT / Claude / Cursor context push
  • Obsidian sync as Markdown notes
  • Third-party pendant hardware (Omi-DevKit, custom)
  • Whisper.cpp local transcription path
Asked, often

Questions you're about to type into an issue.

It's your hardware. We didn't crack DRM, didn't redistribute their firmware, and didn't sign anything we shouldn't have. We read what the BLE radio broadcasts and wrote a client for it. The protocol notes are in the repo — read, audit, fork.
Only if you point it at a cloud transcription/AI provider — in which case it goes to their servers, with your API key, on your bill. If you point at a local endpoint (Ollama, llama.cpp, your own GPU box), nothing leaves the box. There's no XooMe server. There never will be.
v0.9 supports the original wearable BLE pendant a lot of us already own. Omi-DevKit and other Nordic-based BLE pendants are next — the BLE service abstraction is built to extend.
That's on you, friend. One-party-consent vs all-party-consent varies by jurisdiction. XooMe gives you the tools; you bring the ethics. The Lifelog mode has redaction hooks for exactly this reason.
macOS only for now — we lean hard on ScreenCaptureKit and CoreBluetooth. The transcription/AI stack is portable. If someone wants to port the UI, the door is open and the PR template is friendly.
The app: $0. The provider bills: whatever Deepgram + Anthropic charge per minute (cents). Or $0 if you run everything locally. We make exactly $0 either way — this is a love project, not a business.
Because all the good names were taken. Capital X, lowercase oo, capital M, lowercase e. We will die on this hill.
Open source · MIT

Fork it. Ship it. Wear it.

The whole stack — Swift app, BLE pendant client, build & sign scripts, the protocol notes — is on GitHub. Issues open. PRs welcome. Pendant hardware support is built to extend.

MIT License Swift · SwiftUI · CoreBluetooth macOS 13+ Apple Silicon & Intel