Privacy-first Diktat für macOS — Push-to-talk, 100 % on-device, MIT.
Taste halten, sprechen, loslassen: der fertige Text landet in der fokussierten App.
Kein Audio, kein Text verlässt den Rechner (Nachweis).
Das Alleinstellungsmerkmal neben Open Source: der Cleanup-Modus LLM-optimiert macht aus gesprochenem Rambling einen fertigen, strukturierten Prompt für Claude Code, Codex & Co. — statt Gedanken mühsam in Prompt-Form zu tippen, sprichst du sie einfach:
gesprochen: „ähm also die config, wenn da ein feld fehlt soll er nicht crashen sondern ähm defaults nehmen, und schreib da bitte auch n test für"
eingefügt: „Ergänze robustes Config-Parsing: fehlende Felder dürfen nicht crashen, sondern fallen auf Defaults zurück. Schreibe einen Test dafür."
Alles lokal — auch dein Prompt-Rohmaterial geht an keine Cloud.
- Push-to-talk systemweit: globale Taste (Default Fn/🌐) halten und sprechen — funktioniert in jeder App, die Texteingabe annimmt.
- Lokale Spracherkennung (de/en): Parakeet TDT 0.6b v3 via sherpa-onnx.
- Cleanup-Modi (gemma4:e2b, eingebettetes llama.cpp — kein Server, kein
Daemon):
Roh(Transkript unverändert),Geschäftlich(formal, entfernt unsichere Floskeln),Natürlich(nur Füllwörter/Interpunktion, dein Ton bleibt),LLM-optimiert(Voice-to-Prompt, s. o.). Ausfallsicher: fällt das LLM aus, wird das rohe Transkript eingefügt. - Eigenes Vokabular: deterministische Korrektur per Kölner Phonetik (z. B. »Claude CLI«), abschaltbar.
- Siri-Style-Overlay: Leuchtspur-Wellen zeigen Aufnahme und Pegel; Farben/Tempo konfigurierbar.
- Robust: Nutzer-Clipboard wird gesichert und wiederhergestellt; keine Pipeline-Stufe bricht hart ab.
- Menüleisten-App mit Einstellungen (PTT-Taste, Mikrofon, Cleanup-Modus, Login-Start).
Es gibt bewusst kein fertiges Binary. Du baust talker aus dem Quellcode —
und weißt damit exakt, was auf deinem Mikrofon lauscht: jede Zeile ist
auditierbar (MIT), der Egress-Nachweis steht in
docs/security-audit.md. Der Build ist ein
Einzeiler:
make install # baut talker.app und installiert nach ~/Applications- Voraussetzungen (frischer Mac):
- macOS 13+, Apple Silicon.
- Xcode Command Line Tools:
xcode-select --install(liefertclang,git). - Rust via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh— installiertcargo.rust-toolchain.tomlzieht dann automatisch die gepinnte Version (1.94.1) inkl.rustfmt/clippy. - cmake:
brew install cmake— baut das eingebettete llama.cpp (llama-cpp-2). - Netzwerk beim ersten Build:
sherpa-rslädt vorgebaute onnxruntime-/sherpa-Dylibs.
- Modelle laden nach
~/Library/Application Support/talker/models/(talker bundlet keine Modelle; sie stehen unter eigenen Lizenz-Terms — siehedocs/licensing.md):sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8/— Download (entpacken)gemma-4-E2B-it-Q8_0.gguf— vonggml-org/gemma-4-E2B-it-GGUF(Hugging Face)
- Signatur-Zertifikat anlegen (einmalig):
make cert— sonst verfallen die Permissions bei jedem Update (siehe Known Issue unten). - Bauen & installieren:
make install(s. o.). - Permissions erteilen (einmalig, siehe unten) — dann PTT-Taste halten und lossprechen.
make verify # Build + Tests + Clippy (vor jedem Commit)
make run # startet als Menüleisten-App aus dem Quellbaum
make stress # Cleanup-Qualitäts-Testreihe
make help # alle KommandosEin pre-commit-Hook (cargo-husky, installiert sich beim ersten cargo test)
erzwingt fmt, Clippy und die Unit-Tests — Details in
CONTRIBUTING.md. Contributions willkommen.
Architektur & Entscheidungen: docs/adr/, Begriffe: CONTEXT.md.
Wichtig: Das Bundle wird ersetzt, nie überkopiert — In-Place-Kopieren macht die Code-Signatur aus Kernel-Sicht ungültig (App startet nicht mehr).
Das Bundle ist lokal signiert (kein Developer-Account, keine Notarisierung —
bewusst: source-first, siehe oben) und nur für den eigenen Mac gedacht.
Vor dem ersten make install einmalig make cert ausführen — das legt ein
selbstsigniertes Codesign-Zertifikat talker-dev im Login-Schlüsselbund an.
Beim ersten Start:
- Bedienungshilfen erlauben (Systemeinstellungen → Datenschutz & Sicherheit → Bedienungshilfen → talker) — für den globalen Hotkey und das Einfügen.
- Mikrofon erlauben — macOS fragt beim ersten Diktat.
- Optional in den Einstellungen (Menüleiste → Einstellungen…): „Beim Login starten" aktivieren.
Hinweis: Nach dem Erteilen der Bedienungshilfen-Permission talker neu starten. Für Accessibility gibt es keinen Info.plist-Usage-String (macOS kennt dafür keinen Key); der Hinweis kommt aus dem App-Onboarding.
macOS bindet die erteilten Rechte (Bedienungshilfen, Mikrofon) an die
Code-Signatur der App. Ohne das talker-dev-Zertifikat signiert der Build
ad-hoc — dann ist talker für macOS nach jedem make install eine „neue"
App und alle Rechte sind weg (der Eintrag in den Systemeinstellungen wirkt
gesetzt, ist aber tot: einmal löschen und neu erteilen).
Workaround (einmalig pro Mac): make cert, danach make install. Nach
diesem einen Wechsel der Signatur die Rechte ein letztes Mal neu erteilen —
ab dann überleben sie jedes Update, weil Bundle-ID und Zertifikat stabil
bleiben. Alternative von Hand: Schlüsselbundverwaltung → Zertifikatsassistent →
„Ein Zertifikat erstellen…" → Name talker-dev, Typ Codesignierung.
~/Library/Application Support/talker/config.toml — wird von den Einstellungen
geschrieben (PTT-Taste, Mikrofon, Cleanup an/aus, STT-Modellpfad).
Code: MIT © 2026 René Leban. Abhängigkeiten: THIRD-PARTY.html.
Die Modelle sind nicht Teil dieses Repos und stehen unter eigenen Terms
(Gemma Terms of Use bzw. CC-BY-4.0) — Details in
docs/licensing.md.
Sicherheitslücken bitte privat melden — siehe SECURITY.md.