# Huey runs DuckDB in the browser so your data never leaves the machine

> Huey is a static browser application for exploring CSV, Parquet, JSON, Excel and DuckDB files using a DuckDB compiled to WebAssembly, with a query builder, pivot tables and a DuckDB server client mode. It suits an analyst who wants a query console on their own laptop, and the WebAssembly runtime imposes real limits on how much data it can handle.

**rpbouman/huey** — Browser-based data analytics & BI with DuckDB-WASM. Privacy-first: your data stays local; no server required.

- Repository: https://github.com/rpbouman/huey
- Website: https://rpbouman.github.io/huey/
- Stars: 619 · Forks: 34
- Language: JavaScript
- License: MIT
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/rpbouman-huey

## The whole application is a static page with no server behind it

Huey is described as a static browser based app for exploring and analyzing data, and the privacy claim follows directly from that architecture. You can simply download or check out the source tree and open src/index.html in your browser as a file:// URL, with no server required, or serve the tree from any web server like you would with any web page. The live demo at the GitHub Pages site is described as a live demo that allows you to run Huey without even downloading it, and the README makes the point that although it is available online, it is still a static webapp and any data you load into it stays on your local client. There is no active server-side process. That is the design in one sentence, and it is why the repository is a single src/ directory alongside a README and a LICENSE.

## Four file formats plus a DuckDB database, loaded locally or from a URL

The input surface is wider than a typical spreadsheet tool, and it is the reason a data engineer might reach for the project. Huey supports .csv, .parquet, .json data files as well as .duckdb database files, either as local files or loaded from a URL. The feature list adds .xlsx, MS Excel, for both analysis and exporting results. It can also read DuckDB database files directly, and it can connect to an external Data Lake or Quack server, which is the escape hatch for data that does not fit in a browser tab. The formats are chosen so that the same tool handles a CSV someone emailed you, a Parquet directory from a pipeline and a DuckDB file produced by a local analysis run, which means the query builder does not change shape between them.

## The analysis surface is a query builder, aggregates and a pivot table

This is not a raw SQL console with a side panel, it is a structured query interface, and the README is explicit about the parts. There is an intuitive query builder that supports projection, aggregation, filtering and subtotals. A pivot table presents the analysis results, and there are many different aggregate functions for reporting and data exploration. A comprehensive attributes tab lets you explore the structure of your dataset, and there is automatic breakdown of date and time columns to a temporal hierarchy, with derived attributes for year, month and quarter, so a timestamp column can be grouped by period without writing that yourself. The support for arrays and STRUCT data types is there to allow immediate ad hoc analysis of complex nested data, which is typical for JSON sources. Results and the SQL queries can be exported to a file or to the clipboard, so the query you built graphically is not trapped in the tool.

## The WebAssembly runtime is the ceiling on everything Huey can do

The limitations section is unusually specific and is the part an evaluator should read first. Huey is based on DuckDB-WASM, a DuckDB instance compiled to WebAssembly, and the README is careful to say the limits are mainly about the WASM runtime rather than about DuckDB itself. WASM in general is limited to a theoretical 4Gb memory limit, in practice possibly closer to 3Gb, though the picture is complicated because DuckDB uses advanced streaming analytics which can often process and aggregate datasets whose volume exceeds that limit. WASM is confined to a single thread, which eliminates some of DuckDB optimisations. And some of the most interesting DuckDB capabilities, such as access to external remote databases like MySQL, PostgreSQL and Unity Catalog, rely on extensions that are not readily available to DuckDB-WASM. The escape route is stated in the same paragraph, that if your use case is stretching WASM's limits you might use Huey as a client and connect to a DuckDB server instead.

## Browser rules and screen size rule out two common uses

The second limitation is one every static web application faces and Huey does not try to hide. Huey is subject to the typical restrictions of a web application. In particular, URL datasources may not be directly accessible due to the same-origin policy and or missing CORS headers. The documented workaround is the obvious one, serving Huey over HTTP(S) and configuring your webserver to pass the right headers, and the README is careful to add that this is a common scenario for any web application and does not mean you cannot or should not host Huey over HTTP(S). What it does mean is that the file:// mode, which is the most private and simplest way to run it, is also the mode in which a remote URL is most likely to be blocked by the browser, and the two options trade against each other rather than composing. The third limitation is a design decision rather than a bug. Huey is best enjoyed on the desktop, and the README says it ought to work on a modern tablet, inviting an issue if it does not. Huey does not work on your phone, and if it does then you just got lucky, because the experience will likely be frustrating given the small screen size. There are currently no plans to make Huey work on a phone. That last sentence matters for anyone evaluating Huey as a consumer-facing tool, and it is a sensible boundary for a desktop analytics console with a pivot table and an attributes tab, since neither is usable on a handset. The project is at least honest about it rather than implying a responsive design that is not there.

