Verba is a fully offline, local-first AI-powered text-polishing utility built with Tauri v2, React, TypeScript, and Rust—with the flexible option to also connect to online LLM providers. It runs silently in your system tray, listens to a global hotkey, instantly captures selected text, polishes it locally or online, and pastes the refined text back to your focused application.
Important
100% Offline & Private: Verba runs completely offline using a built-in llama-completion sidecar powered by the Llama-3.2-1B-Instruct model—so your text never leaves your device. If you prefer, you can easily configure it to use online cloud providers (like OpenAI, Anthropic, Gemini, or Groq) in the Settings.
- Global Hotkey Activation: Quickly select any text, press the hotkey (default:
Ctrl+Alt+P), and watch it load in the Verba popup. - AI Text Polishing: Integrate with top-tier AI LLM providers to clean up grammar, tone, style, or translate text.
- Local Offline Inference: Run text polishing completely offline using the lightweight
Llama-3.2-1B-Instructmodel powered by a built-inllama-completionsidecar. No API keys or internet connection required! - Local Model Downloader: In-app panel to trigger, track, and cancel model downloads from HuggingFace with live download speeds and progress indicators.
- Auto-Paste Back: Seamlessly writes polished text back to your clipboard and injects it back into your active window.
- Clipboard Preservation: Backs up and restores your pre-existing clipboard contents automatically, preventing pollution of your copy/paste queue.
- Keyboard Safety Validation: Dynamically detects physical keystrokes and waits for hotkey releases before executing
Ctrl+C, preventing selection replacement bugs (e.g. typing a literal 'c' instead of copying). - Anti-Clipping Window Layout: Custom container layouts with fine-tuned paddings and margins to prevent CSS box-shadow clipping issues on transparent overlays.
- System Tray Menu: Run the app in the background with a system tray menu allowing easy access to settings and application exit.
- Polishing History: Keep track of previously edited texts for easy reference and reuse.
- Secure Storage: Safe handling of API keys using system-native keyring storage via Rust.
Verba supports 100% local, offline text polishing. To use this feature:
- Get the Executables: Download the
llama-completionexecutables and dynamic libraries (.dll/.so/.dylib) from thellama.cppreleases. - Place Executables & DLLs:
- For compilation and bundling, place a renamed binary
llama-completion-<target-triple>.exein the src-tauri/binaries directory. - For active development/runtime, place the dynamic libraries (
llama.dll,ggml.dll,ggml-cpu-*.dll, etc.) andllama-completion.exein the active build folder (e.g., src-tauri/target/debug or the production installation folder).
- For compilation and bundling, place a renamed binary
- Download the Model: Launch Verba, go to Settings, select the Local provider, and click Download Model to fetch the 800MB
Llama-3.2-1B-Instruct-Q4_K_M.ggufmodel file directly. - Trigger Polishing: Highlight any text, press your hotkey, select Generative (or any local prompt), and watch it polish instantly offline without calling any external APIs.
Verba is fully compatible with macOS (both Apple Silicon/M1/M2/M3 and Intel chips). Follow these setup requirements:
- Global Hotkey: The default global trigger hotkey on macOS is
Cmd+Alt+P(compared toCtrl+Alt+Pon Windows). - Accessibility Permissions:
- Because Verba simulates key presses (
Cmd+CandCmd+V) via AppleScript to capture and paste text automatically, macOS requires Accessibility Permissions. - Upon first trigger, macOS will prompt you. Go to
System Settings -> Privacy & Security -> Accessibilityand ensure Verba is checked/enabled. - If keystroke emulation fails to paste, toggle the permission off and back on.
- Because Verba simulates key presses (
- Local Offline Inference Setup (macOS):
- For compilation and bundling, copy the relevant
llama-completionexecutable from the target macOS directory (llama-macos-arm64orllama-macos-x64) into src-tauri/binaries/ with the corresponding target triple:- Apple Silicon (M1/M2/M3/M4):
llama-completion-aarch64-apple-darwin - Intel Macs:
llama-completion-x86_64-apple-darwin
- Apple Silicon (M1/M2/M3/M4):
- Make sure you also copy the required dynamic libraries (e.g.
libllama-*.dylib,libggml-*.dylib, etc.) to the same directory or system library paths as needed if running from compiled source.
- For compilation and bundling, copy the relevant
- Desktop Framework: Tauri v2 (Rust backend)
- Local LLM Engine: llama.cpp via
llama-completionsidecar - Frontend library: React with Vite
- Programming Languages: Rust (Core Logic), TypeScript (UI & Application orchestration)
- Security: System Keychain (
keyring-rs) for API key protection
Ensure you have the following installed on your local machine:
- Rust & Cargo: Follow instructions at rustup.rs.
- Node.js & npm: Install via nodejs.org.
- Tauri Prerequisites: Depending on your OS, install necessary dependencies listed in the Tauri Getting Started Guide.
-
Clone the repository:
git clone https://github.com/RhythmicDias/Verba.git cd Verba -
Install node dependencies:
npm install
-
Run in development mode:
npm run tauri dev
To build a standalone production-ready package:
npm run tauri buildDistributed under the MIT License. See LICENSE for more information.