PRACTICAL GUIDE

How Browser-Based AI Can Improve Privacy—and Where Its Limits Are

Browser-based AI can process images or audio on the user's device instead of uploading every file to an application server. This local-first architecture can reduce data transfer and shorten the path between input and result. It is a useful privacy property, but it should not be summarized as a guarantee that nothing ever leaves the device.

BY Martin DelophyPUBLISHED REVIEWED REPRODUCIBLE METHODTESTING METHOD
How Browser-Based AI Can Improve Privacy—and Where Its Limits Are visual guide

SOURCE-REVIEWED · SEPTEMBER 7, 2026

Trace one recording through the code before trusting the label

AI Creator's Whisper file picker creates a browser object URL. The transcription action reads that URL, decodes audio and passes samples to a worker. A separate service worker caches downloaded resources. Following these three paths gives a more useful answer than counting requests: the reviewed transcription path processes the selected recording locally, while page delivery still communicates with servers.

Evidence available
Exact source excerpts, file fingerprints and a data-flow map from this site's September 7 working source. The external-generation comparison uses a separately pinned editor commit.
Evidence still needed
A live Network capture and before/after storage inspection for the browser, deployed release and options you use. This review did not capture a HAR, run inference or audit every dependency.

One local input, two different kinds of “fetch”

The recovered file-picker code takes files[0] and calls URL.createObjectURL. The patched transcription action then uses fetch(source), decodeAudioData and postMessage({action:"transcribe", src:samples, ...}). Here the source is the chosen file's blob: URL; reading it does not itself send an HTTP upload. Blob URLs refer to browser-held objects, even though their text includes the creating site's origin. See MDN's blob URL reference.

The receiving worker passes the Float32Array into its transcription pipeline and sends text back to the interface. The pipeline requests the model named whisper-tiny with local_files_only: true and a /models/whisper-tiny cache setting. These are model-loading options; they do not disable network access for the whole page. A worker message is communication between browser execution contexts, rather than a request to a transcription server.

Data boundaries found in the reviewed source
OperationData and destinationWhat to check in your session
Choose a local recordingFile → object URL → decoded audio samples → Whisper worker.Check the input URL scheme and inspect requests triggered by selecting the file and starting transcription.
Load a modelSame-origin model/configuration responses may enter ai-creator-models-v2.Inspect full URLs, request parameters, response content and initiators. A download still exposes request metadata.
Use a remote media URLAn HTTP(S) source needs a request to its host, unless already served from cache.Record the actual host and redirects. A locally decoded result does not make that retrieval private.
Choose Puter generation in the related editorThe adapter hands the prompt and model to the provider SDK, then reads the returned media.Review this as a separate external-service workflow, including provider storage and retention.

The last row describes the related editor's generation plugin, not Whisper. At commit 3684ec4, the adapter calls puter.ai.txt2img(prompt, ...) or txt2vid(prompt, ...). Downloading that output into a Blob afterward does not turn generation into local inference. The adapter establishes the handoff to the SDK; it does not reveal the provider's internal handling or prove that a later deletion request removes every retained copy.

Repeat the check without uploading a private recording

  1. Prepare a controlled input. Use the public 29.4-second test recording from our Whisper case study. Record the date, browser version, exact page URL and consent settings in the blank inspection worksheet. Use a separate test profile so clearing data does not erase your normal workspace.
  2. Capture a baseline. Open DevTools before navigating to Whisper. In Network, keep recording on, select All, enable Preserve log, clear the log and navigate. Wait for model readiness. Save this baseline before selecting audio; it separates application/model loading from the input operation.
  3. Mark each action. Clear the log after saving the baseline. Select the WAV, note the time, then choose English and transcribe. Keep recording through completion and a short idle interval. Inspect new requests in Headers, Payload and Initiator. Record destinations and relevant body/query fields, rather than treating the Size column as uploaded-file size.
  4. Inspect beyond POST. Use method:POST as a temporary filter, then return to All. Small requests, GET query strings and WebSocket messages can also carry content or identifiers. If a payload is opaque or unavailable, mark it unresolved; an unreadable request is not evidence that no data was sent.
  5. Compare a warm run. Save the capture, repeat the same input with normal caching and record differences. Inspect Application → Cache Storage separately. Fewer network bytes can indicate cache reuse; they do not prove a stronger privacy boundary. A Network cache toggle alone is not a record that every application-managed store is empty.

