Skip to content

Releases: sammy4321/OpenFlow

v1.1.2

21 Feb 16:35
47fd02d

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.1.1...v1.1.2

v1.1.1

14 Feb 09:28

Choose a tag to compare

This is a documentation-only patch release. It removes outdated standalone CLI usage instructions and updates model selection examples to use the Makefile (make run MODEL=...), reflecting the removal of Homebrew distribution from the prior release.

v1.1.0

14 Feb 09:20

Choose a tag to compare

๐Ÿš€ OpenFlow v1.0.0 โ€” Initial Release

Release Date: February 14, 2026
License: Apache 2.0


We're thrilled to announce the very first public release of OpenFlow โ€” a macOS-native, GPU-accelerated, streaming speech-to-text menu bar app. OpenFlow is an open-source, privacy-first alternative to Wispr Flow, delivering instant voice dictation into any application on your Mac.


โœจ Highlights

  • 100% Local & Private โ€” All audio processing happens entirely on your device. No audio data ever leaves your Mac. No cloud. No accounts. No telemetry.
  • Optimized for Apple Silicon โ€” Built on top of MLX and faster-whisper, OpenFlow leverages the Metal GPU and Neural Engine for ultra-low latency transcription.
  • Universal Dictation โ€” Transcribed text is inserted directly into any active application via macOS Accessibility APIs. Works with any text field, anywhere.
  • Beautiful, Voice-Reactive UI โ€” A custom floating overlay bar appears at the bottom of your screen, featuring animated wave bars that react to your voice amplitude in real-time, a spinning indicator during transcription, and a checkmark animation on completion.

๐ŸŽ™๏ธ Core Features

Speech-to-Text Engine

  • Dual-backend transcription engine:
    • MLX Whisper (GPU-accelerated) for Apple Silicon Macs
    • faster-whisper (CPU, INT8 quantized) as a stable fallback
  • Automatic model warm-up at launch to eliminate first-transcription latency
  • Streaming audio buffering with minimum duration threshold (1.5s) to avoid spurious transcriptions
  • Automatic model download from Hugging Face Hub on first run

Supported Whisper Models

Model Speed Accuracy VRAM
tiny (default) โšก <300ms Good ~75 MB
base Fast Better ~150 MB
small Moderate High ~500 MB
medium Slower Very High ~1.5 GB
large Slowest Best ~3 GB

Select a model at launch:

openflow --model base

Audio Capture & Denoising

  • Real-time audio capture via sounddevice (backed by PortAudio) at 16kHz mono
  • Integrated RNNoise (compiled from source) for neural network-based noise suppression โ€” crystal-clear dictation even in noisy environments
  • RMS-based audio level computation for live UI visualization

Menu Bar App

  • Lightweight macOS menu bar presence via rumps
  • Custom Dock icon support
  • macOS-native process naming

Hotkey-Driven Workflow

  • Hold Right Command (โŒ˜R) to start dictating
  • Release to finish โ€” text is transcribed and typed instantly
  • Global hotkey listener via pynput, works system-wide regardless of focused app

Overlay UI

  • Custom NSPanel-based floating overlay (non-activating, always-on-top)
  • Three visual states with smooth CoreAnimation transitions:
    • Listening โ€” Animated wave bars reacting to voice amplitude (organic per-bar variation)
    • Transcribing โ€” Rotating arc spinner with color shift
    • Done โ€” Scale-in circle with animated checkmark, auto-dismiss
  • Slide-in / slide-out animations anchored to the bottom of the active screen
  • Multi-monitor aware โ€” overlay appears on the screen with the active window

Accessibility Integration

  • Text insertion via macOS Accessibility APIs (AXUIElement)
  • Automatic permission prompt on first launch with polling-based wait
  • Works with any app that accepts keyboard input

๐Ÿ“ฆ Installation

Prerequisites

  • macOS (Apple Silicon recommended)
  • Python 3.11+
  • portaudio (installed automatically via Homebrew)

Quick Start

git clone https://github.com/sammy4321/OpenFlow.git
cd OpenFlow
make install   # Sets up venv, compiles RNNoise, downloads models
make run       # Launches OpenFlow

The make install command handles everything:

  1. Bootstraps Python 3.11 (installs via Homebrew if missing)
  2. Installs build tools (autoconf, automake, libtool)
  3. Creates a virtual environment
  4. Installs all Python dependencies
  5. Compiles RNNoise from source as librnnoise.dylib
  6. Downloads Whisper models from Hugging Face Hub
  7. Installs OpenFlow in editable mode

๐Ÿ—๏ธ Architecture

openflow/
โ”œโ”€โ”€ main.py              # Entry point, CLI arg parsing, accessibility check
โ”œโ”€โ”€ app.py               # Main application controller (orchestrates all components)
โ”œโ”€โ”€ whisper_engine.py    # Dual-backend transcription (MLX / faster-whisper)
โ”œโ”€โ”€ streamer.py          # Threaded audio buffering & transcription pipeline
โ”œโ”€โ”€ audio.py             # Real-time audio capture (sounddevice)
โ”œโ”€โ”€ rnnoise.py           # RNNoise C library wrapper (ctypes)
โ”œโ”€โ”€ overlay.py           # NSPanel-based floating overlay with CoreAnimation
โ”œโ”€โ”€ hotkey.py            # Global hotkey listener (pynput)
โ”œโ”€โ”€ statusbar.py         # macOS menu bar integration (rumps)
โ”œโ”€โ”€ accessibility.py     # AXUIElement text insertion
โ”œโ”€โ”€ config.py            # Centralized configuration constants
โ””โ”€โ”€ updater.py           # Update checking utilities

โš ๏ธ Known Limitations

  • macOS only โ€” OpenFlow relies on macOS-specific frameworks (AppKit, CoreAnimation, Accessibility APIs) and is not portable to Linux/Windows.
  • MLX FFT stability โ€” On some macOS configurations, MLX can trigger FFT crashes in mel/STFT paths. The engine defaults to faster-whisper (CPU) on Darwin for stability. GPU acceleration can be re-enabled in future releases as MLX matures.
  • English only โ€” Language is currently hardcoded to English (language="en").
  • Accessibility permissions required โ€” Users must grant Accessibility access on first launch for text insertion to work.
  • RNNoise compilation โ€” Requires autoconf, automake, and libtool build tools (installed automatically via Homebrew).

๐Ÿ”ฎ What's Next

  • Homebrew tap for one-command installation (brew install openflow)
  • Multi-language support
  • Configurable hotkeys
  • Native MLX GPU acceleration (once upstream stability improves)
  • Standalone .app bundle distribution
  • Auto-update mechanism

๐Ÿ™ Acknowledgements

OpenFlow is built on the shoulders of these incredible open-source projects:

  • MLX โ€” Apple's machine learning framework for Apple Silicon
  • mlx-whisper โ€” MLX-optimized Whisper models
  • faster-whisper โ€” CTranslate2-powered Whisper inference
  • OpenAI Whisper โ€” The original speech recognition model
  • RNNoise โ€” Recurrent neural network for audio noise reduction
  • rumps โ€” Ridiculously Uncomplicated macOS Python Statusbar apps
  • pynput โ€” Cross-platform input monitoring
  • Hugging Face Hub โ€” Model hosting and distribution

๐Ÿ“ฅ Full Changelog

This is the initial release โ€” all changes are new!

Contributors: OpenFlow Contributors


โญ If you find OpenFlow useful, please star the repo!
github.com/sammy4321/OpenFlow