transkit-app/transkit-desktop

Transkit is a cross-platform translation & OCR app, originally based on Pot (GPL-3.0)

JavaScript

37

1,692 commits

updated Apr 16, 2026

See the code

README

TransKit Desktop

TransKit Desktop is a cross-platform translation, OCR, realtime monitor, and TTS app for Windows, macOS, and Linux.

English | Tiếng Việt | 中文 | 한글

Table of Contents

Usage

Live Interpreter
Live Interpreter with AI suggestions, Submode, and TTS and PTT (Talking native language and listen to translated language). All services are configurable in the Service settings.

Voice Anywhere
Voice input into any app or window. All services are configurable in the Service settings.
Youtube Video

Translation by selectionTranslate by inputExternal calls
Select text and press the shortcut to translatePress shortcut to open translation window, translate by hitting EnterMore efficient workflow by integrating with other apps
Clipboard ListeningScreenshot OCRScreenshot Translation
Click the top left icon on any translation panel to start clipboard listening. Copied text will be translated automatically.Press shortcut, select area to OCRPress shortcut, select area to translate

Keyboard Shortcuts

All shortcuts are fully configurable in Settings → Hotkey. The defaults below are registered automatically on a fresh install — you can reassign or clear any of them at any time.

Cross-platform note: Ctrl+Alt on Windows / Linux is physically the same key combination as Ctrl+Option on macOS. The shortcut is registered once and works on all three platforms without any per-OS adjustment.

FeatureDefault ShortcutDescription
Voice AnywhereCtrl+Alt+VShow / hide the floating mic button for voice input into any app or window
Realtime TranslateCtrl+Alt+MOpen the Audio Monitor for live speech-to-text + translation
Selection TranslateCtrl+Alt+QTranslate the currently selected text
Input TranslateCtrl+Alt+WOpen the text-input translation window
OCR RecognizeCtrl+Alt+RCapture a screen region and extract text
OCR TranslateCtrl+Alt+OCapture a screen region and translate the text

Why these keys?

