Native macOS · Universal voice · Local-first

    Pressay

    Hold, speak, release — to write from any application.

    Pressay turns speech into text from any macOS application. Its first release focuses on reliable dictation with local silence detection, encrypted history and a personal OpenAI key; transformation modes and controlled commands will follow incrementally.

    Download coming soonSource code
    Role
    Solo product design, macOS UX, architecture and Swift development
    Period
    2026 public release
    Status
    1.0.0 release candidate · download coming soon
    Pressay — interface principale

    Public version 1.0.0

    Install Pressay

    macOS 14+ · Intel and Apple Silicon

    Optional history is encrypted on the Mac, the API key stays in Keychain and no telemetry is sent to Yodev.

    The download is free. API calls may be billed directly by OpenAI.

    1. 1Download Pressay.dmg from this page.
    2. 2Open the DMG and drag Pressay into Applications.
    3. 3Launch Pressay, then grant Microphone and Accessibility.
    4. 4Add your personal OpenAI API key in settings.

    Verifiable evidence

    arm64 + x86_64

    universal binary

    Apple Silicon and Intel Macs

    macOS 14+

    compatibility

    Sonoma or later

    AES-256-GCM

    local history

    Optional with configurable retention

    0

    Yodev telemetry

    No system profile sent with update checks

    How to read the numbers : Compatibility and guarantees describe the audited Release configuration. The CTA remains inactive until the first notarized GitHub Release.

    Context and role

    The core gesture is deliberately immediate: hold Fn/Globe, speak, then release to write at the current cursor.

    The interaction stays out of the way until needed: the app lives in the menu bar, starts on Fn/Globe and restores the clipboard after insertion.

    The vision extends beyond dictation to selection transformations and controlled actions, but each capability will only be exposed once its complete journey is genuinely functional.

    Retained constraints

    • Run on Intel and Apple Silicon Macs capable of macOS 14 or later.
    • Never upload audio when no speech is detected locally.
    • Store the API key in Keychain and optional history in an encrypted local file.
    • Preserve the insertion target when a user starts another dictation.
    • Ship complete signed updates without telemetry or system profiling.

    Decisions and rejected options

    DECISION 01

    A native modifier shortcut

    Dictation must start without stealing focus or keeping a permanent floating window.

    Choice
    Fn/Globe, Right Option or Right Command trigger hold or toggle mode from the menu bar.
    Rejected
    A complex global shortcut or an app-specific text field.
    Trade-off
    Microphone and Accessibility permissions need a clear first-run explanation.
    DECISION 02

    An OpenAI key owned by the user

    A Yodev backend would add accounts, billing, retention and operational responsibility.

    Choice
    The personal key stays in macOS Keychain and authenticates transcription directly with OpenAI.
    Rejected
    A shared proxy bundled with a Yodev subscription.
    Trade-off
    The user manages OpenAI billing, while Yodev receives neither audio nor text.
    DECISION 03

    Developer ID DMG and Sparkle

    An unnotarized ZIP raises warnings and provides no trustworthy update path.

    Choice
    A notarized universal DMG, signed with Developer ID and referenced by an Ed25519 Sparkle appcast.
    Rejected
    An ad hoc binary that requires bypassing Gatekeeper.
    Trade-off
    Publishing requires an Apple Developer account and a protected CI secret chain.

    Journey architecture

    1. 01

      Global shortcut

      Observes Fn/Globe or a right modifier without taking focus.

    2. 02

      Local capture

      Temporary audio and speech detection before any network call.

    3. 03

      Transcription

      Direct OpenAI request with the active language, model and vocabulary.

    4. 04

      Safe insertion

      Returns to the target app, pastes and conditionally restores the clipboard.

    5. 05

      Update

      Complete DMG validated by Sparkle, Ed25519, Developer ID and Gatekeeper.

    Quality and verification

    • Migration tests for preferences, API key and history key from the previous app identity.
    • Idempotent migration: current values are never overwritten and Keychain failures can be retried.
    • Xcode tests, static analysis and a universal Release archive included in the pipeline.
    • Deep app and Sparkle signing, notarization, stapling and Gatekeeper assessment before publication.
    • Automated DMG mount checking the app, Applications link and SHA-256 checksum.
    Pressay — vue produit

    What is actually delivered

    • Fn/Globe dictation available from any macOS application.
    • Two transcription models, language and vocabulary profiles.
    • Optional encrypted local history retained for 24 hours, 7 days or 30 days.
    • A cancellable transcription queue preserving each target application.
    • A reproducible release chain producing a DMG, checksum and appcast.

    Known limits

    • A personal OpenAI API key is required and API usage may be billed by OpenAI.
    • Microphone and Accessibility must be granted in System Settings.
    • The public 1.0.0 release stays inactive until Apple signing, notarization and the Sparkle update test are complete.
    • Transformations, voice commands, local engines, integrations and meetings are roadmap items and are not presented as already shipped.
    • The app is independent and is neither published nor endorsed by OpenAI.

    Next step

    • Sign and notarize 1.0.0 with the Apple account’s Developer ID certificate.
    • Validate installation, dictation and persistence in a clean macOS session.
    • Test a Sparkle update between two signed builds before enabling the download.

    Technical foundation

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