Production-quality, local-first voice typing and on-device AI assistant for Windows.
Hold Ctrl+Space to dictate speech. Hold Shift+Space to transform selected text or ask AI.
Ctrl + Space(Voice Typing / Dictation): Hold from any application (Notepad, VS Code, Word, Chrome, Windows Terminal, Slack, Outlook), speak naturally, and release to inject transcribed text directly at your cursor.Shift + Space("Ask AI" & Voice Transform Mode):- Selection Transformation (Text Selected): Highlight text in any app (an email, code snippet, draft message) and hold
Shift+Spaceto command ("Reply politely to this email", "Refactor to LINQ", "Translate to Spanish", "Summarize in 3 bullet points"). The local LLM processes the selection and injects the result. - Direct Generation (No Text Selected): Hold
Shift+Spaceat an empty prompt to generate text on the fly ("Draft an apology for being 5 minutes late", "Write a python regex for email"). - Read-Only Context Auto-Persistence: When text is highlighted in read-only panes (e.g. Outlook reading view, PDF, browser), Vacanam copies the generated response to your clipboard and notifies you with
π Copied to Clipboard (Ctrl+V to paste)so you can click reply and paste immediately.
- Selection Transformation (Text Selected): Highlight text in any app (an email, code snippet, draft message) and hold
Vacanam automatically detects the foreground application process and tailors AI responses accordingly:
- Coding & Terminal (
code,devenv,idea64,windowsterminal,powershell): Preserves camelCase, snake_case, variable/function syntax, CLI flags, and avoids turning code into prose. - Chat & Messaging (
slack,teams,discord,telegram,whatsapp): Natural, punchy, conversational tone suitable for direct messaging. - Email & Documents (
outlook,olk,winword,thunderbird): Professional, well-structured business phrasing.
- Subtle, high-polish audio cues confirm voice state changes (
start.wavon key press,success.wavon injection,error.wavon failure) generated natively without external audio dependencies. Can be toggled on/off in Settings.
- No Auto-Dismiss Panic: The launch window remains open until the user chooses to start or visit settings.
- Interactive Test Scratchpad: Built-in test box inviting new users to click, hold
Ctrl+Space, and test their microphone on the spot. - System Tray Guidance: Visual callout explaining that Vacanam runs quietly in the system tray near the Windows clock (π).
- Direct Settings Navigation: One-click Go to Settings button on the welcome window.
- Re-open Anytime: Right-click the system tray icon anytime and select
π‘ Quick Start & Shortcuts.
β‘ Ultra Fast(tiny~75 MB) β Instant response for short phrases and low-end PCs. (Auto-downloaded on initial setup if no model is present).β Balanced (Recommended)(small~466 MB) β Optimal sweet spot of speed and high recognition accuracy.π― High Precision(medium~1.5 GB) β Exceptional accuracy for technical & complex terms.π Maximum Accuracy(large-v3~3.1 GB) β Maximum precision for multi-language speech & accents.
- Voice Action Shortcuts: Speak commands to trigger keyboard actions hands-free:
"select all"(Ctrl+A),"undo that"(Ctrl+Z),"redo that"(Ctrl+Y),"copy that","paste that","save file"(Ctrl+S),"press enter","press tab","press escape","delete line","delete word","switch window"(Alt+Tab),"close window"(Alt+F4),"lock computer".
- Smart Verbal Punctuation: Dictate spoken punctuation ("comma", "period", "question mark", "new line", "new paragraph", "open paren", "smiley face", "thumbs up", "fire emoji") formatted automatically with capitalization rules.
- Custom Snippets & Macros: Define trigger phrases (e.g.
"insert signature","insert date","my meeting link") with dynamic{DATE},{TIME}, and{DATETIME}tags.
- Sub-second local CPU grammar polish and instruction following using GGUF models (
Qwen2.5-0.5B-Instruct&Llama-3.2-1B-Instruct) viaLLamaSharp. - Anti-echo retry protection and prompt conditioning prevent the LLM from repeating input text.
- Full control over System Prompts (Refinement, Transform, Ask AI) in Settings.
- Opt-in local SQLite database (
%LOCALAPPDATA%\Vacanam\history.dbin WAL mode). - Logs timestamps, speech text, transformed output, and target application badges (
olk,code,slack,notepad). - Instant real-time search, one-click Copy, and single-entry deletion.
- Real-time detection of muted microphones and low volume levels (<30%), alerting you instantly on the floating overlay (
Mic Muted π/Mic Volume 20% π).
- β No cloud APIs, no telemetry, no analytics.
- β Audio is never recorded to disk.
- β Clipboard contents are backed up and restored (<25ms) without logging.
- β 100% offline. Works without an internet connection once models are downloaded.
- π Read our full Privacy Policy or online at avikeid2007.github.io/Vacanam/privacy.html.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β System Tray (Idle) β
ββββββββββββββββ¬ββββββββββββββββββββββββββββββββ¬βββββββββββββββ
β Hold Ctrl+Space β Hold Shift+Space
βΌ (Voice Typing) βΌ (Voice Transform / Ask AI)
ββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββ
β WASAPI 16kHz PCM Capture β β Capture Selected Text β
β + Active Window HWND β β + WASAPI Audio + Context β
ββββββββββββββββ¬ββββββββββββββββ βββββββββββββββ¬βββββββββββββββ
βΌ βΌ
ββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββ
β VAD Silence Trimming β β VAD Silence Trimming β
β β Whisper.net STT β β β Whisper.net STT β
ββββββββββββββββ¬ββββββββββββββββ βββββββββββββββ¬βββββββββββββββ
βΌ Transcribed Speech βΌ Voice Instruction
ββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββ
β (Optional) Local LLM Polish β β Local LLM Transform β
β for punctuation & grammar β β (Prompt + Context Profile)β
ββββββββββββββββ¬ββββββββββββββββ βββββββββββββββ¬βββββββββββββββ
βΌ Final Output βΌ Transformed / Answer
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Inject Text into Active Application (Ctrl+V) β
β (Or auto-copy to clipboard if in read-only view) β
ββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ
β (If History Opt-in Enabled)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Save Transcript Record to Local SQLite History β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Download
VacanamSetup-1.x.x.exefrom GitHub Releases. - Run the installer (no admin rights required).
- The Quick Start & Onboarding Window will guide you through your first dictation test.
- Vacanam minimizes quietly to your system tray β hold
Ctrl+Spaceanytime to dictate.
Note
Code Signing: Free code signing provided by SignPath.io, certificate by SignPath Foundation.
- Windows 10 / 11 (x64)
- .NET 10 SDK β Download .NET 10
# Clone the repository
git clone https://github.com/avikeid2007/Vacanam.git
cd Vacanam
# Restore dependencies
dotnet restore Vacanam.slnx
# Build Release binary
dotnet build Vacanam.slnx --configuration Release
# Run Vacanam
dotnet run --project src/Vacanam.App --configuration ReleaseRight-click the Vacanam tray icon (π) and choose Settings:
| Tab | Capabilities |
|---|---|
| Hotkeys | Configure primary dictation key (Ctrl+Space), toggle Push-to-Talk, and enable/disable Shift+Space AI Transform. |
| Speech | Select speech models (Ultra Fast, Balanced, High Precision, Maximum Accuracy) with live download progress. |
| AI | Enable/disable local LLM refinement, manage GGUF models (Qwen 2.5 0.5B, Llama 3.2 1B), and edit System Prompts (Refinement, Transform, Ask AI). |
| Audio | Choose input microphone, test live volume slider (0β100%), toggle mute, adjust VAD threshold, and enable/disable sound effects. |
| Commands | Enable standalone voice shortcuts ("undo that", "copy that"), smart punctuation, and custom expansion snippets ({DATE}, {TIME}). |
| History | Search local SQLite transcripts in real time, filter by application, copy to clipboard, or delete individual entries. |
| General | Toggle Start with Windows, tray notifications, and quick start guide behavior. |
| Privacy | View offline guarantees and opt-in/out of transcript storage. |
Vacanam is built with a strictly decoupled modular architecture across 8 projects:
Vacanam.slnx
βββ src/
β βββ Vacanam.Core/ Pure domain interfaces, models, enums (net10.0)
β βββ Vacanam.Windows/ Win32 P/Invoke (RegisterHotKey, GetForegroundWindow, SendInput, KeySimulator)
β βββ Vacanam.Audio/ WASAPI audio capture, pure C# AudioConverter, VAD silence trimmer
β βββ Vacanam.Speech/ Whisper.net speech recognition & automatic model downloader
β βββ Vacanam.LLM/ LLamaSharp v0.27.0 CPU local LLM text refinement & transform engine
β βββ Vacanam.Input/ Text injection strategies (Clipboard backup/restore, SendInput, UIA)
β βββ Vacanam.Infrastructure/ Settings persistence (JSON), SQLite history, DI registration
β βββ Vacanam.App/ WPF UI (Tray, Floating Overlay, Onboarding Window, Settings Window)
βββ tests/
βββ Vacanam.Tests/ xUnit unit tests across core domain, audio feedback, transform, and hotkeys
All models, settings, databases, and operational logs are stored locally:
%LOCALAPPDATA%\Vacanam\
βββ Models\
β βββ Whisper\
β β βββ ggml-tiny.bin (Ultra Fast ~75 MB)
β β βββ ggml-small.bin (Balanced ~466 MB, Recommended)
β βββ LLM\
β βββ Qwen2.5-0.5B-Instruct-Q4_K_M.gguf (~398 MB)
β βββ Llama-3.2-1B-Instruct-Q4_K_M.gguf (~808 MB)
βββ history.db (SQLite database - opt-in history)
βββ Logs\
β βββ vacanam-YYYYMMDD.log
βββ settings.json
Distributed under the MIT License. Free and open-source forever.
Vacanam is an independent project designed for local offline voice typing and desktop AI assistance on Windows.