A read-only web UI for Lance datasets: browse tables in the browser, filter and search server-side, and preview images, audio and video kept in blob columns.
Lance Data Viewer is a read-only web interface for Lance datasets. Point it at a folder of Lance tables, open a browser, and look inside: datasets, columns, schema, vectors and rows. There is no database to install and no service to configure, and the viewer never writes to your data.
It runs as a single Docker container. Mount the directory that holds your Lance tables read-only and the viewer lists what it finds, paginating through the rows.

The viewer on a demo table: image previews and vector sparklines in the grid, and the server-side search builder working above it.
This is a fork of lance-format/lance-data-viewer. We keep Lance as the storage layer behind our own data work, and two things were missing for the way we browse tables day to day.
Server-side filtering and search. The table view is driven by DataTables, but the filtering runs in DuckDB against the Lance dataset rather than in the browser. Global search, per-column filters, multi-rule queries, ordering and pagination all execute on the dataset, so a table that does not fit in a page stays responsive. The URL carries the current table reference, so a filtered view can be linked to directly.
Inline media preview. Binary columns are inspected by file signature. When a value is an image, an audio file or a video, the table draws it inline instead of dumping a wall of base64. Payloads up to 64 KiB travel to the browser and are rendered in the cell; anything larger is described by type and size, which keeps a page of rows from turning into a hundred megabytes of transfer.
Both additions sit on top of upstream rather than replacing it. We track the upstream code, and the fork is aligned with the current LanceDB line rather than frozen at the point we forked from.
docker pull ghcr.io/tuchsoft/lance-data-viewer:lancedb-0.36.0
# Make your Lance directory readable by the container
chmod -R o+rx /path/to/your/lance
docker run --rm -p 8080:8080 \
-v /path/to/your/lance:/data:ro \
ghcr.io/tuchsoft/lance-data-viewer:lancedb-0.36.0Then open http://localhost:8080. The Lance version the container is running against is shown in the top-right corner of the interface.
Lance evolves quickly, and a dataset written by an older release is not always readable by a newer one. The project ships one container per line, so you pick the one that matches the data you actually have:
lancedb-0.36.0: the recommended image, for current datasets (LanceDB 0.36, PyArrow 25).lancedb-0.33.0: datasets written by the 0.33 line.lancedb-0.29.2: datasets written by the 0.29 line.lancedb-0.24.3: datasets from the 2025 line.If you get a compatibility error, step down to an older tag. latest and stable point at the 0.36.0 build.
The fork runs on LanceDB 0.36 with FastAPI 0.141 and NumPy 2. Pagination uses the current take_offsets API where it exists and falls back to an Arrow slice on older Lance builds, so a single image serves the whole range of supported versions. The viewer is read-only: it has no authentication, so bind it to localhost or put it behind a reverse proxy if you expose it.
The media preview and the dependency work come from upstream; the server-side filtering layer and a pagination fix for the current LanceDB API are ours. Released under the MIT license, same as upstream.