9 points par medidevlab 2026-04-15 | 16 commentaires | Partager sur WhatsApp

Bonjour. Je suis étudiant en médecine et, depuis deux mois, j’apprends seul le vibe coding tout en développant une app pour la barre de menus de macOS. Je la lance aujourd’hui !

MiniAI - Ce que fait l’app

Vous pouvez sélectionner du texte n’importe où puis appuyer sur le raccourci clavier défini, et une petite fenêtre s’ouvre dans la barre de menus pour laisser l’IA vous l’expliquer. L’idée clé, c’est d’éliminer l’aller-retour vers le navigateur pour faire une recherche Google puis revenir.

Au départ, je l’ai créée parce que je trouvais pénible de chercher les termes que je ne connaissais pas en lisant des articles scientifiques, mais une fois terminée, je me suis rendu compte que je l’utilisais aussi dans plein d’autres situations, comme pour rédiger des e-mails en anglais ou lire du code.

Stack technique

  • UI: NSPanel + SwiftUI (floating window d’une app de barre de menus)
  • Réponses IA: effet de frappe en temps réel via streaming SSE
  • Backend: proxy d’API avec Supabase Edge Function (pour éviter d’embarquer la clé API dans le client)
  • Rate limiting: limitation par utilisateur basée sur PostgreSQL
  • Déploiement: signature Developer ID + notarization terminée

La partie sur laquelle j’ai passé le plus de temps pendant le développement

  1. Détection globale de sélection de texte (gestion des autorisations de l’Accessibility API)
  2. Sécurité de la clé API (au début je l’avais codée en dur côté client, je m’en suis rendu compte plus tard et j’ai tout refait)
  3. Processus de notarization (première fois pour moi, j’y ai perdu deux jours)

Je pense que ceux qui ont déjà distribué une app macOS comprendront particulièrement le point 3. Même en suivant la documentation, il y avait plusieurs étapes qui ne passaient pas du premier coup.

État actuel

  • Bêta publique, gratuit
  • Téléchargement disponible sur le site

Vos retours sont les bienvenus

  • Est-ce que l’UX du raccourci clavier est naturelle ?
  • Est-ce qu’il n’y a pas de problème sur une installation propre ?
  • Voyez-vous des points d’amélioration dans l’architecture ?
  • Des conseils de personnes ayant développé une app similaire ?

Je serais ravi d’avoir vos retours sur l’architecture ou vos galères avec la notarization macOS.

Et une dernière chose : pour celles et ceux qui ont leur activité principale à côté et développent des produits en side project,
comment décidez-vous entre « approfondir davantage » et « s’arrêter là pour l’expérience puis passer au suivant » ?

16 commentaires

 
t7vonn 2026-04-17

Bonjour, voici quelques remarques !

  • J’imagine que beaucoup d’utilisateurs Mac utilisent des outils comme Alfred / Raycast, et leur raccourci par défaut est opt + space. Je me demande si un autre raccourci par défaut ne serait pas préférable.
  • Il semble que l’application ne soit ni signée ni notarisée.
(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.  
  • Plutôt qu’une distribution en fichier dmg, ce serait bien de pouvoir l’installer via l’App Store ou Homebrew.
 
medidevlab 2026-04-18

Wow, merci beaucoup d’avoir regardé tout ça d’aussi près 🙏

  1. Raccourci clavier : oui, c’est bien ça. Le problème de conflit avec ⌥Space est
    celui qu’on nous remonte le plus souvent de la part des utilisateurs d’Alfred/Raycast.
    Nous avons bien identifié le besoin d’une fonctionnalité de configuration de raccourci personnalisé,
    et nous allons la faire remonter dans les priorités d’amélioration !

  2. Signature / notarisation : oui, actuellement l’app est signée en adhoc.
    Comme le projet en est encore à ses débuts, le coût de la notarisation nous semblait
    encore un peu lourd, donc nous l’avions mis en attente 😅
    Merci de l’avoir vérifié !

  3. Mode de distribution : nous envisageons aussi une distribution via l’App Store ou Homebrew Cask.
    Pour l’instant, nous avons d’abord publié en DMG pour aller plus vite,
    mais je pense que la direction que vous avez suggérée est la bonne,,

J’ai été touché de voir que vous aviez même vérifié codesign directement.
Merci infiniment pour l’attention et l’affection que vous portez au produit !
S’il y a à nouveau le moindre inconfort, n’hésitez surtout pas à nous le dire, c’est très encourageant 😄

 
kurthong 2026-04-16

À moins que vous ne comptiez vraiment le vendre à un niveau production, je pense que vous pourriez aussi le publier en open source sur GitHub pour recueillir des retours, non ?

 
medidevlab 2026-04-16

Merci beaucoup pour votre précieux retour !

Comme c’est mon premier projet dans ce type de business, je l’ai surtout mené pour me faire de l’expérience, mais je pense que le distribuer en open source pour que davantage de personnes puissent l’utiliser directement est aussi une très bonne idée 😁

Si je le publie en open source, vous devrez absolument me faire vos retours~~ :)

 
kurthong 2026-04-16

