Soundbite ist eine Desktop-App zum Aufnehmen von Sprachnotizen, Echtzeit-Transkription und KI-gestützten Anreicherung – dein „Second Brain“ für Voice-to-Text.
Soundbite ermöglicht es, per Mikrofon zu sprechen, den Text live zu transkribieren und anschließend mit Claude zu strukturieren und zu erweitern. Die App läuft als native Desktop-Anwendung (macOS & Windows) mit Tauri, bietet einen konfigurierbaren globalen Hotkey und speichert Notizen sowie Einstellungen lokal.
Kernfunktionen:
- Sprachnotizen aufnehmen mit Echtzeit-Transkription
- Anreicherung des Transkripts durch Claude (Zusammenfassung, Struktur, Kontext)
- Notizen-Übersicht und -Detailansicht
- Titel nachträglich bearbeiten: In der linken Spalte per Doppelklick auf den Chat-Titel den angezeigten Namen ändern (Enter oder Klick außerhalb speichert, Escape bricht ab)
- Konfigurierbarer Hotkey (z. B. Ctrl+Shift+V) zum Starten der Aufnahme – auch wenn die App im Hintergrund ist
- Einstellungen: API-Keys, Speicherort, Hotkey, Claude-Modell
| Schicht | Technologie |
|---|---|
| Desktop-Hülle | Tauri 2 (Rust) |
| Frontend | React 18, Vite 5 |
| Styling | Tailwind CSS |
| Icons | Lucide React |
-
ElevenLabs
- Speech-to-Text (Batch): Transkription der aufgezeichneten Audio-Datei nach dem Stoppen.
- Speech-to-Text Realtime: Live-Transkription während der Aufnahme per WebSocket (
scribe_v2/scribe_v2_realtime). - API: REST für Batch, WebSocket für Realtime; API-Key wird in den Einstellungen hinterlegt.
-
Anthropic Claude
- Text-Anreicherung: Das Transkript wird an die Messages API gesendet; Claude erstellt eine Zusammenfassung und bereichert den Inhalt (Struktur, Kontext).
- Modelle: Konfigurierbar (z. B. Claude Sonnet 4.5, 3.5 Sonnet, Haiku); Fallback auf andere Modelle bei Fehlern.
- Anbindung: Direkte REST-Calls über einen Vite-Proxy (
/api/anthropic→api.anthropic.com), um CORS zu umgehen.
soundbite/
├── src/ # Frontend (React)
│ ├── App.jsx # Routing Onboarding / Dashboard / Settings
│ ├── Dashboard.jsx # Aufnahme, Notizenliste, Chat-Ansicht
│ ├── Onboarding.jsx # Ersteinrichtung (API-Keys, Speicherort, Hotkey)
│ ├── Settings.jsx # Einstellungen
│ ├── components/ # z. B. HotkeyInput
│ └── utils/ # api.js, storage.js, realtimeTranscription.js, …
├── src-tauri/ # Tauri (Rust)
│ ├── src/lib.rs # Plugins (Dialog, Global Shortcut), Command für macOS-Bedienungshilfen
│ ├── capabilities/ # Berechtigungen (Fenster, Dialog, Global Shortcut)
│ └── tauri.conf.json # App-Metadaten, Build, Bundle
├── vite.config.js # Vite + Proxy für Anthropic
└── package.json
- Einstellungen & Notizen: Persistenz im localStorage (im Tauri-WebView pro App-Instanz).
- Aufnahme: Mikrofon → MediaRecorder + ElevenLabs Realtime WebSocket → Transkript.
- Anreicherung: Transkript → Anthropic Messages API (per Proxy) → angereicherter Markdown-Text.
- Hotkey: Tauri Plugin „global-shortcut“ registriert z. B.
Ctrl+Shift+V/Cmd+Shift+V; bei Druck: Fenster in den Vordergrund + Start der Aufnahme.
- Node.js (LTS, z. B. 18 oder 20)
- Rust (z. B. über rustup)
- npm (mit Node mitgeliefert)
-
Repository klonen
git clone https://github.com/<dein-username>/soundbite.git cd soundbite
-
Abhängigkeiten installieren
npm install
-
App im Entwicklungsmodus starten
npm run tauri dev
Startet Vite (Frontend) und öffnet das Soundbite-Fenster.
-
Ersteinrichtung in der App
- Onboarding: ElevenLabs- und Anthropic-API-Keys eintragen, optional Speicherort und Hotkey setzen.
- Keys werden nur lokal gespeichert und für die Aufrufe an ElevenLabs bzw. Anthropic verwendet.
npm run tauri build- macOS: z. B.
.appund.dmguntersrc-tauri/target/release/bundle/ - Windows: Auf Windows (oder per CI) bauen, um eine
.msi-Installer zu erzeugen.
Ausführliche Build-Optionen (inkl. GitHub Actions für Mac + Windows): siehe BUILD.md.
Damit der globale Hotkey funktioniert, muss Soundbite unter Systemeinstellungen → Datenschutz & Sicherheit → Bedienungshilfen aktiviert sein. In der App unter Einstellungen → Tastenkürzel gibt es einen Hinweis und einen Button, der direkt dorthin führt. Weitere Details: TAURI-SETUP.md.
| Thema | Entscheidung | Begründung |
|---|---|---|
| Desktop-Framework | Tauri 2 | Kleiner Footprint, Rust-Backend, ein Codebase für macOS und Windows, Zugriff auf Systemfunktionen (Fenster, Dialog, globaler Shortcut). |
| Frontend | React + Vite | Bewährter Stack, schnelles Dev-Setup, gute DX; Vite-Proxy für Anthropic ohne eigenes Backend. |
| Kein eigenes Backend | API-Calls aus dem Frontend | Einfacherer Aufbau; API-Keys liegen nur im Frontend (localStorage). Für Mehrnutzer oder zentrale Speicherung wäre später ein Backend nötig. |
| Persistenz | localStorage | Ausreichend für eine lokale Single-User-App; Daten bleiben im Tauri-WebView erhalten. Persistenz des Speicherortes (Ordner) ist konfigurierbar, physische Dateien auf Disk werden aktuell nicht geschrieben. |
| Hotkey | Tauri Plugin „global-shortcut“ | Ermöglicht Aufnahme-Start von überall; Format-Anpassung (z. B. ctrl+shift+KeyV / super+shift+KeyV) für Kompatibilität mit der global-hotkey-Crate. |
| Hotkey-Eingabe | Eigene Komponente „Tasten drücken“ | Nutzer wählt die Kombination durch Drücken statt manuelles Tippen; weniger Tippfehler, klare UX. |
| macOS Bedienungshilfen | Hinweis + Command zum Öffnen der Systemeinstellungen | Globale Shortcuts unter macOS erfordern diese Berechtigung; direkter Link reduziert Abbrüche bei der Einrichtung. |
| Anthropic-Anbindung | Proxy in Vite | CORS-Vorgaben von Anthropic; Proxy nur in Dev. Für gebaute Tauri-App können Requests je nach Konfiguration weiter über den Proxy oder später über ein kleines Backend laufen. |
| UI | Tailwind + Lucide | Schnelles, konsistentes Styling ohne große Design-Bibliothek; Lucide für einheitliche Icons. |
- BUILD.md – Build und GitHub Actions (Mac/Windows)
- TAURI-SETUP.md – Tauri-Details, Hotkey (macOS), optionale Erweiterungen
- SCREENS.md – Beschreibung der Screens und Abläufe