Omahub
← All plugins
J

ClearRead

by Joseph Briones

Turn visible text into a local, adjustable reading surface.

Security review

Review recommended · 5 findings

Deterministic scan — not a security guarantee

Low
Risk level
Low
Analyzed commit
d703d89
Scanned
1 month ago

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
d703d89
Reviewed
1 month ago

ClearRead is a local OCR overlay that captures only on explicit user action, runs OCR locally, and keeps no persistent image or text state. The deterministic scan's low findings are false positives: the flagged hex escapes are PNG signatures in tests and the PNG validation constant, not obfuscated commands. The code is defensive and well-documented, with no network, install-time, or destructive behavior.

  • The plugin runs unsandboxed in the long-lived shell and invokes local tools (grim, tesseract, wl-paste, wl-copy, setpriv, hyprctl), so a future malicious update or compromised dependency could access the screen and clipboard; this is inherent to the Omarchy plugin model and disclosed in the README.
  • The deterministic scan flagged PNG signature bytes (\x89PNG...) in lib/clearread.py and tests as obfuscation; these are legitimate PNG magic-number checks, not obfuscated code.
  • The plugin holds a sealed anonymous memfd of the captured image for the Compare source feature until close or another read; this is transient in-memory state, not persistence, and is documented.
How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/josephbriones/omarchy-clearread --enable
Desktop #Hyprland #quickshell

ClearRead for Omarchy

If text is visible, it should be readable.

ClearRead turns text trapped in screenshots, scanned documents, videos, canvas apps, and remote desktops into a calm, adjustable reading surface. Select what you want to read. ClearRead recognizes it locally, reflows the words, and gets out of the way.

It is the difference between making pixels larger and making text readable.

ClearRead reflowing a small scanned document with 100–400% magnification and Compare source controls

What it does

  • Reads the active window without requiring a pointer.
  • Uses Omarchy's native picker for a precise screen region.
  • Opens existing clipboard text without taking a screenshot.
  • Reflows recognized text at a comfortable line length.
  • Magnifies recognized text from 100% to 400% without horizontal reading.
  • Lets window and region reads compare OCR with the exact captured pixels.
  • Adjusts typeface, size, weight, line height, letter spacing, word spacing, column width, contrast, and line focus.
  • Works from the keyboard, including capture, reading, copying, and closing.

ClearRead is local and transient. It creates no named screenshot, OCR history, account, analytics record, or network request. After local recognition, an eligible window or region image may remain in a sealed anonymous memory file so Compare source can verify the OCR. ClearRead releases it when the reader closes or starts another read. Recognized text is discarded from ClearRead at the same boundary. Text the user explicitly copied remains on the normal Wayland clipboard. Only presentation preferences remain in ClearRead. The standard wl-copy implementation may use a private, transient unlinked backing file while it owns that explicitly requested clipboard selection; it does not create ClearRead history or a named plugin file.

Try it

Omarchy plugins run inside the long-lived shell without a sandbox, so review this repository before installing it.

omarchy plugin add https://github.com/josephbriones/omarchy-clearread.git --enable
omarchy-shell shell summon io.github.josephbriones.clearread '{"demo":true}'

The demo uses fixed sample text. It does not inspect the screen, open the clipboard, or start Tesseract.

Use it

Open ClearRead:

omarchy-shell shell toggle io.github.josephbriones.clearread

Then choose one explicit action:

  • Read active window captures the application behind ClearRead. This is the fully keyboard-operated path.
  • Select screen area hides ClearRead and opens Omarchy's native region picker. Escape cancels the selection.
  • Read clipboard reflows text already on the clipboard without capturing the screen.

ClearRead hides its own surface before pixel capture. Once the image is in memory, it returns with a local recognition state and then opens the reader. Window and region results may offer Compare source, a temporary Fit, 2x, or 4x view of the exact pixels sent to OCR. This is useful for checking names, amounts, model numbers, punctuation, and other details OCR can misread. The button is absent for clipboard text, demo mode, or when sealed anonymous memory is unavailable. A captured PNG above 32,768 pixels on either axis or 33,177,600 decoded pixels is rejected before OCR with a prompt to choose a smaller window or screen area.

In the reader, Tab moves through every control, including the explicit Copy button. Other useful keys:

Key Action
Ctrl + + / Ctrl + - Increase or decrease text size
Ctrl + 1 / 2 / 3 / 4 Set 100%, 200%, 300%, or 400% reflow magnification
Ctrl + 0 Restore the default text size
Page Up / Page Down Move one viewport
Home / End Move to the start or end
Escape Return from Compare source, cancel recognition, or close ClearRead

In Compare source, + and - change pixel magnification, 0 fits the image, arrow keys pan, and Escape returns to the reflowed text.

Copying is always explicit. ClearRead never replaces the clipboard merely because it recognized text.

ClearRead magnifies words and keeps them wrapped into one reading direction. For diagrams, controls, or other visual layout, use Omarchy's native screen zoom with Super + Ctrl + Z; reset it with Super + Ctrl + Alt + Z.

Local requirements

ClearRead targets current Omarchy Quattro. It uses the capture and OCR tools already present in a standard installation: Omarchy's region picker, grim, tesseract, wl-clipboard, Hyprland tools, Python, and setpriv.

English OCR data is part of the standard installation. Additional Tesseract languages are optional. ClearRead honors OMARCHY_OCR_LANGS, using eng when it is unset. The value is limited to lowercase ASCII language codes containing letters, digits, or underscores, joined with +, such as eng+spa; the whole value may be at most 120 characters. The setup guide covers language checks and the local doctor command.

Opening ClearRead checks these local capabilities. It never installs a package, downloads language data, changes a global shortcut, or rewrites Omarchy, Hyprland, Tesseract, or clipboard configuration.

Deliberately small

ClearRead is an accessible presentation layer, not an OCR filing cabinet.

  • No named or saved images, text archive, search history, or watched region.
  • No automatic capture or clipboard watcher.
  • No duplicate live screen magnifier or continuous frame capture.
  • No cloud OCR, translation, summarization, or generated rewriting.
  • No automatic clipboard write.
  • No claim that OCR is exact. The reader labels recognized text so critical details can be checked against the source.
  • No claim to replace a screen reader or expose document semantics.

Handwriting, equations, tables, complex columns, and protected surfaces may recognize poorly or not at all. Accuracy depends on source size, contrast, language data, and Tesseract.

Remove it

Close ClearRead, then use Omarchy's normal removal path:

omarchy plugin remove io.github.josephbriones.clearread

Removal leaves the small presentation-settings file alone. It contains no captured image or recognized text; Privacy documents its exact fields and location.

Development

Run the portable suite:

bash scripts/validate.sh

The tests use fake capture and OCR tools, so they exercise the capture, OCR, clipboard, failure, and cleanup protocols without inspecting the developer's screen. Real Hyprland, multi-display, keyboard-focus, and OCR-quality checks remain explicit Omarchy acceptance gates; see Testing.

The architecture describes the capture boundary and process lifecycle. Security explains the threat model.

License

MIT © 2026 Joseph Briones.