Open SourceAiVoiceKit
Swift Package · Swift · GPLv3

Voice dictation your app doesn't have to build.

AiVoiceKit is a Swift package providing on-device voice dictation, command routing, and AI-assisted rewriting for macOS. Ported from FluidVoice and adapted for use as a standalone, host-app-agnostic package — no dependency on any specific host application.

$.package(url: "https://github.com/NerdSnipe-Inc/AiVoiceKit", from: "1.0.0")
Local
ASR
macOS 15+
Platform
GPLv3
License
What's inside

Local ASR, multiple engines

Apple's built-in SFSpeechRecognizer/SpeechAnalyzer (zero download), or downloadable on-device models: Whisper (Tiny–Large via SwiftWhisper), Parakeet Flash/TDT v2/v3, Nemotron Speech, and Cohere Transcribe (all via FluidAudio, CoreML, arm64 macOS).

Global hotkey activation

Hold-to-record, toggle, or double-tap, with configurable shortcuts for dictation, command mode, edit mode, cancel, and paste-last-transcription.

Wake-word command routing

Text prefixed with a configurable wake word (e.g. "Alric, summarize this") is routed to a host-supplied callback instead of being typed into the frontmost app.

In-place AI rewriting

Edit mode rewrites selected text in the frontmost app via a host-supplied AI callback — dictation cleanup and rewriting both run through provider-based AI post-processing (Apple Intelligence / OpenAI / Groq / custom).

Notch overlay and local persistence

A live transcript, waveform, and mode indicator render via DynamicNotchKit. History, stats, and a custom dictionary persist file-based, with no external database.

Add to your Package.swift
Package
$.package(url: "https://github.com/NerdSnipe-Inc/AiVoiceKit", from: "1.0.0")
Wire two callbacks
$VoiceEngineMacOS( onCommandReceived: { text in await MyApp.shared.handleVoiceCommand(text) }, onEditRequested: { text, instruction in await MyApp.shared.rewrite(text, instruction: instruction) } )

VoiceEngine is a plain AnyObject, ObservableObject protocol — no host framework types appear in the package's public API. The host owns zero AiVoiceKit-specific UI logic beyond these two callbacks.

Provenance

A derivative work, licensed accordingly.

AiVoiceKit is ported from FluidVoice by Aether AI Studio / altic-dev and distributed under the same GPLv3 license as the original — see the repo's LICENSE for the full terms.

Third-party dependencies bundled in-app (FluidAudio, SwiftWhisper, DynamicNotchKit — all MIT; PromiseKit for legacy async utilities) are listed via an in-app Open Source Licenses sheet.

Frequently asked

Does this depend on a specific host app?

No. AiVoiceKit has no dependency on any host application — it's wired up via a plain callback-based VoiceEngine protocol with no host framework types in its public API.

Is there a reference integration?

Yes — AICompleteChat wires AiVoiceKit's dictation and voice-command flow end-to-end into a real chat app, alongside AiPersona memory and MLX inference.

Why GPLv3?

AiVoiceKit is a derivative work of FluidVoice (GPLv3, © altic-dev contributors) and is distributed under the same license as a condition of that derivation.

Add real voice input to a macOS app.

Wire two callbacks — onCommandReceived and onEditRequested — and get local ASR, global hotkeys, and AI-assisted rewriting with no host-app coupling.