Beta for macOS 15 · Apple Silicon & Intel

Stop copying. Start hovering.

Rest your cursor on any text on your Mac and the translation appears in a small panel underneath — without selecting, copying or leaving the app you're in. Thai into English, or your own English into Thai, is the same one click.

or try it free for three days first

Entirely on-device. No account, no server, no telemetry. Works with Wi-Fi off.
macOS 15 or later · Apple Silicon and Intel · 14-day refund, no questions

Try it — rest your cursor on the Thai below

Chats
มีมี่ ตรีเพ็ชร์
Supplier · Bangkok
ขอด่วนหน่อยนะคะ ลูกค้าขอไม่เกิน 16.00
ข้าวต้มปลาลุงระ หนองเกตุ
Photo · text inside an image — nothing to select
เติมเครดิตสำเร็จ
Got it — invoice is on the way.
English · Peek stays silent
Wi-Fi off
Still translating. There was nothing to send in the first place.
Silent on what you read
Hover the language you already read and nothing happens. No panel, no flicker.
400 ms dwell
It waits until you've actually stopped. Tunable below.
0 bytes out
Network requests since launch: zero. Apple's frameworks do the work.
400 ms Drag the slider to change how long Peek waits.
Reads text in LINE Chrome Mail PDFs Screenshots Any app window

See it work

A real supplier thread,
read in both directions.

Thai into English, then English into Thai, without leaving the chat. Eighty-four seconds, no narration to sit through.

On-device, not "private by policy"

Your screen never leaves
your Mac.

Apple's Vision framework reads the pixels. Apple's Translation framework produces the English. Both run inside macOS, on your machine. There is no Peek server to send anything to — so nothing is sent.

Nothing is sent

Capture, recognition, language detection and translation all happen locally. No upload step exists in the code path.

Architecture, not a promise

Works with Wi-Fi off

Turn the network off and keep hovering. It behaves identically — which is the only honest test of an offline claim.

Try it yourself

No account, ever

No sign-in, no licence server, no analytics, no crash pings. Nothing about what you read is stored, not even locally.

Zero telemetry

One download, once

The only network activity in the app's life: the first-run language pack, fetched from Apple, about 100 MB. Then never again.

From Apple, not from us

Network activity, lifetime

All clear
Outbound connections0
Accounts created0
Telemetry events0
Text stored on disk0
Screenshots kept0
First run onlyApple language pack · ~100 MB

Why this matters more than it sounds

A cloud translator works by sending what's on your screen to a machine you don't own. In practice that screen holds customer names, home addresses, phone numbers, payment slips, bank confirmations and private staff chat.

Peek hovers over exactly the same material — and none of it moves. That is the whole difference, and it is the reason the app was built this way instead of the easy way.

Screen Recording permission stays on your Mac

How it works

Four steps. None of them
touch the network.

From the moment your cursor settles to the moment the English appears is one local round trip through macOS.

01

Capture

A small area under the cursor is captured into memory. It is never written to disk and is discarded straight after.

No network
02

Recognise

Apple's Vision framework reads characters out of those pixels — which is why selection, or the lack of it, is irrelevant.

No network
03

Detect

The language is identified. English stops here: no panel is drawn, nothing flashes, the app stays out of your way.

No network
04

Translate

Apple's on-device Translation framework returns the English, and Peek draws it in a panel under the words you were reading.

No network

Every step above runs inside macOS · 18 languages, both ends your choice, all on-device

Where it works

It reads pixels, so
selection doesn't matter.

Every translator that needs selected text fails in the places people actually get stuck: chat apps that block copying, scanned documents, screenshots, a paused video frame. Peek doesn't ask the app for anything.

Chat apps Text inside images Scanned PDFs Paused video frames Menus and toolbars Payment slips Web pages English — deliberately nothing

Region translation

Or drag a box over
the whole thing.

Hovering is for a line. When you're facing a wall of Thai — a bank screen, a form, an entire chat thread — pull a corner grip across it and Peek returns every line as a source-and-English pair.

Statement · August 2026
เติมเครดิตสำเร็จ
Transaction reference 88241-A
มีมี่ ตรีเพ็ชร์
ขอด่วนหน่อยนะคะ ลูกค้าขอไม่เกิน 16.00
ข้าวต้มปลาลุงระ หนองเกตุ
Merchant receipt · paid in full

Peek's region panel — drag the blue grip down to add lines

Drag the blue grip down across the lines you want.

In the app the same gesture works anywhere on screen. English lines inside the region are counted and skipped, not mistranslated.

Beyond hovering

Four keys, and it stops
being a hover tool.

Hovering answers one line at a time. For a whole invoice, a chat thread or a dashboard, drop a reading box over it and read the lot.

⌃⌥B
Drop a reading box A box appears where your cursor is and translates everything inside it. Drag it anywhere and it re-reads whatever it lands on.
⌃⌥P
Draw one exactly When you want a particular rectangle rather than a box you move afterwards.
Pin
Keep it reading A pinned box keeps watching that part of the screen and re-translates as the text underneath changes — a chat that keeps arriving, a log that keeps scrolling.
Copy
Take the text Copy one line or the whole panel. You get the translations, not the original interleaved with them — because you are pasting it somewhere.
Hover
Follow a line back Point at any translation and its source lights up on screen. Point at the source and the translation lights up. You never lose which line you are on.
Swap
Both directions, one click Reading Thai into English, then English into Thai, is a single click — on a hover, on a region box, on a pinned window. Useful for checking how your own reply reads before you send it.
18
Languages, all on-device Thai, Japanese, Chinese, Korean, Arabic, Russian, Hindi and the major European ones — read any of them, translate into any of them. Each pack downloads from Apple, once.

Diagnostics

It tells you when it
did nothing, and why.

Peek keeps the last 50 hovers and the outcome of each one. Most tools hide their failures; this one writes them down, so "it didn't work" becomes a line you can read instead of a guess.

Hover log Live — fed by your own hovers on this page 4 of last 50
TimeTextSourceOutcome

Pricing

Nineteen dollars. Once.

No subscription, no tiers, no per-word billing — there is no server metering you, so there is nothing to meter.

One-time purchase
$19

Buy it, keep it.

  • Updates included — no upgrade fee
  • 3 days free first — no card needed
  • 14-day refund, no questions
  • macOS 15 or later
  • Apple Silicon and Intel
  • First run downloads Apple's language pack (~100 MB)
Buy Peek — $19

Payment is handled by Paddle, the merchant of record. Your local tax is added and shown before you pay, so the total may be more than $19. You'll receive a licence key by email; there is no account to create. 14-day refund policy · Terms · Privacy · support@peek-app.co

What it doesn't do yet

Not every pair exists

You choose both ends, and swapping them is one click. Which pairs are actually available on-device is Apple's call, not Peek's — it checks the pair before you hover and tells you when a pack is missing, rather than staying silent.

Very small or decorative type

OCR struggles with tiny text, heavy script faces and low-contrast overlays. When it can't read something it says so in the log rather than inventing a translation.

Screen Recording permission

macOS treats reading pixels as screen recording, so it must be granted once in System Settings. It is how Peek sees the text at all — and nothing it sees goes anywhere.