Skip to main content
株式会社オブライト
AI2026-07-308 min read

Qwen Scribe: Local Dictation on Mac with Qwen3-ASR (MLX)

Qwen Scribe runs Qwen3-ASR on Apple Silicon via MLX for fully offline transcription and system-wide dictation — 3.4GB unified memory for the 1.7B model, 1.2GB for 0.6B. Covers requirements, setup, push-to-talk usage, SRT export, the three macOS permissions, and how it compares to Whisper-based tools.


Qwen Scribe runs Qwen3-ASR on Apple Silicon through MLX to deliver file transcription and system-wide dictation entirely on-device, under Apache-2.0. Memory needs are modest: roughly 3.4GB of unified memory for the 1.7B model and 1.2GB for 0.6B, plus app overhead. No cloud, no API key — hold the right ⌘ key, speak, release, and the text lands at your cursor. It hit Show HN on July 29, 2026 and passed 100 GitHub stars within two weeks of first commit.

What It Does

Two distinct capabilities: push-to-talk dictation and drag-and-drop transcription of audio or video files. The first works through an OS-level global hotkey, so the same gesture works in mail, an editor, or a chat window.

FeatureDetail
Push-to-talk dictationRight ⌘ by default. Records while held, transcribes locally on release, pastes at the cursor
File transcriptionDrag audio/video into the web UI. SRT export and word-level timestamps
LanguagesAuto-detection plus optional forced language
Vocabulary hintsFeed names and jargon in advance to improve accuracy
HistoryTranscripts stored locally with search, export, individual delete, delete-all
UIMenu-bar presence plus a non-focus-stealing HUD (Listening / Transcribing / success / failure)
APIFastAPI job queue on 127.0.0.1:8990, serializing GPU jobs to avoid memory contention

One design detail deserves credit: the API is localhost-only with Host and browser-origin checks. Local AI tooling that quietly binds to 0.0.0.0 is common enough that this is a meaningful signal if you intend to run it on a work machine.

Requirements

ItemRequirement
HardwareApple Silicon Mac (M1 or later)
OSmacOS 14 or newer
PythonNative Python 3.12+ (not under Rosetta)
Memory~3.4GB for 1.7B / ~1.2GB for 0.6B, plus app overhead
Otherffmpeg for non-WAV media; Apple Command Line Tools to build from source

3.4GB is light next to typical local LLM footprints — comfortable to keep resident on a 16GB Mac alongside real work, which is exactly what a dictation tool needs. For the broader model-size-to-memory mapping, see local AI hardware requirements.

Setup

At v0.2.0-beta.1 only source releases exist; signed and notarized binaries are planned once Developer ID credentials are in place. Clone the repo, then build the app bundle.

make app
open "dist/Qwen Scribe.app"

To run it as a server instead, use ./run.sh and open http://127.0.0.1:8990. Python dependencies and model weights are fetched and cached on first launch, after which it runs fully offline. You can move the built app to /Applications.

Three environment variables control behavior — worth deciding up front if data location matters to your policy.

VariableDefaultPurpose
QWEN_SCRIBE_DATA_DIR~/Library/Application Support/Qwen ScribeTranscript storage
QWEN_SCRIBE_MODEL_DIR./modelsModel weights location
QWEN_SCRIBE_PORT8990Server port

The Three macOS Permissions

Desktop dictation needs three grants under System Settings → Privacy & Security. Knowing why each is required makes it far easier to justify internally.

- Microphone: records while the push-to-talk key is held
- Input Monitoring: detects the modifier key while another app is frontmost
- Accessibility: pastes the finished text into the focused field

Input Monitoring and Accessibility are, by nature, powerful — they let software act across other apps. The on-device design and readable Apache-2.0 source are what justify granting them. Conversely, if you evaluate a closed-source tool that also ships audio to the cloud, the same permissions deserve a much harder look.

Versus Whisper-Based Tools

Local transcription on Mac has been Whisper territory (MacWhisper, Handy, and others), so the real comparison axes are noise robustness, punctuation, OS coverage, and maturity — not raw accuracy claims.

AxisQwen Scribe (Qwen3-ASR)Local Whisper toolsCloud dictation
ProcessingFully localFully localSent to cloud
Noisy inputAuthor claims an edge over WhisperVaries by setupGenerally good
Punctuation / sentence splitsEmphasized as a strengthModel- and build-dependentGood
OS supportApple Silicon onlyMostly cross-platformAnywhere
Maturityv0.2.0-beta (new)Relatively matureMature products
CostFree (Apache-2.0)Free to paidMonthly subscription
ImplementationPython (not native Swift)Some Swift/Rust builds

