9 Punkte von medidevlab 2026-04-15 | 16 Kommentare | Auf WhatsApp teilen

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

  1. Erkennung globaler Textauswahl (Berechtigungsbehandlung für die Accessibility API)
  2. Sicherheit des API-Keys (anfangs im Client hartkodiert, später entdeckt und komplett umgebaut)
  3. 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

 
t7vonn 2026-04-17

Hallo, ich habe ein paar Anmerkungen!

  • Soweit ich weiß, nutzen viele Mac-Nutzer Tools wie Alfred oder Raycast; bei diesen Apps ist der Standard-Shortcut opt + space. Vielleicht wäre ein anderer Standard-Shortcut besser.
  • Es scheint keine Signierung/Notarisierung erfolgt zu sein.
(1) codesign  
$ codesign -dv --verbose=4 MiniAi.app  
Executable=/Users/.../Downloads/MiniAi.app/Contents/MacOS/MiniAi  
Identifier=com.miniai.app  
Format=app bundle with Mach-O thin (arm64)  
CodeDirectory v=20400 size=8551 flags=0x2(adhoc) hashes=257+7 location=embedded  
VersionPlatform=1  
VersionMin=917504  
VersionSDK=1704960  
Hash type=sha256 size=32  
CandidateCDHash sha256=c60ed7e37e533d09cf5365d97bf6428c8d42f2dd  
CandidateCDHashFull sha256=c60ed7e37e533d09cf5365d97bf6428c8d42f2dd94cdca992cd3f61e8e6554a3  
Hash choices=sha256  
CMSDigest=c60ed7e37e533d09cf5365d97bf6428c8d42f2dd94cdca992cd3f61e8e6554a3  
CMSDigestType=2  
Executable Segment base=0  
Executable Segment limit=1556480  
Executable Segment flags=0x1  
Page size=16384  
CDHash=c60ed7e37e533d09cf5365d97bf6428c8d42f2dd  
Signature=adhoc  
Info.plist entries=24  
TeamIdentifier=not set  
Sealed Resources version=2 rules=13 files=7  
Internal requirements count=0 size=12  
  
(2) gatekeeper  
$ spctl -a -vvv -t execute MiniAi.app  
MiniAi.app: rejected  
  
(3) Notary staple  
$ xcrun stapler validate MiniAi.dmg  
Processing: /Users/.../Downloads/MiniAi.dmg  
MiniAi.dmg does not have a ticket stapled to it.  
  
$ xcrun stapler validate MiniAi.app  
Processing: /Users/.../Downloads/MiniAi.app  
MiniAi.app does not have a ticket stapled to it.  
  • Statt die Datei als .dmg zu verteilen, wäre es schön, wenn die Installation über den App Store oder Homebrew möglich wäre.
 
medidevlab 2026-04-18

Wow, dass Sie sich das so genau angesehen haben – vielen Dank 🙏

  1. 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!

  2. 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!

  3. 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 codesign angesehen 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 😄

 
kurthong 2026-04-16

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.

 
medidevlab 2026-04-16

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~~ :)

 
kurthong 2026-04-16

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

 
medidevlab 2026-04-16

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 😁

 
ly0738 2026-04-15

Welches KI-Modell ist das??

 
jhk0530 2026-04-15

Es heißt, dass die Claude-API verwendet wird.

 
ly0738 2026-04-15

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.

 
medidevlab 2026-04-15

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 :)

 
ly0738 2026-04-15

Ah, ich habe es jhk0530 bereits gesagt.

 
ly0738 2026-04-15

Wo steht, dass die Claude-API verwendet wird?
Ich habe im Haupttext und auf der Website nachgesehen, konnte es aber nicht finden.

 
medidevlab 2026-04-15

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 :)

 
ly0738 2026-04-15

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!

 
medidevlab 2026-04-15

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 😄

 
ly0738 2026-04-23

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.