Keyboard-driven TUI for browsing columnar data files.
Project description
dataview-tui
dataview-tui is a keyboard-driven terminal UI for inspecting columnar data
files. The command line entry point is dview.
The project supports Parquet, ORC, Avro, and optional Lance datasets. It is built for quickly moving between schema, data preview, metadata, and SQL query views without leaving the terminal.
Features
- Textual-based terminal application with a project-specific dark theme.
- Automatic format detection by extension and magic bytes.
- S3-compatible object storage reads for Parquet, ORC, and Avro objects.
- PyArrow-backed Parquet and ORC readers.
- fastavro-backed Avro reader.
- Optional Lance reader via the
lanceextra. - Schema, Data, Metadata, and SQL sidebar views.
- Schema tree entries include field type and nullable state.
- Metadata view includes file info, row groups/fragments/blocks, and per-column details.
- DuckDB SQL engine exposing the opened file as
dataandt. - CLI entry points:
dviewanddataview.
Installation
pipx install dataview-tui
dview --version
For Lance datasets:
pipx install "dataview-tui[lance]"
To update an existing install:
pipx upgrade dataview-tui
To install the current main branch from source:
pipx install git+https://github.com/lyne7-sc/dataview-tui.git
Quick Start
Open supported files or datasets:
dview path/to/file.parquet
dview path/to/file.orc
dview path/to/file.avro
dview path/to/dataset.lance
Open a Parquet, ORC, or Avro object from S3-compatible storage:
dview s3://bucket/path/to/file.parquet
For MinIO or another S3-compatible endpoint:
dview s3://bucket/path/to/file.parquet \
--s3-endpoint-url http://localhost:9000 \
--s3-access-key minioadmin \
--s3-secret-key minioadmin \
--s3-region us-east-1
S3-compatible reads use PyArrow's S3 filesystem. If explicit credentials are not provided, PyArrow uses the available AWS credential chain. SQL is disabled for remote S3-compatible objects in this version. Remote Lance datasets are not supported yet.
Choose an initial tab:
dview path/to/file.parquet --tab data
Shell Completion
dview can print static shell completion scripts. Static completion keeps Tab
completion fast because the shell does not need to start the Python TUI app for
each completion request.
For zsh:
mkdir -p ~/.zfunc
dview --print-completion zsh > ~/.zfunc/_dview
Make sure ~/.zfunc is on your fpath, then restart your shell or run
compinit.
For bash or fish, replace zsh with bash or fish.
Keyboard
| Key | Action |
|---|---|
q |
Quit |
1 / 2 / 3 |
Show Schema / Data / Metadata tab |
] / [ |
Next page / previous page |
Ctrl+F |
Filter columns by regex |
/ |
Search cell contents |
n / Shift+N |
Next / previous match |
Enter |
Show full current cell value |
s |
Toggle SQL sidebar |
Ctrl+Enter / Ctrl+J / F5 |
Run SQL |
SQL
The SQL engine exposes the opened file as DuckDB views named data and t:
SELECT * FROM data LIMIT 20;
SELECT count(*) FROM t;
Query results are capped by the engine to keep the terminal responsive.
Terminal Setup
The app cannot force a terminal font. For a clearer table and SQL experience, use a monospaced font with readable punctuation and digits, such as JetBrains Mono or Maple Mono.
Development
Install dependencies and run checks:
uv sync --extra dev
uv run pytest -q
uv run ruff check .
uv build
Project layout:
src/dataview/
app.py
cli.py
readers/
widgets/
tests/
Publishing
Releases are built by GitHub Actions when a GitHub Release is published. PyPI
publishing uses PyPI Trusted Publishing, so the PyPI project must be configured
with this repository and .github/workflows/release.yml before publishing a
release.
Dependencies
Runtime:
pyarrow>=12textual>=0.40fastavro>=1.9duckdb>=0.9tree-sitter>=0.25tree-sitter-sql>=0.3.11
Optional:
pylance>=0.20via thelanceextra
Development:
pytestpytest-asyncioruff
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dataview_tui-0.3.0.tar.gz.
File metadata
- Download URL: dataview_tui-0.3.0.tar.gz
- Upload date:
- Size: 33.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f49718f142f201978a8982f30e78d6860d69dfb4dbcd074ad05888309297594
|
|
| MD5 |
8b85cf777a6cca8921f6111e3e615458
|
|
| BLAKE2b-256 |
b535f30322601bd01b73207044458fd893ab20a7b90996cb0c4a1c5869935ebd
|
Provenance
The following attestation bundles were made for dataview_tui-0.3.0.tar.gz:
Publisher:
release.yml on lyne7-sc/dataview-tui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dataview_tui-0.3.0.tar.gz -
Subject digest:
6f49718f142f201978a8982f30e78d6860d69dfb4dbcd074ad05888309297594 - Sigstore transparency entry: 1508481977
- Sigstore integration time:
-
Permalink:
lyne7-sc/dataview-tui@80486b7e5273feb88e5976397122968e5d921657 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/lyne7-sc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@80486b7e5273feb88e5976397122968e5d921657 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dataview_tui-0.3.0-py3-none-any.whl.
File metadata
- Download URL: dataview_tui-0.3.0-py3-none-any.whl
- Upload date:
- Size: 32.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f065506f35bfc9d7198759531f30cf9df4115b0e81fe2281e6e0967883c289cb
|
|
| MD5 |
40915e47db3a6de0de7065ca377eb972
|
|
| BLAKE2b-256 |
994f595f0ab335aa66547d54c08c878b8b70300f405f1ac9c5119afb43af8502
|
Provenance
The following attestation bundles were made for dataview_tui-0.3.0-py3-none-any.whl:
Publisher:
release.yml on lyne7-sc/dataview-tui
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dataview_tui-0.3.0-py3-none-any.whl -
Subject digest:
f065506f35bfc9d7198759531f30cf9df4115b0e81fe2281e6e0967883c289cb - Sigstore transparency entry: 1508482170
- Sigstore integration time:
-
Permalink:
lyne7-sc/dataview-tui@80486b7e5273feb88e5976397122968e5d921657 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/lyne7-sc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@80486b7e5273feb88e5976397122968e5d921657 -
Trigger Event:
release
-
Statement type: