OmniSelect FileSQL

Guides
← Back to App
HomeGuides › Querying without uploading

How to Query a CSV File Without Uploading It Anywhere

Most "online CSV tools" work by taking a copy of your file. You pick the file, it travels to somebody else's server, and the results come back. For a lot of work that is simply not allowed — and quite often, nobody in the chain has actually checked whether it is.

There is a second way to do it that people are often surprised exists: the query runs inside your browser tab, on your own machine, and the file never travels anywhere at all. This guide explains how that works, how to do it, and — the part that matters most — how to prove it to yourself rather than taking anyone's word for it.

Why This Matters

The usual reasons people go looking for this:

What "Runs in Your Browser" Actually Means

Your browser is already a capable computing environment. It can read a file you select, hold it in memory, and run code over it — all without a network connection, in the same way a desktop program does.

When you pick a file on a page like this one, the browser hands the page a reference to the file's contents. The page reads it into memory and does the work locally. Nothing about choosing a file causes it to be sent anywhere; that only happens if the page's code deliberately makes a network request, which this one does not.

So the distinction is not "trustworthy website versus untrustworthy website". It is a structural one:

 Server-side toolClient-side tool
Where your file goesOnto someone else's machineNowhere — it stays in your browser's memory
What you have to trustTheir retention policy, their staff, their security, their subprocessors, their breach historyThat the page makes no network calls — which you can check yourself in a minute
File size limitsBounded by their upload limits and your connection speedBounded by your own machine's memory
Works with no internetNoYes, once the page is loaded
Leaves a copy behindUsually, at least in logs and backupsNo — closing the tab is the end of it
💡 The useful part of the client-side model is not that you are asked to trust more. It is that there is far less to trust, and what remains is checkable.

Doing It

OmniSelect FileSQL is a client-side SQL tool. There is nothing to install and no account to create.

  1. Open the tool. Go to the main page. That is the only network activity involved — fetching the page itself, exactly like loading any website.
  2. Add your file. Click the File Select panel or drag your file onto it. It becomes a SQL table named by a single letter, shown in the Alias column — taken from the start of the filename, so invoices.csv becomes I. You can change the letter there if you prefer.
  3. Write SQL. Use that alias as the table name.
    SELECT * FROM I WHERE status = 'overdue'
  4. Run it. Click Run Query or press Ctrl+Enter. Results appear underneath.
  5. Export if you need to. CSV, JSON, Excel or Parquet. The download is generated in your browser and saved straight to your disk.

Nothing to install, no sign-up, and your file stays on your machine.

Open the tool →

How to Verify It Yourself

You should not take this on faith, and you do not have to. There are three checks, in increasing order of how convincing they are.

Check 1 — Watch the network (about a minute)

  1. Open the tool and let the page finish loading.
  2. Press F12 to open developer tools, and choose the Network tab.
  3. Click the clear button so the list is empty.
  4. Now add your file and run a query.
  5. Watch the list. It stays empty.

No requests means no data left the machine. This is the same tool your own security team would use, and there is nowhere for a file to hide: a request either appears in that list or it never happened.

Check 2 — Disconnect (the convincing one)

  1. Open the tool and let it load completely.
  2. Turn off your Wi-Fi, or unplug the network cable. Genuinely disconnect.
  3. Now add your file, write a query, run it, and export the results.

It all still works. A tool that needed to send your file somewhere could not possibly do this. It is a demonstration rather than a promise, and it takes about thirty seconds.

⚠️ Worth being precise about what this proves: it shows the tool does not need the network in order to function. Combined with Check 1 — an empty network log while connected — you have covered both "does it phone home" and "could it".

Check 3 — Read the code

Everything the page runs is plain JavaScript delivered to your browser, and you can read all of it. In developer tools, open the Sources tab to see every file the page loaded. Search them for fetch, XMLHttpRequest or navigator.sendBeacon — the three ways a browser page can transmit data. There are no analytics scripts, no tracking pixels and no telemetry to find.

For Security and Compliance Teams

If you are being asked to approve this tool for use on regulated data, the checks above are the substance of the review, and a reviewer can complete them without any cooperation from us.

Two further things are usually asked for, and both are available:

Evaluating this for regulated or contractual work?

Licensing & security contact →

Reasonable Questions

What is the catch?

Your own machine does the work, so very large files are limited by your available memory rather than by someone else's hardware. Files are capped at 50 MB each and a million rows. For genuinely large data — tens of gigabytes — you want a real database, and that is the honest answer.

Is anything stored in my browser afterwards?

No. Your data is held in memory for the life of the tab. Close it and it is gone. Nothing is written to local storage or cookies.

Could the site change and start uploading files later?

A website can always be changed by whoever runs it — that is true of every site you use. Two things reduce it to a manageable risk here: re-running Check 1 takes a minute and would immediately reveal it, and an internally hosted copy removes the possibility altogether, because you control when it changes.

Does this work for formats other than CSV?

Yes — Excel, JSON, XML, YAML, Avro, Parquet, TSV and plain delimited text, all handled the same way.

Related Guides