Skip to content

Elias1986a/PUSH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PUSH

Push-to-talk voice to text for macOS with offline AI.

Features

  • Push-to-talk: Hold Right Option (⌥) to speak, release to insert text
  • Offline AI: Uses OpenAI Whisper for accurate speech recognition
  • Works everywhere: Injects text into any app's text field
  • Privacy-first: All processing happens locally, no cloud APIs
  • Menu bar app: Unobtrusive - lives in your menu bar with floating pill UI

Requirements

  • macOS 14.0+
  • ~500MB disk space for Whisper model
  • Microphone
  • Accessibility permissions (for global hotkey + text injection)

Installation

Option 1: Download Pre-built App ⭐ Recommended

Download the latest version

  1. Download PUSH-vX.X.X.dmg from the latest release
  2. Open the downloaded DMG file
  3. Drag PUSH.app to your Applications folder
  4. Done! Launch PUSH from Applications

The app is properly signed and notarized - no security warnings!

Option 2: Build from Source

You'll need:

  • Xcode installed (free from the Mac App Store)

Steps:

  1. Download the code:

    • Click the green "Code" button at the top of this page
    • Select "Download ZIP"
    • Unzip the downloaded file
  2. Open in Xcode:

    • Double-click Package.swift in the unzipped folder
    • Wait for Xcode to load the project
  3. Build the app:

    • In Xcode, click Product → Run (or press ⌘R)
    • The app will build and launch automatically

First Launch Setup

When you run PUSH for the first time:

  1. Grant Microphone Permission:

    • A popup will ask for microphone access
    • Click "OK" to allow
  2. Grant Accessibility Permission:

    • Go to → System Settings → Privacy & Security → Accessibility
    • Click the lock icon and enter your password
    • Find "PUSH" in the list and enable the checkbox
    • If PUSH isn't in the list, click the "+" button and add it
  3. Download the Whisper Model:

    • Click the PUSH icon in your menu bar (top-right of screen)
    • Select "Settings"
    • Go to the "Models" tab
    • Choose a model size (Small is recommended for best quality)
    • Click "Download" - this may take a few minutes
  4. You're ready!

    • Click anywhere in a text field (Notes, Messages, email, etc.)
    • Hold the Right Option (⌥) key
    • Speak your text
    • Release the key and your text will appear!

How to Use

Basic Usage:

  1. Click in any text field where you want text to appear
  2. Hold down the Right Option (⌥) key (bottom-right of keyboard)
  3. Speak clearly into your microphone
  4. Release the key when done
  5. Wait a moment - your transcribed text will appear!

Visual Feedback:

  • While holding the key, you'll see a floating pill with animated dots
  • This shows PUSH is listening to you

Changing the Hotkey:

  • Click the PUSH menu bar icon
  • Go to Settings → General
  • Choose a different key from the dropdown

Choosing a Different Model:

  • Click the PUSH menu bar icon
  • Go to Settings → Models
  • Select and download the model you prefer

Models

PUSH supports multiple speech recognition engines. Choose the model that fits your hardware:

WhisperKit Models

Model Size Speed Accuracy Best For
Whisper Base ~150 MB Fast Good Balanced speed and accuracy
Whisper Small ~250 MB Moderate Better Good quality on any Mac
Distil-Large V3 ~600 MB Fast Great Fast and accurate, English-only
Distil-Large V3 Turbo ~600 MB Very Fast Great Speed and accuracy, English-only
Whisper Large V3 Turbo ~632 MB Fast Excellent High accuracy, 99+ languages

Parakeet (NEW in v4.0)

Model Size Speed Accuracy Best For
Parakeet TDT v2 ~400 MB Fastest Best English ⭐ Best English accuracy + native punctuation

Qwen3-ASR (NEW in v4.0)

Model Size Speed Accuracy Best For
Qwen3-ASR ~680 MB Fast Excellent ⭐ Best grammar quality, 52 languages

Moonshine Models

Model Size Speed Accuracy Best For
Moonshine Tiny ~45 MB Ultra-fast Good Quick transcription, short speech
Moonshine Base ~134 MB Fast Better Accurate, variable-length audio

Tip: Parakeet and Qwen3-ASR produce text with native punctuation and grammar — no post-processing needed. Other models benefit from automatic cleanup (filler word removal, capitalization, punctuation).

Which should I choose?

  • Parakeet TDT v2 — Best choice for English. Fastest inference, highest accuracy (1.69% WER), and native punctuation. Requires 16 GB+ unified memory.
  • Qwen3-ASR — Best grammar and punctuation quality. Supports 52 languages. Requires 16 GB+ unified memory.
  • Whisper Large V3 Turbo — Best multilingual model (99+ languages) with good accuracy on 8 GB+ Macs.
  • Whisper Small — Great all-rounder for Macs with 8 GB memory.
  • Moonshine Tiny — Ultra-lightweight, good for older Macs or when you need instant results.

Where are models stored?

~/Library/Application Support/PUSH/models/

You can delete models you're not using to free up disk space.

Permissions Explained

PUSH needs two permissions to work:

Microphone Access

  • Why? To record your voice when you hold the hotkey
  • When? Only while you're holding the Right Option key
  • Privacy: Audio never leaves your computer

Accessibility Access

  • Why? To detect when you press the hotkey and to insert text into apps
  • When? Required for the app to work
  • Privacy: PUSH only monitors the specific hotkey you choose

Your privacy is protected: All voice processing happens on your Mac. Nothing is sent to the internet.

Troubleshooting

Upgrading from v1.0.0: Permissions Not Working

If you upgraded from v1.0.0 and the hotkey doesn't work:

  1. Open System Settings → Privacy & Security
  2. Remove PUSH from:
    • Accessibility
    • Microphone
    • Full Disk Access (if present)
  3. Quit PUSH completely
  4. Relaunch PUSH from Applications
  5. Accept permission prompts when they appear

This is only needed when upgrading from v1.0.0 due to signature changes. Fresh installs work normally.

Other Issues

  • No permission prompts appear: Open System Settings manually and add PUSH to Accessibility and Microphone
  • Hotkey not responding: Make sure PUSH is enabled in Accessibility settings
  • No transcription: Check that a Whisper model is downloaded in Settings → Models

Tech Stack

Built with:

  • Swift + SwiftUI — Native macOS app
  • WhisperKit — Whisper and Distil-Whisper speech recognition
  • FluidAudio — NVIDIA Parakeet TDT v2 on CoreML/ANE
  • speech-swift — Qwen3-ASR with MLX + CoreML hybrid inference
  • Moonshine — Ultra-lightweight speech recognition
  • Metal acceleration — Uses your Mac's GPU for fast processing

Contributing

PUSH is open source and free! Contributions are welcome:

License

MIT - See LICENSE file for details.

Free to use, modify, and distribute!