Private SQL Analytics - Process Locally, Stay Secure Client-Side Data Virtualization - Maximum Privacy, Nothing Uploaded Drag, Drop, Query - Data Analysis Made Simple From Spreadsheet to SQL in One Click No Database Admin Required - Just Pure SQL Power One Tool, Many Formats - CSV, Excel, JSON, Parquet and More Convert Between Formats with SQL Superpowers Select File. Query. Export. Repeat. Turn Your Data Files into Database Tables Instantly Your Files, Your Machine, Your Rules Works Offline Once Loaded
OmniSelect FileSQL by ClientVirt

Run SQL on your data files. Nothing uploaded.

Query, join and export CSV, Excel, JSON, XML, YAML, Avro and Parquet files right in your browser. Free, no sign-up, nothing to install.

Export to CSV, JSON, Excel or Parquet. Works offline once the page has loaded.

SQL for your data files, in your browser

OmniSelect FileSQL turns CSV, Excel, JSON, XML, YAML, Avro and Parquet files into SQL tables inside a browser tab. Filter, join, group and aggregate them with standard SQL, then export the result. Files are read into memory on your own machine: they are not uploaded, there is no account to create and nothing to install.

1. Add files

Click the File Select panel or drop files onto it, up to 26 at once. Each file becomes a table named by a letter from its filename, so orders.csv is O.

2. Write SQL

Use SELECT, WHERE, JOIN, GROUP BY and ORDER BY, then press Ctrl+Enter. No file to hand? Use Try sample data in the File Select panel.

3. Export

Download the result as CSV, JSON, Excel or Parquet. The file is generated in your browser and saved straight to your disk.

Supported formats

FormatExtensionsHow it becomes a table
CSV, TSV, text.csv, .tsv, .txtChoose the delimiter, quote character and line ending; skip rows; header row optional
Excel.xlsx, .xls, .xlsmPick the sheet; skip rows; header row optional
JSON.jsonNested objects become columns named by their path; arrays of objects become rows
JSON Lines.jsonl, .ndjsonOne record per line, flattened the same way as JSON
XML.xmlNested elements and attributes become columns
YAML.yaml, .ymlNested structures flattened the same way as JSON
Avro.avroRead with WebAssembly; uncompressed, deflate and snappy files
Parquet.parquetRead with WebAssembly, nested columns included
Gzipped.csv.gz, .json.gz, .xml.gz …Any format above, gzip-compressed: unpacked in your browser, then read as the file inside. How it works

Each file can be up to 50 MB and 1,000,000 rows. If a file is cut short, a notice says so above the results.

Drop in a file and run your first query.

Open the app →

Check it yourself in 60 seconds

You do not have to take “nothing is uploaded” on trust. Your browser can show you.

  1. Open the app and let it finish loading, press F12 and open the Network tab.
  2. Clear the list.
  3. Add a file and run a query. The list stays empty: the file was read and queried without a single request.
  4. For the stronger test, turn off your Wi-Fi and do it again. Queries and exports still work.
Before you clear the list you will see the page loading its own files — the scripts, the code editor and the query engines — all from this site and nothing from anywhere else. The full verification guide covers this and two further checks.

Questions

Is it free?

Yes. The web version is free to use and needs no sign-up. Organisations that need an internal deployment, a written licence or a security review pack can get in touch.

Is my data stored anywhere?

No. Files are held in memory for as long as the tab is open and discarded when you close it. The tool writes nothing to local storage and sets no cookies.

What SQL can I use?

The engine is DuckDB, running inside your browser tab: SELECT with WHERE, inner and left JOIN, GROUP BY, HAVING, ORDER BY and LIMIT, aggregates such as COUNT, SUM and AVG, string functions such as UPPER and TRIM, and CASE and COALESCE. The How To Use guide has worked examples.

How big a file can it handle?

Up to 50 MB and 1,000,000 rows per file. Your own computer does the work, so its memory matters too. For data in the tens of gigabytes, a database is the right tool.

Does it work offline?

Yes, once the page has loaded: you can disconnect and keep adding files, running queries and exporting. Reloading the page needs the connection again. For machines with no network at all, see using SQL offline and air-gapped.

Can it read nested JSON and XML?

Yes. A nested field such as customer.name becomes a column you can query by its short name, name, or by its path with underscores, customer_name. Arrays of objects become one row per element.

Can it open gzipped files?

Yes. A gzipped copy of any supported format — orders.csv.gz, events.jsonl.gz, data.xml.gz — is unpacked by your browser, inside the tab, and read as the file inside, without extracting it first. The 50 MB limit applies to the unpacked size. .zip archives are a different format and are not supported; the .gz guide explains the difference.

Where to next