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.
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).
Hold-to-record, toggle, or double-tap, with configurable shortcuts for dictation, command mode, edit mode, cancel, and paste-last-transcription.
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.
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).
A live transcript, waveform, and mode indicator render via DynamicNotchKit. History, stats, and a custom dictionary persist file-based, with no external database.
.package(url: "https://github.com/NerdSnipe-Inc/AiVoiceKit", from: "1.0.0")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.
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.
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.
Yes — AICompleteChat wires AiVoiceKit's dictation and voice-command flow end-to-end into a real chat app, alongside AiPersona memory and MLX inference.
AiVoiceKit is a derivative work of FluidVoice (GPLv3, © altic-dev contributors) and is distributed under the same license as a condition of that derivation.
Wire two callbacks — onCommandReceived and onEditRequested — and get local ASR, global hotkeys, and AI-assisted rewriting with no host-app coupling.