Select it. Recognize it. Paste it.
A tiny Windows tray utility for one-off OCR.
OneShot OCR is a tiny standalone background tray utility for one-off text capture: press a global hotkey → drag-select a screen area → OCR it → the text lands on your clipboard. That's it—there are no plans for extra functionality.
It supports Google Lens by default, with optional local OneOCR and ScreenAI runtimes. The local engines are called directly through their native DLL APIs; no OCR web server or Python process is required.
OCR results are language-agnostic and work with any language supported by the selected engine (a lot of them).
Download the latest Windows release, then place
OneShot-OCR-Windows-x64.exe wherever you want to keep it and run it. There is
no installer; OneShot OCR stays running in the background with a tray icon.
The OneShot OCR icon appears in the system tray. To capture text:
- Press the global hotkey (default Ctrl+Shift+O) — or right-click the tray icon and choose Capture (OCR area).
- The primary monitor freezes and dims. Drag a rectangle over the text.
- Release the mouse — the selection is OCR'd and copied to your clipboard.
Cancel a capture with Esc or a right-click.
- OCR Engine - Select Google Lens, plus OneOCR and/or ScreenAI when their corresponding build features are enabled
- Capture (OCR area) — start a capture immediately.
- Set Hotkey... — opens a small window; press the key combination you want. Supports modifiers (Ctrl/Shift/Alt/Win) and F1-F24, including F13-F24. Press Esc to cancel. The choice is saved.
- Quit — exit the app.
Settings are stored at %APPDATA%\oneshot-ocr\config.txt:
hotkey=control+shift+KeyO
engine=google_lens
hotkey— any combinationglobal-hotkeyunderstands (e.g.F13,control+shift+KeyO,alt+F20).engine—google_lens(default),oneocr, orscreenai. The tray menu can change this and saves it automatically.
Existing settings in %APPDATA%\lens_adhoc\config.txt are used until you save
a setting, which writes them to the new OneShot OCR location.
The default build contains only Google Lens. To include a local engine, build with its explicit Cargo feature:
cargo build --release --features oneocr
cargo build --release --features screenai
cargo build --release --features oneocr,screenaiThe tray menu only shows engines included in the current build. If an existing config selects an engine that is not compiled in, OneShot OCR falls back to Google Lens.
On Windows, OneOCR is loaded from %USERPROFILE%\.config\oneocr and expects
oneocr.dll, oneocr.onemodel, and onnxruntime.dll. ScreenAI is loaded from
%USERPROFILE%\.config\screen_ai\resources and expects
chrome_screen_ai.dll plus the resource files and files_list_ocr.txt.
These files are downloaded automatically by OwOCR and GSM, but NOT by OneShot.
If a local runtime is missing, the app reports the missing file in its console and continues running; selecting Google Lens remains available.
Install the latest stable Rust toolchain, then run:
cargo run --release --lockedThe release executable is written to target\release\oneshot-ocr.exe.
- Windows only in practice (uses the primary monitor via
xcapand the Win32 tray/hotkey APIs); the OCR/capture code is otherwise cross-platform. - Large captures are automatically downscaled before upload, matching GSM's behavior.
- Because the app stays running, the clipboard contents persist normally after a capture.
- AI Generated Code, but Human Reviewed.
- Have not tested with Windows Scaling enabled, there may be some issues there, but apparently it should be fine.
- Code Adapted from GSM's fork of https://github.com/AuroraWright/owocr, and https://github.com/AuroraWright/oneocr
