macOS natif · Voix universelle · Local-first

    Pressay

    Maintenir, parler, relâcher — pour écrire depuis n’importe quelle application.

    Pressay transforme la voix en texte depuis n’importe quelle application macOS. Sa première version se concentre sur une dictée fiable avec détection locale du silence, historique chiffré et clé OpenAI personnelle ; les modes de transformation et les commandes contrôlées seront ajoutés progressivement.

    Téléchargement bientôt disponibleCode source
    Role
    Conception produit, UX macOS, architecture et développement Swift en solo
    Period
    Release publique 2026
    Status
    Release candidate 1.0.0 · téléchargement bientôt disponible
    Pressay — interface principale

    Version publique 1.0.0

    Installer Pressay

    macOS 14+ · Intel et Apple Silicon

    Historique optionnel chiffré sur le Mac, clé API dans le Trousseau et aucune télémétrie envoyée à Yodev.

    Le téléchargement est gratuit. Les appels à l’API peuvent être facturés directement par OpenAI.

    1. 1Télécharger Pressay.dmg depuis cette page.
    2. 2Ouvrir le DMG et glisser Pressay dans Applications.
    3. 3Lancer Pressay puis accorder Microphone et Accessibilité.
    4. 4Ajouter sa clé API OpenAI personnelle dans les réglages.

    Preuves vérifiables

    arm64 + x86_64

    binaire universel

    Apple Silicon et Mac Intel

    macOS 14+

    compatibilité

    Sonoma ou version ultérieure

    AES-256-GCM

    historique local

    Optionnel et à rétention configurable

    0

    télémétrie Yodev

    Aucun profil système envoyé avec les mises à jour

    Lecture des chiffres : La compatibilité et les garanties décrivent la configuration Release auditée. Le CTA restera inactif jusqu’à la première GitHub Release notarialisée.

    Contexte et rôle

    Le geste de base est volontairement immédiat : maintenir Fn/Globe, parler puis relâcher pour écrire là où se trouve le curseur.

    L’interaction doit rester invisible jusqu’au moment utile : l’app vit dans la barre de menu, démarre sur Fn/Globe et restitue le presse-papiers après l’insertion.

    La vision va au-delà de la dictée — transformer une sélection et préparer des actions — mais chaque capacité ne sera exposée qu’une fois son parcours complet réellement fonctionnel.

    Contraintes retenues

    • Fonctionner sur les Mac Intel et Apple Silicon capables d’exécuter macOS 14+.
    • Ne jamais envoyer d’audio lorsqu’aucune voix n’est détectée localement.
    • Stocker la clé API dans le Trousseau et l’historique optionnel dans un fichier local chiffré.
    • Conserver la cible d’insertion même si l’utilisateur démarre une nouvelle dictée.
    • Distribuer des mises à jour complètes signées sans télémétrie ni profil système.

    Décisions et options rejetées

    DECISION 01

    Un raccourci modificateur natif

    La dictée doit démarrer sans voler le focus ni imposer une fenêtre flottante permanente.

    Choix
    Fn/Globe, Option droite ou Commande droite déclenchent un mode maintenir ou bascule depuis la barre de menu.
    Rejeté
    Une combinaison globale complexe ou un champ de saisie propre à l’application.
    Compromis
    Les permissions Microphone et Accessibilité doivent être expliquées clairement au premier lancement.
    DECISION 02

    Une clé OpenAI appartenant à l’utilisateur

    Un backend Yodev ajouterait comptes, facturation, rétention et responsabilités opérationnelles.

    Choix
    La clé personnelle reste dans le Trousseau macOS et authentifie directement la transcription OpenAI.
    Rejeté
    Un proxy mutualisé avec abonnement Yodev.
    Compromis
    L’utilisateur gère sa facturation OpenAI, mais Yodev ne reçoit ni audio ni texte.
    DECISION 03

    DMG Developer ID et Sparkle

    Un ZIP non notarialisé déclenche des avertissements et ne fournit aucun chemin de mise à jour fiable.

    Choix
    Un DMG universel notarialisé, signé Developer ID et référencé par un appcast Sparkle Ed25519.
    Rejeté
    Un binaire ad hoc à ouvrir par contournement Gatekeeper.
    Compromis
    La publication exige un compte Apple Developer et une chaîne de secrets CI protégée.

    Architecture du parcours

    1. 01

      Raccourci global

      Écoute de Fn/Globe ou du modificateur droit sans prendre le focus.

    2. 02

      Capture locale

      Audio temporaire et détection de voix avant tout appel réseau.

    3. 03

      Transcription

      Envoi direct à OpenAI avec langue, modèle et vocabulaire actifs.

    4. 04

      Insertion sûre

      Retour à l’application cible, collage et restauration conditionnelle du presse-papiers.

    5. 05

      Mise à jour

      DMG complet validé par Sparkle, Ed25519, Developer ID et Gatekeeper.

    Qualité et vérifications

    • Tests de migration des préférences, de la clé API et de la clé d’historique depuis l’ancienne identité.
    • Migration idempotente : les valeurs actuelles ne sont jamais écrasées et une erreur Keychain peut être rejouée.
    • Suite Xcode, analyse statique et archive Release universelle intégrées au pipeline.
    • Signature profonde de l’app et de Sparkle, notarisation, agrafage et évaluation Gatekeeper avant publication.
    • DMG monté automatiquement pour vérifier l’app, le lien Applications et la somme SHA-256.
    Pressay — vue produit

    Ce qui est réellement livré

    • Une dictée Fn/Globe disponible depuis toute application macOS.
    • Deux modèles de transcription, langue et profils de vocabulaire configurables.
    • Un historique local optionnel chiffré avec rétention de 24 heures, 7 jours ou 30 jours.
    • Une file de transcriptions annulable qui conserve chaque application cible.
    • Une chaîne de release reproductible produisant DMG, checksum et appcast.

    Limites assumées

    • Une clé API OpenAI personnelle est requise et son utilisation peut être facturée par OpenAI.
    • Microphone et Accessibilité doivent être accordés dans les Réglages Système.
    • La release publique 1.0.0 reste inactive tant que la signature, la notarisation Apple et le test Sparkle ne sont pas terminés.
    • Les transformations, commandes vocales, moteurs locaux, intégrations et réunions appartiennent à la roadmap et ne sont pas présentés comme déjà livrés.
    • L’application est indépendante et n’est ni éditée ni approuvée par OpenAI.

    Prochaine étape

    • Signer et notariser 1.0.0 avec le certificat Developer ID du compte Apple.
    • Valider installation, dictée et persistance sur une session macOS propre.
    • Tester une mise à jour Sparkle entre deux builds signés avant d’activer le téléchargement.

    Socle technique

    • Swift 6
    • SwiftUI
    • AppKit
    • AVFoundation
    • CryptoKit
    • Sparkle 2.9.2
    • OpenAI API
    • GitHub Actions