One HN commenter reported roughly 2x realtime on an M1. If that is not fast enough, drop to 0.6B; if proper nouns matter more than speed, pair 1.7B with vocabulary hints. For the cloud-side dictation experience see Aqua Voice, and for wiring a recorder into an AI workflow see Plaud MCP & CLI.

Language Coverage

Worth checking before you commit. Upstream Qwen3-ASR does support Japanese — its primary languages are listed as Chinese, English, Cantonese, French, German, Italian, Japanese, Korean, Portuguese, Russian, and Spanish, with language identification across 52 languages and dialects. Qwen Scribe's author, however, listed English, German, French, Russian, Italian, and Spanish as the languages verified in the Show HN thread, so Japanese quality is outside what the author tested.

Public Qwen3-ASR implementations also note extra tokenizer dependencies such as nagisa for Japanese. If you intend to use it daily in any language outside the author's tested set, run a one-minute sample of your own voice and your own terminology first and check punctuation and proper nouns before building it into a workflow.

Notes for Work Use

- Saved transcripts are unencrypted, plain JSON on disk. For sensitive conversations, decide on QWEN_SCRIBE_DATA_DIR placement, FileVault, and a habit of deleting old history
- v0.2.0-beta.1, unsigned and un-notarized — you will be working around Gatekeeper. Personal evaluation before fleet rollout is the realistic path
- Native Python 3.12+ is required. If a Rosetta or older Python takes precedence in your PATH it will not run; confirm python3 -c "import platform; print(platform.machine())" returns arm64
- Accessibility and Input Monitoring grants are policy-relevant at some companies. Check internal rules before installing
- "It stays local" is the actual feature for regulated work — the HN discussion centered on clinicians who cannot send patient audio to cloud scribes. For that class of use, the architecture is the requirement

The README also states plainly that this is an independent community project, unaffiliated with Alibaba Cloud, the Qwen team, or Apple. Do not plan around vendor support.

FAQ

Is Qwen Scribe free?

Yes. It is Apache-2.0 open source with no usage fees and no API key. The model weights (Qwen3-ASR 1.7B or 0.6B) are pulled from Hugging Face on first launch and cached locally afterwards. Your only costs are the Mac itself and the disk and memory it consumes.

How much memory does it need?

The README states roughly 3.4GB of unified memory for the 1.7B model and 1.2GB for 0.6B, plus the application's own overhead. In practice, a 16GB Mac can keep 1.7B resident and still run normal work alongside it. Choose 0.6B if you are on an 8GB machine or if latency matters more than accuracy on proper nouns.

Does it run on Intel Macs or Windows?

No. MLX is an Apple Silicon framework, and the README requires an Apple Silicon Mac on macOS 14 or newer. If you need local transcription across platforms, look at Whisper-based projects such as Handy, which cover Windows and Linux.

Is it more accurate than Whisper?

The author says Qwen3-ASR handles noisy audio better and splits sentences more naturally, but this is not a published third-party benchmark. Results shift with language, recording conditions, and speaking style, so the reliable test is running both on your own audio. That matters especially for languages outside the author's verified set.

Does any transcript data leave the machine?

After the initial model download, no network access is required. The API listens on localhost only and validates Host headers and browser origins before accepting requests. Note, though, that history is stored as unencrypted plain JSON, so protecting the device itself — FileVault, screen lock, deleting old transcripts — is what actually protects the content.

Can it generate subtitles from a meeting recording?

Yes. Drop an audio or video file into the web UI and it transcribes with word-level timestamps and SRT export. Long files run through a job queue that serializes GPU work, so queuing several at once will not cause memory contention. For meetings dense with proper nouns, pass company, product, and attendee names as vocabulary hints to cut down on cleanup.

Summary

Qwen Scribe satisfies one clear requirement — dictation that never leaves the machine — in exchange for one clear constraint: Apple Silicon only. The 3.4GB (1.7B) / 1.2GB (0.6B) footprint suits an always-resident tool, and the localhost-only API, explicit note about plaintext history, and Apache-2.0 source all help justify granting it Accessibility-level permissions on a work machine. It is still v0.2.0-beta and unsigned, and languages beyond the author's tested set are unverified, so the right next step is a sample of your own audio rather than a fleet rollout.

Feel free to contact us

Contact Us