Hallo. Ich studiere Medizin und habe mir seit vor zwei Monaten nebenbei Vibecoding selbst beigebracht und dabei eine macOS-Menüleisten-App gebaut. Heute veröffentliche ich sie!
MiniAI - Was die App macht
Man kann überall Text markieren und ein festgelegtes Tastenkürzel drücken, dann erscheint in der Menüleiste ein kleines Fenster und die KI erklärt den Inhalt. Der Kern ist, dass der Umweg entfällt, erst in den Browser zu wechseln, zu googeln und dann wieder zurückzukehren.
Ursprünglich habe ich sie gebaut, weil es mich beim Lesen von Papers genervt hat, unbekannte Begriffe nachzuschlagen. Als die App dann fertig war, habe ich gemerkt, dass ich sie auch in vielen anderen Situationen nutze, etwa beim Schreiben englischer E-Mails oder beim Lesen von Code.
Tech-Stack
- UI: NSPanel + SwiftUI (floating window einer Menüleisten-App)
- KI-Antworten: SSE-Streaming mit Echtzeit-Tippeffekt
- Backend: Supabase Edge Function als API-Proxy (damit der API-Key nicht im Client landet)
- Rate limiting: PostgreSQL-basierte Begrenzung pro Nutzer
- Deployment: mit Developer-ID signiert und Notarisierung abgeschlossen
Der Teil, an dem ich bei der Entwicklung am längsten festhing
- Erkennung globaler Textauswahl (Berechtigungsbehandlung für die Accessibility API)
- Sicherheit des API-Keys (anfangs im Client hartkodiert, später entdeckt und komplett umgebaut)
- Notarisierungsprozess (mein erstes Mal, zwei Tage daran verloren)
Besonders bei Punkt 3 werden wahrscheinlich alle mitfühlen, die schon einmal eine macOS-App verteilt haben. Selbst wenn man die Dokumentation befolgt, gibt es mehrere Stellen, die nicht auf Anhieb funktionieren.
Aktueller Stand
- Beta veröffentlicht, kostenlos
- Download über die Website
Feedback willkommen
- Wirkt die Shortcut-UX natürlich?
- Gibt es bei einer sauberen Neuinstallation irgendwelche Probleme?
- Seht ihr Verbesserungspotenzial in der Architektur?
- Tipps von Leuten, die schon ähnliche Apps entwickelt haben
Ich freue mich über Hinweise zur Architektur oder Erfahrungsberichte zu macOS-Notarisierung und typischen Stolperfallen.
Und noch eine Sache: An die Entwickler unter euch, die neben ihrem Hauptjob noch nebenbei Produkte bauen — wie trefft ihr die Entscheidung zwischen
"Soll ich da tiefer einsteigen?" vs. "Als Erfahrung abhaken und zum Nächsten weiterziehen"?
16 Kommentare
Hallo, ich habe ein paar Anmerkungen!
opt + space. Vielleicht wäre ein anderer Standard-Shortcut besser..dmgzu verteilen, wäre es schön, wenn die Installation über den App Store oder Homebrew möglich wäre.Wow, dass Sie sich das so genau angesehen haben – vielen Dank 🙏
Tastenkürzel: Genau. Von Alfred-/Raycast-Nutzern hören wir am häufigsten vom Konflikt mit
⌥Space.Wir haben die Möglichkeit für benutzerdefinierte Tastenkürzel auf dem Schirm
und werden sie auf die Prioritätenliste für Verbesserungen setzen!
Signierung/Beglaubigung: Ja, aktuell ist die App ad-hoc-signiert.
Da sich das Projekt noch in einem frühen Entwicklungsstadium befindet,
waren die Kosten für die Notarisierung bisher noch etwas belastend, deshalb haben wir das zurückgestellt 😅
Danke, dass Sie das geprüft haben!
Distributionsweg: Wir ziehen auch eine Verteilung über den App Store oder Homebrew Cask in Betracht.
Aktuell haben wir der schnellen Veröffentlichung wegen zunächst per DMG ausgeliefert,
aber ich denke, die von Ihnen genannte Richtung ist die richtige.
Dass Sie sich sogar direkt
codesignangesehen haben, hat mich wirklich beeindruckt.Vielen Dank, dass Ihnen das Produkt so am Herzen liegt!
Wenn es noch weitere Unannehmlichkeiten gibt, sagen Sie bitte unbedingt Bescheid – das ist für uns eine große Unterstützung 😄
Wenn Sie es nicht speziell auf Production-Niveau verkaufen wollen, wäre es meiner Meinung nach auch in Ordnung, es als Open Source auf GitHub zu veröffentlichen und dort Feedback einzuholen.
Vielen Dank für Ihr wertvolles Feedback!
Da dies mein erstes entsprechendes Business ist, habe ich es zunächst als Erfahrung angegangen, aber ich denke, es ist auch eine gute Idee, es als Open Source zu veröffentlichen, damit viele es direkt selbst nutzen können 😁
Falls ich es als Open Source veröffentliche, müssen Sie mir unbedingt Feedback geben~~ :)
Dass es Open Source ist, heißt nicht, dass Sie es nicht verkaufen können. Es gibt etliche Apps, die zweigleisig fahren. Open Source ist weniger etwas für die breite Öffentlichkeit als vielmehr ein Konzept, bei dem man gemeinsam mit anderen Entwickler:innen baut, die am Projekt interessiert sind. Falls Sie sich Sorgen machen, dass es jemand mitnimmt, können Sie natürlich eine klare Lizenz wählen, aber ... im großen AI-Zeitalter, in dem Clean-Room-Projekte überall aus dem Boden schießen, frage ich mich, wie viel das noch bedeutet. Wenn Sie es als Open Source zurückgeben, werde ich dann etwa nur Feedback geben? haha
Haha, vielen Dank für den Rat, Senior-Entwickler.
In letzter Zeit verändert sich die Welt so schnell, dass es wirklich schwer ist, Schritt zu halten!
Vielen Dank für die vielen Informationen, und ich würde mich freuen, wenn Sie auch in Zukunft weiterhin Interesse zeigen 😁
Welches KI-Modell ist das??
Es heißt, dass die Claude-API verwendet wird.
Es stand ganz offen im Text, und ich habe erschrocken nachgeschaut, ob ich vielleicht doch nicht das gefragt hatte.
Ich habe die Zusammenfassung, den Originaltext, die Website und nach der Installation des Programms lange nach dem Inhalt gesucht, aber nichts gefunden — am Ende stand es in der Datenschutzerklärung.
Normalerweise durchforstet man nicht extra die Datenschutzerklärung, nur um den Tech-Stack zu überprüfen.
Ich wäre Ihnen dankbar, wenn Sie beim nächsten Mal auch angeben könnten, wo das steht.
Vielen Dank für das wertvolle Feedback!
Ich hatte überlegt, einen Hinweis zum Modell zu schreiben, habe ihn aber weggelassen, weil viele Leute mit dem Konzept einer API vermutlich nicht vertraut sind.
Da es dazu offenbar Fragen gibt, werde ich das entsprechend anpassen.
Haben Sie die App vielleicht schon ausprobiert? Ich bin neugierig, wie sie Ihnen gefallen hat :)
Ah, ich habe es jhk0530 bereits gesagt.
Wo steht, dass die Claude-API verwendet wird?
Ich habe im Haupttext und auf der Website nachgesehen, konnte es aber nicht finden.
Hallo! Ich bin der Entwickler.
Ich verwende derzeit das Modell Claude Sonnet 4!
Später plane ich, eine Option zu implementieren, mit der man BYOK oder auch andere Modelle direkt auswählen kann.
Vielen Dank für Ihr Interesse :)
Danke für die Antwort!
Ich habe bisher oft die Popup-Übersetzungsfunktion von DeepL verwendet, aber damit werde ich es wohl mal kurz ausprobieren.
Später wäre es vielleicht auch gut, das Format von https://www.openresponses.org/ zu unterstützen, damit man es öffnen und auch lokale LLMs verwenden kann!
Sie werden die App also voraussichtlich hauptsächlich für Übersetzungen verwenden!
Wir planen künftig auch eine Funktion zur Modusauswahl einzubauen, damit wir in Richtung noch stärker spezialisierter Übersetzungsfunktionen weitergehen können :)
Vielen Dank auch für Ihren Vorschlag, neben externen APIs auch lokale Modelle nutzen zu können! Ich werde das in die zukünftigen Implementierungspläne aufnehmen.
Vielen Dank für Ihr wertvolles Feedback, und falls Ihnen irgendetwas Unbequemes oder Störendes auffällt, lassen Sie es uns bitte unbedingt wissen 😄
Ich habe es eine Woche lang benutzt, und die Nutzungserfahrung ist so gut, dass ich es weiterhin verwende. Vielen Dank.
Wenn nur noch das Problem mit der Verteilung der Tastenkürzel gelöst wird, wie es auch andere erwähnt haben, wäre es noch besser! Ich bin gespannt.