Privacy-first AI translation that runs entirely on your machine
Features • Quick Start • Usage • Build from Source
Karpa is a privacy-first AI translator that runs entirely on your machine. Your data never leaves your device — no cloud, no tracking, no compromises.
Supports LM Studio, Ollama, OpenAI, Anthropic, Google Gemini, and OpenRouter.
| Feature | Description |
|---|---|
| Complete Privacy | All translations happen locally. No data is ever sent to external servers. |
| Desktop App | Native Windows app built with Tauri. No browser needed. |
| Multi-Language Support | Translate between 12+ languages including English, Turkish, Spanish, French, German, Italian, Portuguese, Russian, Japanese, Chinese, Korean, and Arabic. |
| Text & File Translation | Translate plain text or upload files (.txt, .md, .json, .csv, .srt, and more). |
| Translation Tones | Choose from Standard, Formal, Casual, or Technical tones to match your context. |
| History & Favorites | Automatically save your translation history and star your favorite translations. |
| Beautiful UI | Modern, responsive design with dark mode support and smooth animations. |
| Text-to-Speech | Listen to translations with built-in TTS support for multiple languages. |
Pick one of the supported providers:
- LM Studio — Download, load a model, and start the local server
- Ollama — Download and pull a model
- OpenAI / Anthropic / Google Gemini / OpenRouter — Create an account and get an API key
Download the latest installer from Releases:
| Platform | Package |
|---|---|
| Windows | .exe (NSIS installer), .msi |
| macOS | .dmg (Intel + Apple Silicon) |
| Linux | .deb, .AppImage, .rpm |
- Select source language (or Auto Detect)
- Select target language
- Choose translation tone (optional)
- Enter text
- Press
Ctrl+Enteror click Translate
- Switch to File mode
- Upload a text file
- Select target language
- Click Translate
- Download the translated file
| Shortcut | Action |
|---|---|
Ctrl+Enter |
Translate |
git clone https://github.com/sudoeren/karpa.git
cd karpa
npm installDesktop app:
npm run desktop:build # Windows → .exe/.msi | macOS → .dmg | Linux → .deb/.AppImage
npm run desktop:dev # Dev mode with hot reloadDocker:
docker compose up -d
# or
docker run -p 7250:7250 ghcr.io/sudoeren/karpa:latestkarpa/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── page.tsx # Main translator
│ │ ├── history/ # Translation history
│ │ ├── favorites/ # Saved translations
│ │ ├── settings/ # App settings
│ │ └── about/ # About page
│ ├── components/ # React components
│ ├── contexts/ # React contexts
│ ├── hooks/ # Custom hooks
│ └── lib/ # Utilities & providers
│ ├── providers.ts # LLM provider configs
│ ├── client-translate.ts # Client-side translation
│ ├── client-test-connection.ts
│ └── client-models.ts
├── public/ # Static assets
├── src-tauri/ # Tauri desktop app
│ ├── src/ # Rust source
│ ├── icons/ # App icons
│ ├── Cargo.toml
│ └── tauri.conf.json
├── Dockerfile
└── docker-compose.yml
- Windows: Settings → Apps, or re-run the installer
- macOS: Drag from Applications to Trash
- Linux:
sudo dpkg -r karpaor remove the AppImage file
Run the script inside the karpa folder:
./uninstall.sh # macOS / Linux
uninstall.bat # WindowsClear browser data (history, settings, API key) manually from Settings → Data.
MIT License — see LICENSE for details.