The Ctrl+Alt+ prefix (Ctrl+Option+ on macOS) was chosen because:

  • Not claimed by any OS system shortcut on Windows, macOS, or Linux
  • Ctrl+Alt+Del, Ctrl+Alt+T (Linux terminal), and Ctrl+Alt+L (Linux lock) are the only reserved combinations in this family — all avoided above
  • Common developer shortcuts (Ctrl+Shift+I, Ctrl+Shift+R, `Ctrl+``) that would conflict with browsers and IDEs are not used
  • Single-hand press is still comfortable with the left hand on Ctrl+Alt and a letter key

You can freely reassign any shortcut in Settings → Hotkey, or clear a field (Backspace) to disable it.

What Is New In TransKit

Compared to upstream Pot, TransKit extends realtime and AI workflows.

Realtime Monitor

Implemented in src/window/Monitor/index.jsx and related components.

  • Realtime meeting monitor with low-latency speech-to-text and translation
  • Sub Mode (subtitle-style overlay)
  • AI context generation and AI suggestion per transcript entry
  • Bookmark timeline for important lines
  • Auto-save transcript to Markdown files
  • Quick open for saved transcript file/folder

TTS (Free + Premium, BYO API)

  • Free-friendly: Edge TTS, Google TTS
  • Premium: ElevenLabs, OpenAI-compatible TTS
  • Self-host option: VieNeu streaming TTS
  • BYO API key per user in app settings

Installation

Release page: https://github.com/transkit-app/transkit-desktop/releases/latest

Windows

  1. Download the latest .exe installer from Releases.
  2. Choose package by architecture:
    • x64: TransKit_{version}_x64-setup.exe
    • x86: TransKit_{version}_x86-setup.exe
    • arm64: TransKit_{version}_arm64-setup.exe
  3. Run the installer.

    [!NOTE] If Windows Defender shows a "Windows protected your PC" message, click "More info" and then "Run anyway".

Alternatively, install via Winget:

winget install TransKit

macOS

Install via Homebrew:

brew tap transkit-app/tap
brew install --cask transkit

Alternatively

  1. Download the latest .dmg from the Releases page.
  2. Open the .dmg and drag TransKit to Applications.
  3. Important — the app is not yet signed with an Apple Developer certificate. macOS will block it on first open. Run this command once in Terminal to allow it:
    xattr -cr /Applications/TransKit.app
    
  4. On first launch, macOS will ask for Screen & System Audio Recording permissions. Toggle them ON in System Settings for TransKit to capture system audio.

Linux

  1. Download the package for your architecture from Releases.
  2. Available package formats:
    • .deb (Ubuntu/Debian)
    • .rpm (Fedora/RHEL)
    • .AppImage (Universal)

Transcription Setup (Monitor)

While basic translation features (Selection/Input/OCR) work out-of-the-box, the Realtime Monitor requires a Transcription (Speech-to-Text) provider.

  1. Go to Settings > Service > Transcription.
  2. Add a provider and enter your API Key. Supported providers include:
  3. Go to Settings > Hotkey and set a shortcut for Audio Monitor.

FAQ & Troubleshooting

Why is the translation window not appearing?

  • Check if the hotkey is registered correctly in Settings > Hotkey.
  • Ensure there are no hotkey conflicts with other applications.

Monitor status shows "Error"?

  • Verify your Internet connection.
  • Check if your API key for the Transcription provider is correct and has a balance.

No audio captured on macOS?

  • Go to System Settings > Privacy & Security.
  • Ensure TransKit has permissions for Microphone and Screen Recording (required for capturing system audio).

Build From Source

Requirements

  • Node.js 20+
  • pnpm 9+
  • Rust stable

Commands

pnpm install
pnpm tauri dev
pnpm tauri build

[!TIP] For Developers Building from Source: If you want to disable Transkit Cloud features (Auth, Trial keys), copy .env.example to .env and set VITE_DISABLE_CLOUD=true before building.

Release New Version (All Platforms)

TransKit uses CI workflow: .github/workflows/package.yml

  1. Update CHANGELOG.
  2. Create tag:
git tag v3.1.0
git push origin v3.1.0
  1. GitHub Actions builds and publishes:
    • macOS: aarch64, x86_64
    • Windows: x64, x86, arm64 (+ fix-runtime variants)
    • Linux: x86_64, i686, aarch64, armv7

Required release secrets include TAURI_PRIVATE_KEY, TAURI_KEY_PASSWORD, and Apple signing/notarization secrets for macOS jobs.

Updater scripts/docs: updater/README.md

Contributing

  1. Fork repo and create a feature branch.
  2. Keep changes focused and add tests/checks when applicable.
  3. Run local checks/build before PR:
pnpm install
pnpm tauri dev
pnpm tauri build
  1. Open a Pull Request with:
    • clear summary
    • screenshots/GIFs for UI changes
    • migration notes if config keys are changed

Credits

This project was originally forked from Pot Desktop.

Significant improvements and modifications have been made.

License

GPL-3.0-only. See LICENSE.

Contributors

(top 30 of 50)

Pylogmon

1,276 commits

fernnguyen

204 commits

Havokdan

27 commits

Integral-Tech

23 commits

transkit-app/transkit-desktop

Transkit is a cross-platform translation & OCR app, originally based on Pot (GPL-3.0)

JavaScript

37

1,692 commits

updated Apr 16, 2026

See the code

README

TransKit Desktop

TransKit Desktop is a cross-platform translation, OCR, realtime monitor, and TTS app for Windows, macOS, and Linux.

English | Tiếng Việt | 中文 | 한글

Table of Contents

Usage

Live Interpreter
Live Interpreter with AI suggestions, Submode, and TTS and PTT (Talking native language and listen to translated language). All services are configurable in the Service settings.

Voice Anywhere
Voice input into any app or window. All services are configurable in the Service settings.
Youtube Video

Translation by selectionTranslate by inputExternal calls
Select text and press the shortcut to translatePress shortcut to open translation window, translate by hitting EnterMore efficient workflow by integrating with other apps
Clipboard ListeningScreenshot OCRScreenshot Translation
Click the top left icon on any translation panel to start clipboard listening. Copied text will be translated automatically.Press shortcut, select area to OCRPress shortcut, select area to translate

Keyboard Shortcuts

All shortcuts are fully configurable in Settings → Hotkey. The defaults below are registered automatically on a fresh install — you can reassign or clear any of them at any time.

Cross-platform note: Ctrl+Alt on Windows / Linux is physically the same key combination as Ctrl+Option on macOS. The shortcut is registered once and works on all three platforms without any per-OS adjustment.

FeatureDefault ShortcutDescription
Voice AnywhereCtrl+Alt+VShow / hide the floating mic button for voice input into any app or window
Realtime TranslateCtrl+Alt+MOpen the Audio Monitor for live speech-to-text + translation
Selection TranslateCtrl+Alt+QTranslate the currently selected text
Input TranslateCtrl+Alt+WOpen the text-input translation window
OCR RecognizeCtrl+Alt+RCapture a screen region and extract text
OCR TranslateCtrl+Alt+OCapture a screen region and translate the text

Why these keys?

The Ctrl+Alt+ prefix (Ctrl+Option+ on macOS) was chosen because:

  • Not claimed by any OS system shortcut on Windows, macOS, or Linux
  • Ctrl+Alt+Del, Ctrl+Alt+T (Linux terminal), and Ctrl+Alt+L (Linux lock) are the only reserved combinations in this family — all avoided above
  • Common developer shortcuts (Ctrl+Shift+I, Ctrl+Shift+R, `Ctrl+``) that would conflict with browsers and IDEs are not used
  • Single-hand press is still comfortable with the left hand on Ctrl+Alt and a letter key