## The dependency list is short, and the install is a checkout

Huey depends on DuckDb-WASM and a Tabler Icons font, and nothing more, with the README noting that dependencies may be added in the future but only when strictly necessary. The install is correspondingly simple. Download or check out the source tree and open src/index.html in a browser, or serve the directory from any web server. The latest stable release is available as a live demo site with one click, and even in that setup any data you process remains local and private because there is no active server-side process. Huey is also a progressive web app, so it can be installed on a device as if it were a native app, and the README links to a section describing that in more detail. The accessibility position is stated too, that Huey uses semantic HTML and aria roles, with an invitation to report issues, and the whole thing is released under the MIT licence, described as free in the same way DuckDB is.

## The release names are the project's own joke

The version history is worth a note because it tells you what kind of maintainer you are depending on. The recent releases are 1.1003 tagged as Huey 1.1003 - Kaiya, 1.1.001 tagged as Huey 1.1.001 - Japanice Criollo, and 1.1.00 tagged as Huey 1.1.00 Indian Runner. Those are duck names attached to non-sequential version numbers, and the pattern suggests a versioning scheme tied to a running joke rather than a semantic version contract. The repository is not archived and the last push was on 2026-10-19, with the newest tag from 2026-10-12, so the work is current, but the default branch is dev rather than main, which is another signal that this is a project optimised for the maintainer rather than for consumers who need a stable release channel. The homepage is at rpbouman.github.io/huey, and the project also appears at community talks including a DuckDB meetup and a DataZen talk, with sample reports linked from the getting started section for a fast first run.

## Where Huey is the wrong choice

Three situations argue against it. The first is a dataset that does not fit in browser memory or a query that needs DuckDB extensions the WASM build does not ship, such as attaching to a PostgreSQL server from inside the page. In that case the client mode against a DuckDB server is the answer, and at that point you are running a server anyway, so the privacy advantage of the static build is reduced. The second is a shared, multi-user analysis environment. Huey is a single local application with a local file picker, so it has no notion of accounts, permissions or a shared catalogue, and a team that wants four people looking at one dataset has to solve that problem elsewhere. The third is a mobile or tablet-first requirement, which the project has closed off explicitly. The realistic alternative in the same space is a hosted notebook or BI tool where the data is uploaded, and the whole argument for Huey is that you do not upload it, so the comparison is not really about features but about where your data is allowed to be. If your policy forbids sending a customer dataset to a third party service but permits a static page and a local DuckDB file, Huey fits the policy precisely.

## Conclusion

Adopt Huey when you want a private, zero-install analysis console for files that live on your own machine, and use it as a client against a DuckDB server when the data is too large for the WebAssembly memory ceiling. Skip it if you need mobile, since the project states plainly that it does not work on a phone and has no plans to change that. Verify first that the datasets you plan to open fit inside the browser memory limit, and read the limitations section before assuming a native DuckDB feature such as remote database access is available.

## FAQ

### What is Huey?

It is a static browser based app for exploring and analyzing data, using DuckDB compiled to WebAssembly. It supports .csv, .parquet, .json and .xlsx files as well as .duckdb database files, loaded either as local files or from a URL, and it can also connect to an external Data Lake or Quack server.

### Does my data leave my machine when I use Huey?

No. Huey is a static webapp with no active server-side process, so any data you load into it stays on your local client, whether you run it from a checkout as a file:// URL or from the hosted live demo. The README states that even in the online setup it remains a static webapp and any data you process stays local and private.

### What are the main limitations of Huey?

The WebAssembly runtime imposes a memory limit of a theoretical 4Gb, in practice closer to 3Gb, although DuckDB streaming analytics can often exceed that in volume, and it is single threaded which removes some DuckDB optimisations. Extensions for remote databases such as MySQL, PostgreSQL and Unity Catalog are not readily available in DuckDB-WASM, URL datasources may be blocked by same-origin policy and missing CORS headers, and Huey does not work on a phone with no plans to change that.

### How do I install and run Huey?

Download or check out the source tree and open src/index.html in your browser as a file:// URL, which needs no server, or serve the tree from any web server. The latest stable release is also available as a live demo site, and Huey can be installed on a device as a progressive web app.

### Is Huey still maintained?

The repository is not archived and the last push was on 2026-10-19, with the newest tag 1.1003 from 2026-10-12. The default branch is dev rather than main, the release names follow duck names, and the licence is MIT, with a dependency list of only DuckDb-WASM and a Tabler Icons font.

## Sources

- [License: MIT](https://github.com/rpbouman/huey/blob/dev/LICENSE)
- [Project website](https://rpbouman.github.io/huey/)
- [README](https://github.com/rpbouman/huey/blob/dev/README.md)
- [Releases](https://github.com/rpbouman/huey/releases)
- [rpbouman/huey on GitHub](https://github.com/rpbouman/huey)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/rpbouman-huey
