DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
컴퓨터에서 실행 중인 모든 앱의 텍스트를 번역할 수 있다
This application can translate text captured from any application running on your computer.
생산성Python · PowerShellGitHub @bquenin직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Offline screen translator for Japanese retro games. Captures text from any window, performs OCR, translates to English, and displays subtitles in a floating overlay.
input group membership. The installer will show instructions.xdg-desktop-portal-kde on Plasma).qdbus6 org.kde.KWin /KWin org.kde.KWin.supportInformation and the KWin logs. An X11 desktop session is a possible workaround.xcb) requires libxcb-cursor0 (Debian/Ubuntu/Mint) or xcb-util-cursor (Fedora/Arch). Without it the GUI will abort with Could not load the Qt platform plugin "xcb".libpulse.so.0, provided by libpulse0 on Debian/Ubuntu/Mint), including on PipeWire desktops. The PulseAudio server is not required.macOS/Linux:
curl -LsSf https://raw.githubusercontent.com/bquenin/interpreter/main/install.sh | bash
Windows (PowerShell):
powershell -c "irm https://raw.githubusercontent.com/bquenin/interpreter/main/install.ps1 | iex"
Then run with interpreter-v2.
By default everything is installed under your user profile (about 3 GB of application files plus 1.1 GB of models on first run). If your system drive is short on space, set INTERPRETER_HOME to a folder on another drive before running the installer:
macOS/Linux:
curl -LsSf https://raw.githubusercontent.com/bquenin/interpreter/main/install.sh | INTERPRETER_HOME=/mnt/data/interpreter bash
Windows (PowerShell):
$env:INTERPRETER_HOME = "D:\interpreter"; powershell -c "irm https://raw.githubusercontent.com/bquenin/interpreter/main/install.ps1 | iex"
The application, its Python runtime, and the downloaded models all go under that folder. The location is remembered in ~/.interpreter/install-dir, so later upgrades and the uninstaller use it without setting the variable again. Only the small interpreter-v2 launcher and your config.yml stay in your user profile.
To change the location later, run the installer again with a new INTERPRETER_HOME. It removes the application from the old location and reinstalls it in the new one. Models are downloaded again on first run; the installer prints where the old ones are so you can delete them.
To go back to the default location, run the uninstaller (see below) and then the plain installer.
To update to the latest version, run the installer again (see Installation above).
macOS/Linux:
curl -LsSf https://raw.githubusercontent.com/bquenin/interpreter/main/uninstall.sh | bash
Windows (PowerShell):
powershell -c "irm https://raw.githubusercontent.com/bquenin/interpreter/main/uninstall.ps1 | iex"
This removes interpreter-v2, config files, and cached models.
interpreter-v2
This opens the GUI where you can select a window to capture and configure all settings.
The source list also shows video devices (capture cards, webcams). Pick your card there to translate a console game without going through OBS: the console plays on the TV through the card's passthrough, and the banner with the translation floats on the PC screen. Video sources are banner mode only, since there is no window on screen to draw over. Exclusion zones and the OCR confidence are remembered per device, like they are per window.
On macOS the first capture triggers the camera permission prompt for the terminal that launched Interpreter.
A subtitle bar at the bottom of the screen displaying translated text. Draggable, opaque background, centered text.
Transparent overlay positioned over the game window. Translated text appears directly over the original Japanese text at OCR-detected positions. Click-through so you can interact with the game.
Sugoi V4 is the built-in default and needs no setup. If you want to try a larger language model, the Translation panel in the main window can send text to an Ollama server or to any OpenAI-compatible endpoint (LM Studio, llama.cpp server, vLLM, OpenRouter, OpenAI, ...). You bring the model; Interpreter only sends the OCR text and shows the reply.
ollama pull hf.co/sugoitoolkit/Sugoi-14B-Ultra-GGUF:Q4_K_M
On the project's benchmark it scores +12 chrF++ over the built-in Sugoi V4 across every game (see benchmark/translation/RESULTS.md). With less VRAM, gemma3:4b (3.3 GB) is roughly on par with the built-in model; anything under 2B mostly outputs romaji or nonsense.http://127.0.0.1:11434, click Refresh and pick the model.Use 127.0.0.1, not localhost: on Windows, localhost adds about two seconds to every request.
gemma3:4b in about 100 ms. CPU-only machines take seconds per line, which is fine for dialogue and painful for menus. The fuzzy translation cache still avoids re-translating text that has not changed. Keep only one large model in use at a time: two 8 GB models on a 12 GB card evict each other on every request.request_options in config.yml; the fields are merged into every request, for example request_options: {reasoning_effort: none}. Stripping inline <think> blocks from the reply is only a fallback and does not save the thinking time. If a server rejects an option, the Test button shows its error.config.yml, every line of game text leaves your machine, and each request may cost money. Nothing is sent anywhere unless you pick the LLM engine.The same settings live in config.yml under translation_backend and llm if you prefer editing them by hand.
MeikiOCR is the built-in default and needs no setup. If it struggles with a particular game's font, the OCR panel can hand the screen capture to owocr instead. owocr is a separate program that wraps many OCR engines behind one interface: Google Lens, Bing, OneOCR (Windows), Apple Live Text (macOS), Chrome Screen AI, MeikiOCR, Manga OCR, EasyOCR, RapidOCR and more. You run owocr with the engine of your choice; Interpreter sends it each frame over a local websocket and reads back the text and its positions.
pip install "owocr[oneocr]" # Windows: uses the Snipping Tool OCR
pip install "owocr[lens]" # any platform: Google Lens (cloud)
The prebuilt owocr packages for Windows and macOS bundle every engine; they keep their tray icon, but the options below are all available in their configuration window.oneocr with glens, meikiocr, alivetext, mangaocrs, ... for another engine:
owocr -r websocket -w websocket -of json -e oneocr -el oneocr -t False -rt False -f False -a 0
Every flag matters: -of json sends coordinates, -rt False and -f False turn off owocr's text reordering and furigana filter (the filter silently drops lines), -a 0 stops owocr from pausing itself, and -t False hides the tray icon.ws://127.0.0.1:7331, click Test, then Apply. The OCR engine switches without interrupting capture.ws://, so pointing Interpreter at another machine sends every screen capture unencrypted over the network. Interpreter warns when the address is not local. On an untrusted network put a TLS proxy in front of owocr and use a wss:// URL.The same settings live in config.yml under ocr_backend and owocr.
Interpreter can read and translate games in Chinese, Korean, English, French, German, Spanish, Italian, Portuguese and Russian, not only Japanese. The built-in engines cannot: MeikiOCR reads Japanese only and Sugoi V4 translates Japanese to English only. So a non-Japanese game needs both alternative engines:
Apply refuses the combination of a non-Japanese source with Sugoi V4, and says so. The source language is also used to filter OCR noise: only regions that contain characters from that language's script are translated. The setting lives in config.yml as source_language.
Try adjusting the OCR confidence slider in the GUI. Lower values include more text (but may include garbage), higher values are stricter.
First run downloads models (~1.5GB). Subsequent runs use cached models from ~/.cache/huggingface/.