Free, offline, privacy-first CAT tool. Runs entirely on your device — browser or desktop. No server, no account, no lock-in.
offline.cat runs translation on your machine, not a cloud service. This means:
- Private - data never leaves the device
- Fast - no server round-trip
- Offline - works anywhere, no internet required
- Free - no API keys, no tokens, no billing
The web build uses Chrome's built-in Translator API. Requires Chrome 138+ with on-device language packs installed.
The desktop build embeds llama.cpp and ships a catalog of small open-weight models (Gemma 4, Qwen 3.5, Phi-4-mini, and more). Download for macOS / Windows / Linux from Releases.
- Translation API - document translation
- Streams API - streaming translation results (future)
- Writing Assistance APIs - rewriting, summarization (future)
- Proofreader API - grammar and spelling checks (future)
- Prompt API - free-form language model access (future)
- Web Speech API - voice dictation
- React Router
- SQLite Wasm
- Tauri v2 + desktop dev setup in
src-tauri/README.md
Install the dependencies:
npm installStart the web dev server with HMR:
npm run devYour application will be available at http://localhost:5173.
For the desktop app (requires Rust + cmake, see src-tauri/README.md):
npm run tauri:devCreate a production build:
npm run buildDeploy to Cloudflare Pages:
npx wrangler pages deploy build/clientOr connect the repo to the Cloudflare Pages dashboard with:
- Build command:
npm run build - Output directory:
build/client
- Bump the version in
package.json,src-tauri/tauri.conf.json, andsrc-tauri/Cargo.toml. - Commit, tag, and push:
git add package.json src-tauri/tauri.conf.json src-tauri/Cargo.toml
git commit -m "release v<version>"
git tag v<version>
git push origin v<version>The tag push triggers .github/workflows/release.yml, which builds and publishes signed desktop installers per platform plus latest.json for the auto-updater.
To build and run using Docker:
docker build -t offline-cat .
# Run the container
docker run -p 3000:3000 offline-cat