Measured in this browser

Local execution receipt

These readings come from this browser session. Nothing here is a claim a server made about itself.

External requests (page + worker)
Checking…
Connection policy
connect-src 'self'
Worker policy
worker-src 'self'
Page control
Checking…

The count above covers both threads: this document and the background worker that reads your file, each reporting its own request timeline. It has two blind spots — a WebSocket is never recorded as a resource, and a request the policy blocks leaves no record at all — which is why the policies sit next to it. connect-src 'self' allows connections to this origin alone, and worker-src 'self' binds the thread doing the work. There is no upload endpoint to reach.

Read the source

img.keeplocal.tools

Resize images without uploading a thing.

Fit an image inside the dimensions you choose in the keeplocal Rust core. Animations keep every frame, and nothing is ever upscaled. It never leaves your device.

Choose an image to begin — it never leaves your device.