Plugin-System
Plugins erweitern ReadAware mit neuen Aktionen, neuen Seiten und — am wichtigsten — neuen Werkzeugen für den Lese-Assistenten. Ein Plugin ist ein kleines JavaScript-Modul; seine Oberfläche wird immer vom eigenen Design-System der App gerendert, sodass Plugin-Features nativ aussehen und sich so anfühlen.
Was ein Plugin beitragen kann
- Auswahlaktionen — Einträge im Textauswahl-Menü des Readers. Ein Wort an Anki senden, eine Passage übersetzen, ein Zitat irgendwo speichern.
- Kopfleisten-Buttons — Icon-Buttons in der Kopfleiste des Readers oder Regals, die ein Popover öffnen — oder beim Regal eine ganze Seite.
- Befehle — Einträge in der Befehlspalette. Jede Plugin-Aktion ist dort automatisch erreichbar; explizite Befehle fügen weitere hinzu.
- Agenten-Werkzeuge — Funktionen, die der Lese-Assistent während des Chats aufrufen kann. Dies ist der Erweiterungspunkt mit dem größten Potenzial: Ein Plugin kann dem Assistenten erlauben, dein Anki-Deck, deinen RSS-Backlog oder jeden Dienst, den du nutzt, abzufragen.
- Inhaltsanbieter — virtuelle Bücher, deren Kapitel das Plugin auf Anfrage liefert. Ein RSS-Feed kann auf deinem Regal stehen und wie jedes Buch gelesen, annotiert und besprochen werden.
- Vorlesestimmen — TTS-Engines für das Vorlesen des Readers. Das Plugin synthetisiert Audio; die App besitzt die Wiedergabe und fällt bei einem fehlgeschlagenen Aufruf auf die Systemstimme zurück.
- Einstellungen und Zeitpläne — deklarierte Einstellungen werden zur eigenen Sektion des Plugins in den Einstellungen (API-Schlüssel inklusive, verschlüsselt gespeichert), und deklarierte Zeitpläne führen wiederkehrende Arbeit aus, während die App offen ist.
Plugins wirken systembedingt nativ
Plugins rendern niemals eigenes HTML. Sie deklarieren Ansichten aus einem kleinen Vokabular — Markdown, Listen, Formulare und ein paar strukturierte Blöcke — und die App rendert sie mit ihren eigenen Komponenten. Plugin-Autoren geben die Kontrolle über Pixel auf und bekommen dafür null Design-Arbeit und eine dauerhaft konsistente App.
Das Vertrauensmodell
Plugins laufen innerhalb der App im selben JavaScript-Kontext — wie Obsidian, und anders als in einer Browser-Erweiterungs-Sandbox. Zwei ehrliche Schutzebenen greifen:
- Berechtigungen — das Manifest eines Plugins deklariert, was es benutzt (Netzwerk, Lesedaten, KI, Zwischenablage, …), und die API legt nur frei, was deklariert wurde. Das schützt vor versehentlichen Übergriffen.
- Die Installation ist die Vertrauensentscheidung. Bevor irgendetwas kopiert oder ausgeführt wird, zeigt die App in einfacher Sprache genau, welche Berechtigungen das Plugin verlangt, und wartet auf deine Zustimmung. Installiere Plugins so, wie du Software installieren würdest.
Die Architektur der App begrenzt den Schaden: Der Plugin-Speicher liegt unter eigenem Namensraum im Datenverzeichnis der App, und die Desktop-Shell gewährt keinen beliebigen Dateisystemzugriff.
Plugins installieren
- Marktplatz — Einstellungen → Plugins → Marktplatz listet Community-Plugins aus der öffentlichen Registry; die Installation ist ein Klick — die Berechtigungsübersicht kommt zuerst.
- Aus einem Ordner — Einstellungen → Plugins installiert jeden lokalen Plugin-Ordner. Das ist der Entwicklungs-Loop: Zeig auf dein Arbeitsverzeichnis und installiere neu, um Änderungen zu übernehmen.
Du bestimmst das Layout
Plugins bringen Fähigkeiten mit; du entscheidest, wo Buttons leben. Einstellungen → Anpassen ordnet jede Oberfläche (Regal-Kopfleiste, Reader-Kopfleiste, Auswahlmenü): Zieh Einträge zwischen der sichtbaren Reihe und dem Überlaufmenü hin und her, sortiere sie um oder setze sie auf die Standardwerte zurück. Neue Plugin-Aktionen landen leise im Überlaufmenü — und alles ist immer über die Befehlspalette erreichbar.
Vorlesen mit jeder TTS-Stimme
Das mitgelieferte TTS Voices-Plugin leitet das Vorlesen durch die Engine deiner Wahl — ElevenLabs, Fish Audio, OpenAI oder jeden OpenAI-kompatiblen Endpunkt (Kokoro, LocalAI, Edge TTS-Bridges…). Alles lebt in Einstellungen → TTS Voices: Wähle einen Anbieter, und seine Felder erscheinen — API-Schlüssel gehen direkt in den verschlüsselten Secret-Store, und wo der Anbieter Stimmen aufzählen kann, wird das Stimmen-Feld zur Liste (trage sonst selbst einen Namen ein).
Ein beliebtes kostenloses Setup sind Microsofts Edge-Neural-Stimmen über openai-edge-tts, ein kleiner lokaler Server, der die OpenAI-Audio-API spricht:
- Führe den Server lokal aus — zum Beispiel
docker run -d -p 5050:5050 travisvn/openai-edge-tts(standardmäßig ohne API-Schlüssel). - Setze in Einstellungen → TTS Voices den Anbieter auf Benutzerdefiniert / lokal (OpenAI-kompatibel) und den Endpunkt auf
http://127.0.0.1:5050/v1/audio/speech. - Wähle eine Stimme aus der Liste — die App liest den Katalog des Servers, sodass das vollständige Edge-Set (z. B.
zh-CN-XiaoxiaoNeural,en-US-AriaNeural) neben den OpenAI-Stil-Aliasen erscheint.
Öffne dann ein Buch und starte das Vorlesen: Sätze streamen durch die gewählte Stimme, der nächste wird vorgeladen, während der aktuelle läuft, und jeder fehlgeschlagene Aufruf fällt auf die Systemstimme zurück, statt das Lesen zu stoppen.
Ein Plugin schreiben
Ein Plugin ist ein Ordner mit einer manifest.json und einer einzigen main.js. Die API-Referenz deckt den ganzen Vertrag ab, und Veröffentlichen zeigt, wie du es in den Marktplatz bringst.