Translate Peek turns any text on your Mac screen into a translation, right where it is. Drag a box over a manga panel, menu, game, or PDF and the translation appears in place, not in a separate window. A live mode keeps translating a region in real time, so subtitles and chat stay translated as they change. Everything runs on-device, so it works offline and screenshots never leave your Mac. Strong Japanese, Korean, and Chinese support.
Hey Product Hunt ๐
I'm the maker of Translate Peek. I built it out of a small daily frustration: every screen translator I tried either uploaded my screenshots to a server, or dropped the result into a separate window, so I kept looking back and forth between the text and the translation.
I wanted something simpler: draw a box over anything on screen and read the translation right on top of it, without sending my screen anywhere.
A few things I care about:
โข Fully on-device. It uses Apple's OCR and translation, so it's fast, private, and works with no internet, even on a plane.
โข In-place overlay. The translation sits right where the original text is, not in a popup.
โข Live mode. Lock onto a region and it keeps re-translating as the content changes, great for subtitles or chat.
โข Strong CJK. Japanese, Korean, and Chinese all work well, so it's handy for manga, games, menus, and PDFs.
It's a one-time paid app on the Mac App Store, with no subscription.
I'd love to hear what you'd point it at, and any feedback on what to build next. Happy to answer questions ๐
Report
The live mode over a video was surprisingly smooth, subtitles updated without me dragging the box again. On-device translation is a nice touch for anyone wary of sending screenshots off to some server.
@azadtekeliย Thanks for trying the live mode, that one gave me the most trouble. And yeah, on-device was the whole reason I built this instead of wrapping an API.
What you were watching, subtitled video is the case I tuned it around but people keep pointing it at things I never tested.
I built this because I read a lot of Japanese on my Mac and every translator I tried broke the same way: it takes you out of what you're reading. Copy, switch window, paste, read, switch back. By the third panel of a manga page you've lost the thread.
Translate Peek puts the translation where the text already is. You drag a box, the translation lands on top of it. Live mode keeps re-translating a region as it changes, which is what you want for subtitles and chat.
Everything runs on-device with Apple's frameworks. That was a constraint, not a feature I bolted on: I didn't want screenshots of whatever I'm reading going to a server, and I wanted it to work on a plane.
The hard part turned out to be OCR, not translation. Vision reads the screen twice, once with a long language list and once CJK-only, and the long list sometimes reads Japanese as latin junk. ๆฎใใๅฐๆใๆใใฆใใใ came back as "sb, HET". The old rule always kept the first pass, so the junk won and the correct read got discarded. Now it keeps whichever read Vision was more confident about.
Happy to answer anything about the on-device stack, or about where it still falls over (vertical Japanese text is the current weak spot).
VPN Peek
The live mode over a video was surprisingly smooth, subtitles updated without me dragging the box again. On-device translation is a nice touch for anyone wary of sending screenshots off to some server.
VPN Peek
@azadtekeliย Thanks for trying the live mode, that one gave me the most trouble. And yeah, on-device was the whole reason I built this instead of wrapping an API.
What you were watching, subtitled video is the case I tuned it around but people keep pointing it at things I never tested.
VPN Peek
I built this because I read a lot of Japanese on my Mac and every translator I tried broke the same way: it takes you out of what you're reading. Copy, switch window, paste, read, switch back. By the third panel of a manga page you've lost the thread.
Translate Peek puts the translation where the text already is. You drag a box, the translation lands on top of it. Live mode keeps re-translating a region as it changes, which is what you want for subtitles and chat.
Everything runs on-device with Apple's frameworks. That was a constraint, not a feature I bolted on: I didn't want screenshots of whatever I'm reading going to a server, and I wanted it to work on a plane.
The hard part turned out to be OCR, not translation. Vision reads the screen twice, once with a long language list and once CJK-only, and the long list sometimes reads Japanese as latin junk. ๆฎใใๅฐๆใๆใใฆใใใ came back as "sb, HET". The old rule always kept the first pass, so the junk won and the correct read got discarded. Now it keeps whichever read Vision was more confident about.
Happy to answer anything about the on-device stack, or about where it still falls over (vertical Japanese text is the current weak spot).