How to analyze confidential data without uploading it
Most handy data tools are hosted. Using one on customer records, payroll, or patient data is a disclosure decision, whether it feels like one or not. Running the analysis in your browser removes that trade-off. You keep the convenience, and the file stays on your machine.
What "uploaded" really means
Once a hosted tool has your file, it sits on a server you don’t control. It’s probably replicated, often kept after your session ends, and readable by the vendor’s staff and by anyone who breaks in. Deleting it later doesn’t undo the transfer.
For data under GDPR, HIPAA, or a plain confidentiality clause, the upload is what creates the obligation. The analysis is the easy part.
How the browser avoids it
WebAssembly lets a real database engine run inside a browser tab. NoEgress ships DuckDB built for WebAssembly. When you open a file, the browser reads it from disk into the tab’s memory and the query runs right there.
Put simply, the engine comes to the data. The app has no upload endpoint, so there’s no server copy to secure, keep, or delete.
Don’t take our word for it
Privacy claims should be easy to check. Open your browser’s developer tools, go to the Network tab, and open a file. You’ll see requests for the app code and the WebAssembly engine. You won’t see your data.
For a stronger test, load the page, turn off Wi-Fi, then open a file and run some queries. Everything keeps working, because nothing in the query path needs a server.
Your browser enforces it too. Every NoEgress page is served with a Content-Security-Policy that tells the browser to refuse connections to any other site, and the “0 sent” badge in the workspace lists every request the page made, with a receipt you can download.
What about the AI assistant?
The optional assistant runs a small open-weight model on your GPU through WebGPU. The weights download once and stay in your browser cache. After that, your prompts, schema, and results are processed on your device and never sent to a model provider.
You don’t need it at all. SQL, pivots, profiling, and charts all work without loading a model.
Where your data is stored
Opened datasets are cached in the browser’s own storage (OPFS), so reloading the page doesn’t make you open the file again. That storage lives on your machine, in your browser profile. Clear the site data and it’s gone. Nothing syncs anywhere.
When this is the right tool
It fits exploratory work on sensitive files: reviewing an export before you send it, checking a vendor report, profiling customer data, answering a one-off payroll question. For scheduled pipelines and shared dashboards you still want a proper warehouse. They solve different problems.
Frequently asked
Is my file really never uploaded?
Right, it isn’t. The app has no upload endpoint. Check the Network tab in your browser, or load the page and then work fully offline.
Does this help with GDPR or HIPAA compliance?
It removes the transfer to a third-party processor, which is usually what triggers the obligation. This isn’t legal advice, and your own retention and access rules still apply.
Does the AI feature send data to a provider?
No. The model runs locally through WebGPU after a one-time download of its weights. It’s optional, and the workbench works fine without it.
More guides
NoEgress vs Excel, Power Query, ChatGPT and DuckDB
How to use ChatGPT-style AI on sensitive spreadsheets without uploading them
An Excel alternative for files with millions of rows
How to query a CSV file with SQL
How to open large CSV files Excel can't handle
How to run SQL on an Excel spreadsheet
How to check if a website uploads your file
How to compare two CSV files and find what changed
Data quality checks to run before trusting a dataset
How to query a JSON file with SQL
DuckDB online: run DuckDB in your browser with nothing to install
How to ask a local AI model about your CSV or Excel data
How to remove duplicate rows from a CSV or Excel file
How to split a CSV or Excel file into multiple files by column