README Version: [English | 简体中文]
Karma is a privacy-first desktop application for detecting and redacting Personally Identifiable Information (PII), based on OpenAI Privacy Filter model. All AI inference runs entirely on-device — your data never leaves your machine.
- macOS (Apple Silicon): Powered by MLX for native high-performance inference
- Windows / Linux: Powered by ONNX Runtime with automatic GPU acceleration (CUDA / DirectML / CPU fallback)
Karma identifies 8 types of PII in text and replaces them with labeled placeholders:
| PII Type | Placeholder |
|---|---|
| Person Name | [PERSON] |
| Email Address | [EMAIL] |
| Phone Number | [PHONE] |
| Physical Address | [ADDRESS] |
| Date | [DATE] |
| URL | [URL] |
| Account Number | [ACCOUNT_NUMBER] |
| Secret / Password | [SECRET] |
- Real-time PII Detection: Token-level classification with platform-optimized inference
- Cross-platform: macOS (MLX) / Windows (ONNX + CUDA/DirectML) / Linux (ONNX + CUDA/CPU)
- Text Redaction: One-click redaction with auto-copy to clipboard
- HTTP API Server: Built-in REST API server (
/health,/redact) for integration with other tools - Redaction History: SQLite-backed history with infinite scroll browsing
- Global Shortcut: Quick access via configurable keyboard shortcut (default:
Cmd+Shift+K) - Bilingual UI: English and Simplified Chinese
- Zero Cloud Dependency: All processing happens locally for complete privacy
| Component | Technology |
|---|---|
| Desktop Framework | Tauri 2 (Rust) |
| Frontend | React + TypeScript + Tailwind CSS |
| State Management | Zustand |
| AI Inference (macOS) | MLX (via mlx-rs, in-process) |
| AI Inference (Windows/Linux) | ONNX Runtime (via ort, CUDA / DirectML / CPU) |
| HTTP Server | Axum |
| Database | SQLite (rusqlite) |
| Build Tool | Vite |
Download the latest release from the Releases page:
| Platform | File | Requirements |
|---|---|---|
| macOS | .dmg |
macOS 15.0+ with Apple Silicon (M1/M2/M3/M4) |
| Windows | .exe |
Windows 10+ (x64) |
| Linux | .deb |
Ubuntu 22.04+ (x64) |
| Platform | Model | Link |
|---|---|---|
| macOS (Apple Silicon) | MLX format | mlx-community/openai-privacy-filter-bf16 |
| Windows / Linux | ONNX format | yasserrmd/privacy-filter-ONNX |
- Open Karma and navigate to the Model page
- Select your local model directory (MLX or ONNX depending on your platform)
- Wait for the model to load (status indicator turns green)
- Switch to the Redactor page, paste your text, and click Redact
Press Cmd+Shift+K (configurable in Settings) to instantly open Karma and jump to the Redactor page.
Enable the built-in HTTP server in the Server page to expose the redaction API:
# Health check
curl http://127.0.0.1:8000/health
# Redact text
curl -X POST http://127.0.0.1:8000/redact \
-H "Content-Type: application/json" \
-d '{"text": "My name is John and my email is john@example.com"}'- Node.js >= 20
- Rust (stable)
- CMake and a C++ toolchain (builds the mlx-c wrapper on macOS)
# Install frontend dependencies
npm install
# Build Tauri app (inference engine is compiled into the app; no sidecar needed)
make appOr run the full pipeline:
make allNote: on macOS the build downloads the prebuilt MLX runtime (
libmlx.dylib+mlx.metallib, ~130 MB) from themlx_metalPyPI wheel intosrc-tauri/vendor/mlx-dist/viamake fetch-mlx(also triggered automatically bymake app/make dev). SetPIP_INDEX_URLto a PyPI mirror if pypi.org is unreachable. Remove it withmake distclean.