A meeting note-taker that talks back.
2,577
stars
564
commits
Swift
primary language
Sep 3, 2026
updated
A meeting note-taker that talks back.
OpenOats sits next to your call, transcribes both sides of the conversation in real time, and searches your own notes to surface things worth saying — right when you need them.
If you're looking for a hosted desktop recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more.
ApiSmart unifies leading LLM, image, and video models through one OpenAI-compatible API. Use one key to switch models, simplify billing, and improve reliability with automatic failover.
Important: OpenOats records and transcribes audio from your microphone and system audio. Many jurisdictions have laws requiring consent from some or all participants before a conversation may be recorded (e.g., two-party/all-party consent states in the U.S., GDPR in the EU).
By using this software, you acknowledge and agree that:
Do not use this software to record conversations without proper consent where required by law.
The app will ask you to acknowledge these obligations before your first recording session.
Install via Homebrew:
brew tap yazinsai/openoats https://github.com/yazinsai/OpenOats
brew install --cask yazinsai/openoats/openoats
To upgrade later:
brew upgrade --cask yazinsai/openoats/openoats
Or grab the latest DMG from the Releases page.
Or build from source:
./scripts/build_swift_app.sh
Cmd+,) and pick your providers:
/v1/embeddings endpoint.md or .txt files — that's your knowledge baseThe first run downloads the local speech model (~600 MB).
qwen3:8b for suggestions, nomic-embed-text for embeddings)/v1/embeddings (llama.cpp, llamaswap, LiteLLM, vLLM, etc.)Point the app at a folder of Markdown or plain text files. That's it. OpenOats chunks, embeds, and caches them locally. When the conversation shifts, it searches your notes and only surfaces what's actually relevant.
Works well with meeting prep docs, research notes, pitch decks, competitive analysis, customer briefs — anything you'd want at your fingertips during a call.
~/Documents/OpenOats/When using cloud providers, OpenOats makes the following network requests. No audio is ever sent — only text. In fully-local mode (Ollama for both LLM and embeddings), nothing touches the network at all.
api.voyageai.com/v1/embeddings)When: Each time you index your knowledge base folder (on launch or when files change).
What is sent:
.md / .txt knowledge base files (split by markdown headings, 80–500 words each, with the header breadcrumb prepended)voyage-4-lite) and requested output dimensions (256)document)Chunks are sent in batches of 32. Only new or changed files are embedded — unchanged files use a local cache.
api.voyageai.com/v1/embeddings)When: Each time the suggestion pipeline runs (triggered by a substantive utterance from the other speaker, subject to a 90-second cooldown).
What is sent:
query)api.voyageai.com/v1/rerank)When: Immediately after step 2, if Voyage AI is the embedding provider.
What is sent:
rerank-2.5-lite)openrouter.ai/api/v1/chat/completions)When: Periodically during a session when the conversation state needs refreshing.
What is sent (as an LLM prompt):
openrouter.ai/api/v1/chat/completions)When: After the KB search returns relevant results, to decide whether a suggestion is worth showing.
What is sent (as an LLM prompt):
openrouter.ai/api/v1/chat/completions)When: Only if the surfacing gate approves (all quality scores above threshold).
What is sent (as an LLM prompt):
openrouter.ai/api/v1/chat/completions)When: When you click "Generate Notes" after a session.
What is sent (as an LLM prompt):
# Full build → sign → install to /Applications
./scripts/build_swift_app.sh
# Dev build only
cd OpenOats && swift build -c debug
# Package DMG
./scripts/make_dmg.sh
Optional env vars for code signing and notarization: CODESIGN_IDENTITY, APPLE_ID, APPLE_TEAM_ID, APPLE_APP_PASSWORD.
OpenOats/ SwiftUI app (Swift Package)
scripts/ Build, sign, and package scripts
assets/ Screenshot and app icon source
MIT
Swift
95.6%
TypeScript
2.8%
A meeting note-taker that talks back.
2,577
stars
564
commits
Swift
primary language
Sep 3, 2026
updated
A meeting note-taker that talks back.
OpenOats sits next to your call, transcribes both sides of the conversation in real time, and searches your own notes to surface things worth saying — right when you need them.
If you're looking for a hosted desktop recording API, consider checking out Recall.ai, an API that records Zoom, Google Meet, Microsoft Teams, in-person meetings, and more.
ApiSmart unifies leading LLM, image, and video models through one OpenAI-compatible API. Use one key to switch models, simplify billing, and improve reliability with automatic failover.
Important: OpenOats records and transcribes audio from your microphone and system audio. Many jurisdictions have laws requiring consent from some or all participants before a conversation may be recorded (e.g., two-party/all-party consent states in the U.S., GDPR in the EU).
By using this software, you acknowledge and agree that:
Do not use this software to record conversations without proper consent where required by law.
The app will ask you to acknowledge these obligations before your first recording session.
Install via Homebrew:
brew tap yazinsai/openoats https://github.com/yazinsai/OpenOats
brew install --cask yazinsai/openoats/openoats
To upgrade later:
brew upgrade --cask yazinsai/openoats/openoats
Or grab the latest DMG from the Releases page.
Or build from source:
./scripts/build_swift_app.sh
Cmd+,) and pick your providers:
/v1/embeddings endpoint.md or .txt files — that's your knowledge baseThe first run downloads the local speech model (~600 MB).
qwen3:8b for suggestions, nomic-embed-text for embeddings)/v1/embeddings (llama.cpp, llamaswap, LiteLLM, vLLM, etc.)Point the app at a folder of Markdown or plain text files. That's it. OpenOats chunks, embeds, and caches them locally. When the conversation shifts, it searches your notes and only surfaces what's actually relevant.
Works well with meeting prep docs, research notes, pitch decks, competitive analysis, customer briefs — anything you'd want at your fingertips during a call.
~/Documents/OpenOats/When using cloud providers, OpenOats makes the following network requests. No audio is ever sent — only text. In fully-local mode (Ollama for both LLM and embeddings), nothing touches the network at all.
api.voyageai.com/v1/embeddings)When: Each time you index your knowledge base folder (on launch or when files change).
What is sent:
.md / .txt knowledge base files (split by markdown headings, 80–500 words each, with the header breadcrumb prepended)voyage-4-lite) and requested output dimensions (256)document)Chunks are sent in batches of 32. Only new or changed files are embedded — unchanged files use a local cache.
api.voyageai.com/v1/embeddings)When: Each time the suggestion pipeline runs (triggered by a substantive utterance from the other speaker, subject to a 90-second cooldown).
What is sent:
query)api.voyageai.com/v1/rerank)When: Immediately after step 2, if Voyage AI is the embedding provider.
What is sent:
rerank-2.5-lite)openrouter.ai/api/v1/chat/completions)When: Periodically during a session when the conversation state needs refreshing.
What is sent (as an LLM prompt):
openrouter.ai/api/v1/chat/completions)When: After the KB search returns relevant results, to decide whether a suggestion is worth showing.
What is sent (as an LLM prompt):
openrouter.ai/api/v1/chat/completions)When: Only if the surfacing gate approves (all quality scores above threshold).
What is sent (as an LLM prompt):
openrouter.ai/api/v1/chat/completions)When: When you click "Generate Notes" after a session.
What is sent (as an LLM prompt):
# Full build → sign → install to /Applications
./scripts/build_swift_app.sh
# Dev build only
cd OpenOats && swift build -c debug
# Package DMG
./scripts/make_dmg.sh
Optional env vars for code signing and notarization: CODESIGN_IDENTITY, APPLE_ID, APPLE_TEAM_ID, APPLE_APP_PASSWORD.
OpenOats/ SwiftUI app (Swift Package)
scripts/ Build, sign, and package scripts
assets/ Screenshot and app icon source
MIT
Swift
95.6%
TypeScript
2.8%