Chrome documents request columns and initiators, plus payload inspection and WebSocket messages. Clear filters before exporting the complete log. Prefer sanitized HAR export, then inspect the file yourself: removing sensitive headers does not establish that every URL, prompt or response is safe to share. The supplied worksheet contains instructions and blank observations, not a fabricated capture.

Check what remains after the tab closes

The reviewed model service worker caches eligible same-origin GET responses in ai-creator-models-v2. It skips Range requests and requires a successful basic response before writing. Its filename rule includes .json anywhere on the origin, as well as .onnx, .bin, .wasm and the /models/ path. “Model cache” is therefore a name, not proof that every entry contains only model weights. Inspect actual entries. The worker does not handle POST requests, but that does not block the page from making them.

In the test profile, open Application → Storage, inspect Cache Storage and IndexedDB, and note local/session storage entries before clearing the selected site's data. Select the relevant stores; a cache-only deletion does not remove an IndexedDB database. Close other tabs using the same site, then clear and refresh the storage lists before running the tool again. A new visit can download models and repopulate caches. Chrome's cache inspection and deletion guide shows these controls.

On a shared computer, clearing site storage does not remove downloaded audio, exports, screenshots or the HAR you saved, and it does not sign you out of a provider on another origin. Review those separately. Closing the document releases its object URLs, but that is not a secure-erasure guarantee for the device. Browser storage is also not an encrypted personal vault protected from everyone who can use the same profile.

Write a conclusion that matches the evidence

Our present conclusion is narrow: the reviewed local-file Whisper path decodes audio in the browser and invokes a worker pipeline; its model cache has the rules documented above. A completed capture could support “no selected-media upload was observed during these recorded actions.” It would not establish absence of earlier, deferred, cross-tab or extension activity, provider retention, or unchanged behavior after a release. An offline repeat can test whether that prepared workflow needs a live response; it cannot establish that the earlier online run transmitted nothing.

Read the exact source excerpts · Source fingerprints and scope · Download the data-flow map · Method and limitations. Recheck the deployed assets and repeat the capture when model delivery, dependencies, consent, advertising or external integrations change.

01

What local-first processing means

In a local-first workflow, the website downloads application code and model files, then performs inference using browser technologies such as WebAssembly, WebGL or WebGPU. The selected media can remain in browser memory while the model runs. This differs from a conventional cloud workflow in which the full file is uploaded to a remote inference server for processing.

02

What the browser still communicates

Opening any website normally sends network requests that can reveal an IP address, browser information, requested paths and timestamps to hosting or security providers. The browser may download models, fonts and scripts, and externally linked resources contact their own hosts. Analytics and advertising services may also process identifiers or usage signals when enabled and legally permitted.

03

Caching helps performance

AI models are often much larger than ordinary web assets. Browsers may cache them in Cache Storage or IndexedDB so later sessions start faster. This data is stored on the device and can occupy substantial space. Clearing site data removes cached models and preferences, which can make the next visit slower but gives the user direct control over local storage.

04

Remote exceptions must be disclosed

Some capabilities are impractical to run entirely on consumer hardware and may use an external service. A prompt-based generation feature, remote media URL or linked third-party application may therefore transmit data. Each workflow should describe its processing method clearly enough for users to make an informed choice before submitting confidential material.

05

Practical user precautions

Review the privacy policy and tool-specific disclosure, use current browser versions and avoid processing secrets when the workflow is unclear. Clear site storage on shared devices. Remember that the exported result may contain visible personal information even when processing was local. Local execution reduces one category of exposure; it does not replace consent, copyright checks, device security or careful publication decisions.

REFERENCE

Frequently asked questions

Does local-first mean the website receives no technical data?

No. Hosting and security systems can still receive normal request metadata.

Why are model downloads so large?

Neural-network weights can contain millions of parameters and are cached to avoid repeated downloads.

Can I delete cached models?

Yes. Browser site-data controls can remove cache and IndexedDB content.

Are all AI Creator features local?

No. The processing disclosure identifies exceptions such as prompt-based remote generation and external services.

AUTHOR

Martin Delophy

Independent full-stack and algorithm engineer in China with 10 years of frontend, AI and audio/video development experience, including 5 years focused on AI. His open-source work covers browser AI, ONNX, WebGPU, Transformers, Stable Diffusion and local-first creative tools.

About the author →