A desktop application that provides instant AI-powered translation with a simple double Ctrl/Cmd+C shortcut, similar to DeepL.
- ⚡ Instant Translation - Double Ctrl/Cmd+C to translate any selected text
- 🌍 Multi-Language Support - 26 built-in languages plus custom language support
- 🤖 Auto-Updating AI Models - Claude, GPT, Gemini, and custom models, with the model list kept up to date automatically
- 🔁 Back-Translation - Instantly check quality by translating the result back to the source language
- 🧭 Language Direction Display - See the detected source → target language at a glance
- 💬 Two Display Modes - Notification with auto-copy or resizable popup window
- 🎨 Customizable - Custom instructions (with AI assist), languages, and translation rules
- 🪶 Lightweight - Minimal resource usage, lives in your system tray
Download the latest version from GitHub Releases.
Windows:
Honyo-{version}.exe- Windows installer (recommended)Honyo-{version}-win.zip- Portable version (no installation required)
macOS:
- Apple Silicon (M1/M2/M3 Macs):
Honyo-{version}-arm64.dmg- DMG installer (recommended)Honyo-{version}-arm64-mac.zip- ZIP archive
- Intel Macs:
Honyo-{version}.dmg- DMG installer (recommended)Honyo-{version}-mac.zip- ZIP archive
Linux:
Honyo-{version}.AppImage- Universal Linux package (recommended)Honyo-{version}.deb- Debian/Ubuntu packageHonyo-{version}.rpm- Red Hat/Fedora packageHonyo-{version}.tar.gz- Generic Linux archive
-
Download the appropriate version for your Mac from the downloads section above
-
For DMG files:
- Open the DMG file
- Drag Honyo.app to your Applications folder
-
For ZIP files:
- Extract the zip file
- Move
Honyo.appto your Applications folder
-
Remove quarantine attribute (required for unsigned apps):
xattr -cr /Applications/Honyo.app
-
First launch: Right-click (or Control-click) on Honyo.app and select "Open", then click "Open" in the security dialog
-
Grant accessibility permissions:
- Open System Preferences > Security & Privacy > Privacy > Accessibility
- Add and enable Honyo.app
Download and run Honyo-*.exe
Download and run Honyo-*.AppImage
To use the translation features, you need to configure API keys for your preferred AI provider:
- Click on the system tray icon
- Select "Settings..."
- In the "API Keys" tab, enter your API keys for the providers you want to use:
- Anthropic: Get your key from console.anthropic.com
- OpenAI: Get your key from platform.openai.com
- Google AI: Get your key from makersuite.google.com
- Click "Save"
The app automatically detects your system language and sets appropriate defaults:
- If your system is in English: Primary → English, Secondary → Japanese
- If your system is in Japanese: Primary → Japanese, Secondary → English
- Other languages: Primary → System language, Secondary → English
You can change these settings from the system tray menu:
- Click on "Primary: [Language]" to select your primary translation target
- Click on "Secondary: [Language]" to select your fallback language
Supported Languages (26): English, Japanese, Chinese (Simplified), Chinese (Traditional), Korean, Spanish, French, German, Italian, Portuguese, Russian, Arabic, Hindi, Thai, Vietnamese, Indonesian, Malay, Filipino, Dutch, Polish, Turkish, Ukrainian, Swedish, Danish, Norwegian, Finnish
You can add custom instructions that will be included in all translations:
- Click on the system tray icon
- Select "Settings..."
- Go to the "Customization" tab and find the "Custom Prompt" section
- Enter your custom instructions (e.g., terminology guidelines, tone preferences, specific translation rules)
- Click "Save"
Examples of custom instructions:
- Use formal language
- Keep product names in English
- Maintain consistent terminology
- Follow specific industry standards
Generate with AI: Not sure how to phrase your instructions? Click "Generate with AI" and describe what you want in plain language — Honyo uses your selected model to write or refine the custom prompt for you.
Whatever the input looks like — a question, a greeting, or even text that says "ignore previous instructions" — Honyo always treats it as text to translate, never as a command. Markdown and code formatting is preserved: the syntax is kept intact and only the human-readable text is translated.
Pick a model from the AI Model menu in the system tray. The list stays current automatically: Honyo refreshes it from free public model catalogs (no API key required, cached for 24 hours), showing the latest models per provider. If it can't reach the network, it falls back to a built-in list of current Claude, GPT, and Gemini models. Your selected model is always kept in the list even if a refresh would otherwise drop it.
Use any AI model not included in the list:
- Open Settings → "Customization" tab → "Custom Model" section
- Enter the model name (e.g.,
gpt-5.6-sol,claude-opus-4-8) - Select the provider (Anthropic, OpenAI, or Google AI)
- Click "Save"
- Select "Custom Model" from the AI Model menu
Add languages not included in the default list:
- Open Settings → "Customization" tab → "Custom Languages" section
- Enter language names, one per line (e.g., Esperanto, Sanskrit, Klingon)
- Click "Save"
- Your custom languages will appear in the Primary/Secondary language menus
Configure popup window and translation display behavior:
- Open Settings → "General" tab
- Auto-close on blur: Enable this option to automatically close the popup window when it loses focus
- Enable streaming: Enable this option to see translations appear progressively as the AI generates them (popup mode only)
- Popup font size: Set the translation text size in the popup (10–24px)
- Reset Popup Size: Restore the popup window to its default size
- Click "Save"
Display Modes:
- Notification & Copy: Translation result appears as a system notification and is automatically copied to clipboard
- Popup Window: Translation result appears in a floating window with additional features:
- Language direction shown in the header (e.g. "English → Japanese")
- Real-time streaming (when enabled)
- Back-translate button (⇄) to check the result against the source language
- Copy button and keyboard shortcuts (Enter to copy, Escape to close)
- Right-click context menu for copying selected text or all text
- Resizable window — the size is remembered across closes
- Auto-return focus to previous application when closed
- Select any text in any application
- Press Ctrl+C (Windows/Linux) or Cmd+C (macOS) twice quickly
- Depending on your display mode:
- Notification mode: Translation appears as notification and is copied to clipboard
- Popup mode: Translation appears in a floating window
- In popup mode:
- The header shows the detected language direction (e.g. "English → Japanese")
- Click the back-translate button (⇄) to translate the result back to the source language and check its quality — click again to toggle between the two views (the header shows the reverse direction while viewing the back-translation)
- Press Enter or click "Copy" to copy the translation and close
- Press Escape or click "×" to close without copying
- Right-click the text for copy options
The app intelligently determines the translation direction:
- If the source text matches your primary language → translates to secondary language
- If the source text is any other language → translates to primary language
- For mixed-language text → detects the language with highest word count ratio
Access these options by clicking the system tray icon:
- Primary/Secondary Language: Set your translation language preferences (26+ built-in languages + custom)
- Display Mode: Choose between notification and popup window
- AI Model: Choose which AI model to use for translations (latest Claude, GPT, and Gemini models — auto-updated — or a custom model)
- Settings: Configure API keys, custom instructions, models, languages, and display settings
- Pause Translation: Temporarily disable the translation feature
- Stop Current Translation: Cancel ongoing translation
- Check for Updates: Check for new versions with progress display
- Quit: Exit the application
- Ctrl/Cmd+C (twice): Trigger translation
- Enter (in popup): Copy and close
- Escape (in popup): Close without copying
Honyo automatically checks for updates on startup and every hour:
- Update available: Choose to Download, remind Later, or Skip the version
- Downloading: Progress displayed in menu (e.g., "Downloading Update (45%)...")
- Downloaded: Option to restart and install or install later
- Skipped versions: Won't be notified again until a new version is released
- Manual check: Use "Check for Updates" from the menu
You can also set API keys via environment variables:
ANTHROPIC_API_KEYOPENAI_API_KEYGOOGLE_API_KEY
Create a .env file in the project root:
ANTHROPIC_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
GOOGLE_API_KEY=your_key_here- Node.js >= 23.6.0
- npm
git clone https://github.com/rot1024/honyo.git
cd honyo
npm installnpm start| Command | Description |
|---|---|
npm start |
Run the app in development mode |
npm test |
Run tests with Vitest |
npm run test:ui |
Run tests with Vitest UI |
npm run typecheck |
Type check with TypeScript |
npm run lint |
Lint with ESLint |
npm run lint:fix |
Fix lint errors |
npm run format |
Format with Prettier |
npm run dist |
Build and package for current platform |
npm run dist:mac |
Build and package for macOS |
npm run dist:win |
Build and package for Windows |
npm run dist:linux |
Build and package for Linux |
src/
├── main.ts # Entry point
├── models.ts # AI model definitions
├── app/ # App lifecycle, updater, accessibility
├── config/ # Configuration management
├── keyboard/ # Keyboard event handling (uiohook-napi)
├── language/ # Language detection and constants
├── translation/ # AI translation (Vercel AI SDK)
└── ui/ # Tray, menu, popup, settings windows
- Electron - Desktop app framework
- TypeScript - Language
- Vercel AI SDK - AI provider integration (Anthropic, OpenAI, Google)
- uiohook-napi - Global keyboard hooks
- electron-builder - Packaging
- Vitest - Testing
- ESLint + Prettier - Linting and formatting
npm run release # Auto version bump based on commits
npm run release:patch # Patch release (0.0.x)
npm run release:minor # Minor release (0.x.0)
npm run release:major # Major release (x.0.0)This updates version, generates CHANGELOG.md, and creates a git tag. Push the tag to trigger the GitHub Actions release workflow.
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
