GoFully runs entirely inside your browser. Capture, text extraction, and editing all happen on-device — there's no server in the loop, no account to create, and nothing sent anywhere without your permission.
The page is captured and stitched together directly in your browser tab. No screenshot ever crosses the network.
A local WebAssembly model reads text off the image on your CPU. Nothing is uploaded for recognition.
Results stay in local browser storage until you export or discard them, and clear automatically when you close the tab.
Chrome requires extensions to declare access up front. Here's exactly what GoFully asks for and why.
Lets GoFully read the current tab only when you click capture — never in the background, never on tabs you haven't opened it on.
Coordinates a capture against the specific tab you started it on, and reads that tab's title/URL for export metadata.
Injects the page-measurement, sticky-header, and lazy-load helper scripts needed to stitch a full-page capture — only on the tab you're capturing.
Runs canvas stitching and the local WebAssembly OCR engine in a background document — still entirely on your machine.
Needed so a PNG, JPG, WebP, or PDF export can save straight to your downloads folder when you choose to save one.
Keeps your editor preferences, capture history, and in-progress result on your machine only — never synced to a server.
Full-page and scrolling-area capture need to run on whatever site you're actively viewing when you invoke them — this is user-initiated per page, never a background scan.
For the technically curious — specific defenses in how GoFully is built, not just what it promises.
data:image/ URI — no remote or script-scheme sources are ever accepted.script-src 'self' on every extension page — no remotely hosted or inline script can execute.Report it directly to our maintainers. See the support page for other contact channels.