Le fait que ce soit open source ne vous empêche pas de le vendre. Il existe d’ailleurs pas mal d’apps qui suivent une approche à deux voies. L’open source, c’est surtout une démarche de création en commun avec d’autres développeurs intéressés par le projet, plutôt qu’avec le grand public. Si vous craignez qu’on vous le vole, vous pouvez toujours choisir une licence bien définie, mais… à l’ère de la grande IA, où les projets en clean room pullulent, je ne suis pas sûr que ça ait encore beaucoup de sens. Et si vous le passiez en open source, vous croyez vraiment qu’on se contenterait de vous faire des retours ? :)

 
medidevlab 2026-04-16

Haha, merci pour les conseils de ce développeur senior 😄
En ce moment, le monde change tellement vite que c’est vraiment difficile de s’y adapter !
Merci pour toutes ces informations, et j’espère que vous continuerez à suivre cela avec beaucoup d’intérêt à l’avenir 😁

 
ly0738 2026-04-15

De quel modèle d'IA s'agit-il ??

 
jhk0530 2026-04-15

Il est indiqué que l’API Claude est utilisée.

 
ly0738 2026-04-15

C’était pourtant clairement indiqué dans le corps du texte, et je me suis dit avec un coup de stress : « Attends, ce n’est pas moi qui ai posé la question ? », alors j’ai cherché.

J’ai passé un bon moment à fouiller le résumé, l’article original, le site et même après avoir installé le programme, sans rien trouver, avant de voir que c’était écrit dans la politique de confidentialité.
En général, on ne va pas jusqu’à éplucher la politique de confidentialité juste pour vérifier la stack technique.

La prochaine fois, je vous serais reconnaissant de bien indiquer aussi où cela est mentionné.

 
medidevlab 2026-04-15

Merci beaucoup pour vos précieux retours !

J’avais hésité à mentionner le modèle, mais je me suis dit que le grand public ne connaîtrait शायद pas bien le concept d’API, donc je ne l’avais pas mentionné.

Comme certaines personnes se posent la question, je vais le modifier.

Au fait, avez-vous essayé l’application ? J’aimerais bien savoir ce que vous en avez pensé :)

 
ly0738 2026-04-15

Ah, je l’ai dit à jhk0530.

 
ly0738 2026-04-15

Où est-il indiqué qu’ils utilisent l’API de Claude ?
Je suis allé voir l’article et le site web, mais je ne le vois pas.

 
medidevlab 2026-04-15

Bonjour ! Je suis le créateur.
J’utilise actuellement le modèle Claude Sonnet 4 !

Par la suite, je prévois d’implémenter une option permettant de choisir directement le BYOK ou d’autres modèles.

Merci de votre intérêt :)

 
ly0738 2026-04-15

Merci pour votre réponse !
J’utilisais parfois la fonction de traduction contextuelle de DeepL, mais je vais essayer ça un moment.
À l’avenir, ce serait aussi une bonne idée de prendre en charge le format https://www.openresponses.org/ pour permettre également l’utilisation de LLM locaux !

 
medidevlab 2026-04-15

Vous comptez donc surtout l’utiliser pour les fonctions de traduction !

À l’avenir, nous prévoyons aussi d’ajouter une fonction de sélection de mode afin d’aller vers une traduction un peu plus spécialisée :)

Merci également pour votre suggestion d’une méthode permettant d’utiliser un modèle local, et pas seulement des API externes ! Nous l’ajouterons à notre feuille de route pour une future implémentation.

Merci pour ce précieux retour, et si vous rencontrez le moindre inconfort ou problème, n’hésitez surtout pas à nous le faire savoir 😄

 
ly0738 2026-04-23

Je l’utilise depuis une semaine, et l’expérience est tellement bonne que je continue à m’en servir. Merci.
Ce serait encore mieux si le problème du mode de distribution des raccourcis clavier, comme l’ont mentionné d’autres personnes, pouvait être résolu ! J’ai hâte de voir la suite.