qwen-scribe logo

qwen-scribe

Private, local transcription and system-wide dictation for Apple Silicon.

releaseplatform macOS 14+ | Apple Silicondata 100% on  device
GitHub

What is it?

What it is

Qwen Scribe is a private, local transcription and system-wide dictation tool for Apple Silicon Macs that runs the Qwen3-ASR model via MLX on the Mac's GPU, providing offline audio/video transcription and push-to-talk dictation without any cloud service or account.

Why it exists

It exists to give users a fully on-device, privacy‑first alternative to cloud‑based speech‑to‑text services, enabling transcription and dictation on macOS 14+ Apple Silicon hardware without requiring internet, API keys, or accounts.

Who should use it

macOS users with Apple SiliconPrivacy-conscious users seeking local-first transcriptionDevelopers needing system-wide dictationUsers requiring offline speech-to-text capabilities

Who should avoid it

Intel-based Mac usersUsers on macOS versions older than 14Users with limited unified memory (less than 4GB available for models)Users requiring non-Apple hardware

How it works

A quick walkthrough in plain English

How qwen-scribe works

Step 1 of 3

You interact with it

Open qwen-scribe, send a request, or connect it to your stack.

Features

Drag-and-drop audio/video transcription in a local web interface
Supports Qwen3-ASR 1.7B (accuracy) and 0.6B (speed) models
Automatic language detection with optional forced language settings
Vocabulary hints, word timestamps, and SRT export capabilities
Local transcript history with search, export-all, and deletion controls
Customizable push-to-talk key (default: right Command) for dictation
Menu-bar status item with dictation state indicators
Non-focus-stealing HUD for transcription states (Listening/Transcribing)
Localhost-only API with Host and browser-origin security checks
All processing occurs on-device (no cloud service or API keys)
Supports Apple Silicon Macs with MLX acceleration
Handles non-WAV audio/video via ffmpeg integration
Open-source with Apache-2.0 license
Local transcript history stored in encrypted JSON format
Dictation integration with macOS clipboard and accessibility features

Advantages

  • Complete privacy with no data sent to external servers
  • No account or API key required for usage
  • Efficient local processing optimized for Apple Silicon
  • Customizable push-to-talk key for user preference
  • Supports both high-accuracy and lightweight models
  • Seamless macOS integration (dictation, clipboard, accessibility)
  • Exportable transcripts in SRT format for external use
  • Offline functionality after initial model download
  • User-friendly HUD and status indicators for real-time feedback
  • Open-source community-driven development
  • Supports multiple audio formats through ffmpeg
  • Local transcript history management with search and deletion

Disadvantages

  • Requires Apple Silicon Mac and macOS 14+
  • High memory usage (3.4GB for 1.7B model, 1.2GB for 0.6B model)
  • Complex setup for non-developers (requires ffmpeg, Python 3.12+)
  • Ad-hoc signed apps may trigger Gatekeeper restrictions
  • Beta status (v0.2.0-beta.1) with potential stability issues
  • No cross-platform support (macOS only)
  • Manual model conversion required for 8-bit optimization
  • Limited to Apple ecosystem (no Windows/Linux support)
  • Initial model download size (~3.4GB for 1.7B model)
  • Dictation requires microphone and accessibility permissions
  • No official release process for stable binaries yet
  • Potential performance variability on lower-end Apple Silicon devices

Installation

cloud

not available

docker

not available

native

From a downloaded or cloned source directory:

```bash
make app
open "dist/Qwen Scribe.app"
```

Or via terminal:

```bash
./run.sh
```

Requirements:
- Apple Silicon Mac
- macOS 14 or newer
- Native Python 3.12 or newer
- ffmpeg (via Homebrew or MacPorts)
- Apple Command Line Tools (`xcode-select --install`)

compose

not available

FAQ

How do I install and run Qwen Scribe on my Mac?

Clone or download the repository, then run `make app` to build the ad‑hoc signed app bundle. Open the generated `dist/Qwen Scribe.app` (or move it to /Applications). The first launch will download the chosen model and install dependencies. If Gatekeeper blocks it, approve it under System Settings → Privacy & Security → Open Anyway. Alternatively, run `./run.sh` from the terminal and open <http://127.0.0.1:8990> in a browser.

How do I use the desktop dictation feature?

After launching the app, grant the required permissions in System Settings → Privacy & Security: Microphone, Input Monitoring, and Accessibility. The helper watches for the configured push‑to‑talk key (right Command by default). Hold that key while speaking, then release to transcribe locally and paste the text into the focused field. You can change the key in the web interface or the menu‑bar status item.

Where are my transcripts and settings stored?

Transcripts are saved as readable JSON in `~/Library/Application Support/Qwen Scribe/transcripts`. Settings live in `~/Library/Application Support/Qwen Scribe/settings.json`. Runtime data is in `~/Library/Application Support/Qwen Scribe/runtime`, logs in `~/Library/Logs/QwenScribe.log`, and downloaded models are cached under `~/.cache/huggingface/hub`.

What are the hardware and software requirements?

You need an Apple Silicon Mac running macOS 14 or newer. Python 3.12+ is required, and `ffmpeg` must be installed (via Homebrew or MacPorts). The 1.7B model needs ~3.4 GB of unified memory; the 0.6B model needs ~1.2 GB. The app uses MLX and the Qwen3‑ASR model, all running locally on the Metal GPU.

How can I build a release‑ready, notarized app?

Set the `CODESIGN_IDENTITY` environment variable to your Apple Developer ID before running `make app`. This signs the bundle with that identity. For notarization, follow the steps in the repository’s RELEASING.md, which separates notarization from the build step. The resulting binaries will be Developer‑ID signed and notarized.

Can I change the push‑to‑talk key?

Yes. In the web interface or the menu‑bar status item, pick a new key. The helper will then listen for that modifier while another app is active. If you change it, restart Qwen Scribe to apply the new setting.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for qwen-scribe

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
qwen-scribe | MushyBook