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.
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| Operation | Data and destination | What to check in your session |
| Choose a local recording | File → 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 model | Same-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 URL | An 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 editor | The 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
- 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.
- 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.
- 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.
- 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.
- 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.
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.