explaingit

fishjar/kiss-translator

10,128JavaScriptAudience · generalComplexity · 2/5Setup · moderate

TLDR

A browser extension and userscript that overlays translated text next to the original on any web page, supporting dozens of translation services including Google, DeepL, OpenAI, and local Ollama models.

Mindmap

mindmap
  root((kiss-translator))
    Translation sources
      Google and Microsoft
      DeepL and DeepLX
      OpenAI compatible
      Gemini and Claude
    Platforms
      Chrome and Edge
      Firefox
      Android and iOS
    Features
      Bilingual overlay
      YouTube subtitles
      Input field translation
      Hover translation
    Sync options
      KISS-Worker
      WebDAV
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Read foreign-language websites with the original and translated text side by side without losing the original content.

USE CASE 2

Translate YouTube subtitles into your language and merge short subtitle segments before translating for better flow.

USE CASE 3

Use your own OpenAI or local Ollama model as the translation backend instead of relying on a third-party service.

USE CASE 4

Sync your translation settings and custom per-site rules across multiple devices using WebDAV or a self-hosted companion service.

Tech stack

JavaScript

Getting it running

Difficulty · moderate Time to first run · 5min

Requires configuring at least one external translation API key or a local Ollama endpoint before translations will work.

In plain English

KISS Translator is a browser extension and Greasemonkey userscript that adds bilingual translation to web pages. "Bilingual" here means it shows both the original text and the translated version side by side on the page, rather than replacing the original. The project is open source and the README is written primarily in Chinese, though English and Japanese versions are linked. The extension works in Chrome, Edge, Firefox, Kiwi on Android, Orion on iOS, and Thunderbird. The userscript version works in standard userscript managers like Tampermonkey and Violentmonkey, as well as iOS Safari through a separate installer. The authors recommend the browser extension over the userscript for a more complete experience, noting the userscript can run into cross-origin restrictions. For translation, the tool connects to a large range of external services you configure yourself: Google, Microsoft, Tencent, Volcengine, DeepL, DeepLX, OpenAI-compatible endpoints (which covers OpenAI, local Ollama models, DeepSeek, OpenRouter, and others), Gemini, Claude, AzureAI, and CloudflareAI. Beyond translating the main body of a web page, it also handles text inside input fields, selected text via a popup, hover translation for individual paragraphs, and YouTube subtitle translation with options to merge subtitle segments before translating. Settings can be synced across devices using either a self-hosted companion service called KISS-Worker (deployable on Cloudflare or Docker) or a WebDAV server. Translation rules can be customized per-site, and you can subscribe to community-maintained rule sets from a separate repository. Keyboard shortcuts are configurable through the browser's own extension shortcuts settings. The project is a personal side project, with the README noting there is no strict development schedule and that community contributions are welcome.

Copy-paste prompts

Prompt 1
I installed KISS Translator in Chrome and want to use DeepL as my translation service. Walk me through setting up the API key.
Prompt 2
Help me configure KISS Translator to use a local Ollama model instead of a cloud API for privacy.
Prompt 3
I want KISS Translator to show bilingual subtitles on YouTube. How do I enable and configure that feature?
Prompt 4
Show me how to deploy the KISS-Worker companion service on Cloudflare Workers so I can sync my settings across devices.
Prompt 5
I need custom translation rules for a specific website. How do I write and apply per-site rules in KISS Translator?
Open on GitHub → Explain another repo

← fishjar on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.