You can freely reassign any shortcut in Settings → Hotkey, or clear a field (Backspace) to disable it.

What Is New In TransKit

Compared to upstream Pot, TransKit extends realtime and AI workflows.

Realtime Monitor

Implemented in src/window/Monitor/index.jsx and related components.

  • Realtime meeting monitor with low-latency speech-to-text and translation
  • Sub Mode (subtitle-style overlay)
  • AI context generation and AI suggestion per transcript entry
  • Bookmark timeline for important lines
  • Auto-save transcript to Markdown files
  • Quick open for saved transcript file/folder

TTS (Free + Premium, BYO API)

  • Free-friendly: Edge TTS, Google TTS
  • Premium: ElevenLabs, OpenAI-compatible TTS
  • Self-host option: VieNeu streaming TTS
  • BYO API key per user in app settings

Installation

Release page: https://github.com/transkit-app/transkit-desktop/releases/latest

Windows

  1. Download the latest .exe installer from Releases.
  2. Choose package by architecture:
    • x64: TransKit_{version}_x64-setup.exe
    • x86: TransKit_{version}_x86-setup.exe
    • arm64: TransKit_{version}_arm64-setup.exe
  3. Run the installer.

    [!NOTE] If Windows Defender shows a "Windows protected your PC" message, click "More info" and then "Run anyway".

Alternatively, install via Winget:

winget install TransKit

macOS

Install via Homebrew:

brew tap transkit-app/tap
brew install --cask transkit

Alternatively

  1. Download the latest .dmg from the Releases page.
  2. Open the .dmg and drag TransKit to Applications.
  3. Important — the app is not yet signed with an Apple Developer certificate. macOS will block it on first open. Run this command once in Terminal to allow it:
    xattr -cr /Applications/TransKit.app
    
  4. On first launch, macOS will ask for Screen & System Audio Recording permissions. Toggle them ON in System Settings for TransKit to capture system audio.

Linux

  1. Download the package for your architecture from Releases.
  2. Available package formats:
    • .deb (Ubuntu/Debian)
    • .rpm (Fedora/RHEL)
    • .AppImage (Universal)

Transcription Setup (Monitor)

While basic translation features (Selection/Input/OCR) work out-of-the-box, the Realtime Monitor requires a Transcription (Speech-to-Text) provider.

  1. Go to Settings > Service > Transcription.
  2. Add a provider and enter your API Key. Supported providers include:
  3. Go to Settings > Hotkey and set a shortcut for Audio Monitor.

FAQ & Troubleshooting

Why is the translation window not appearing?

  • Check if the hotkey is registered correctly in Settings > Hotkey.
  • Ensure there are no hotkey conflicts with other applications.

Monitor status shows "Error"?

  • Verify your Internet connection.
  • Check if your API key for the Transcription provider is correct and has a balance.

No audio captured on macOS?

  • Go to System Settings > Privacy & Security.
  • Ensure TransKit has permissions for Microphone and Screen Recording (required for capturing system audio).

Build From Source

Requirements

  • Node.js 20+
  • pnpm 9+
  • Rust stable

Commands

pnpm install
pnpm tauri dev
pnpm tauri build

[!TIP] For Developers Building from Source: If you want to disable Transkit Cloud features (Auth, Trial keys), copy .env.example to .env and set VITE_DISABLE_CLOUD=true before building.

Release New Version (All Platforms)

TransKit uses CI workflow: .github/workflows/package.yml

  1. Update CHANGELOG.
  2. Create tag:
git tag v3.1.0
git push origin v3.1.0
  1. GitHub Actions builds and publishes:
    • macOS: aarch64, x86_64
    • Windows: x64, x86, arm64 (+ fix-runtime variants)
    • Linux: x86_64, i686, aarch64, armv7

Required release secrets include TAURI_PRIVATE_KEY, TAURI_KEY_PASSWORD, and Apple signing/notarization secrets for macOS jobs.

Updater scripts/docs: updater/README.md

Contributing

  1. Fork repo and create a feature branch.
  2. Keep changes focused and add tests/checks when applicable.
  3. Run local checks/build before PR:
pnpm install
pnpm tauri dev
pnpm tauri build
  1. Open a Pull Request with:
    • clear summary
    • screenshots/GIFs for UI changes
    • migration notes if config keys are changed

Credits

This project was originally forked from Pot Desktop.

Significant improvements and modifications have been made.

License

GPL-3.0-only. See LICENSE.

Contributors

(top 30 of 50)

Pylogmon

1,276 commits

fernnguyen

204 commits

Havokdan

27 commits

Integral-Tech

23 commits

Languages

JavaScript

67.5%

Rust

21.3%

TypeScript

4.3%

Python

3.2%

PLpgSQL

1.2%

CSS

1.1%

Kotlin

1.1%