grabtext-policy

Privacy Policy — GrabText Browser Extension

Last updated: July 21, 2026

GrabText (“we”, “us”, “the extension”) is built local-first. This policy explains exactly what data the extension accesses, where it is stored, and what is never collected.


1. What we collect

Free tier: Nothing. The extension does not transmit any personal data to us. There is no telemetry, no usage analytics, and no crash reporting built into the extension by default. All OCR processing runs entirely inside your browser using PaddleOCR.js — no images or text are ever sent to a remote server.

Pro tier (if activated): When you activate a paid license key, the key and a machine-generated instance name are sent to Lemon Squeezy (our payment provider) for validation, and the result is stored locally in your browser’s chrome.storage.local. We receive only a boolean “valid/invalid” result — we do not see your payment details, which Lemon Squeezy handles directly.

Pro tier features (when implemented): Future Pro features such as export and batch capture are entirely local. Any future cloud feature will be opt-in and documented in an updated privacy policy before launch.


2. What the extension accesses locally

To function, GrabText reads the following from your browser:

What Why Where it stays
A screenshot of the visible portion of the active tab Sent to the local OCR engine for text extraction In memory, discarded after OCR completes
The URL and title of the active tab Saved alongside extracted text for history context Your local IndexedDB only
Text you select via the drag-to-select tool To copy to clipboard, search, or read aloud In memory, not stored unless you keep it in history

The screenshot is cropped to your selection area before OCR. The full page screenshot is captured via chrome.tabs.captureVisibleTab, then immediately cropped to the user’s selection rectangle. The uncropped full-page image is discarded and never stored.

History data never leaves your browser. OCR results you save to history are stored in IndexedDB (grabtext database) and can be cleared at any time.


3. What we never see

We do not receive, log, or store:


4. Third-party services

Service When it’s used What it receives Policy
Lemon Squeezy License activation & validation (Pro only) License key, instance name lemonsqueezy.com/privacy

No data is ever sent to any AI provider, analytics service, or cloud OCR backend. OCR runs entirely in a sandboxed iframe inside your browser.


5. Permissions and why each is required

Permission Why it’s needed
activeTab Capture a screenshot of the current tab when you initiate a grab
scripting Inject the drag-to-select overlay UI — only on your explicit activation
storage Save OCR history and license state locally
clipboardWrite Copy extracted text to your clipboard
tabs Read the active tab URL for error messages and history context
offscreen Run the OCR engine in a dedicated offscreen document
sandbox (pages: sandbox.html) Host PaddleOCR.js (which requires unsafe-eval) in a restricted sandbox

We request the minimum permissions required. Note that we do not request <all_urls> — all features are triggered by your explicit action on the current tab via activeTab.


6. Data retention and deletion


7. Your choices


8. Children’s privacy

GrabText is a general productivity tool and not directed at children under 16. We do not knowingly collect data from children.


9. Changes to this policy

Material changes will be posted on this page with an updated date. Continued use after a change constitutes acceptance.


10. Contact

Questions or data requests: **grabtext@**. We respond within 5 business days.