Built with Polars and Ratatui. Released under the MIT license.
The project's README from github.com/derekwisong/datui. As one markdown file: README.md.
Explore tabular data in your terminal.
Parquet, CSV, JSON, Arrow, Excel, SQLite, logs, audio, model files and more, including binary formats you describe in a format spec.
Open it from local disk, S3, GCS, Azure, HTTP(S), a pipe, or a Polars frame in Python.
Website · Documentation · Quick start · Formats

datui # home screen: your files, and Example datasets to open with no login
datui s3://noaa-ghcn-pds/parquet/by_year/YEAR=2024/ # 38 million rows of NOAA weather, no login
Press ? for the keys on any screen. Esc backs out; Ctrl+Q quits.
curl -fsSL https://raw.githubusercontent.com/derekwisong/datui/main/scripts/install/install.sh | sh
| Platform | Command |
|---|---|
| Windows, WinGet | winget install derekwisong.datui |
| Debian, Ubuntu | Apt repository |
| Fedora, RHEL | Dnf repository |
| Arch Linux, AUR | yay -S datui-bin # or: paru -S datui-bin |
| macOS, Linux, Homebrew | brew tap derekwisong/datui && brew trust derekwisong/datui && brew install datui |
| Python, PyPI | pip install datui |
| Rust, crates.io | cargo install datui --locked |
| Binaries | Linux, macOS and Windows binaries, .deb, .rpm and Arch tarballs on the latest release |
More ways to install, and how to uninstall: the installation guide.
LazyFrame until it is drawn.First rows in milliseconds on local files, under a second from S3. Performance has the numbers.
| Task | Key or command | Guide |
|---|---|---|
| Find text, a regex or letters in order | / |
Find |
| Run SQL or q | : |
Queries |
| Sort by the cursor's column; keep or drop its value | [ ], + - |
Sort and filter |
| Value counts of a column | F |
Value counts |
| Chart; export it to PNG, SVG or PDF | c, then e |
Charts |
| Pivot or melt | p |
Reshaping |
| Change a column's type | i, Enter on the Schema tab |
Column types |
| Copy (OSC 52 over SSH) or export | y, e |
Copy · Export |
| Save the steps as a view for the next file | v |
Views |
| Read your own binary or delimited format | datui --format SPEC.toml FILE |
Format specs |
| Follow a growing file; view a pipe as it arrives | datui -f FILE, COMMAND | datui |
Pipes |
| Add a dataset to your catalog; read its documentation | Ctrl+D, Ctrl+E on the home screen |
Catalogs |
| Pick a theme | datui theme list |
Configuration |
| Click, scroll, drag a column, right-click a cell | Mouse | Mouse |
| Source | Open it with |
|---|---|
| A file, a directory of files, a glob | datui sales.parquet, datui events/, datui --hive 'logs/*/*.parquet' |
| S3, GCS, Azure | datui s3://BUCKET/KEY, gs://…, abfss://…, or browse it from the home screen |
| HTTP(S) | datui https://… |
| Hive partitions | A key=value tree opens as one table, partition columns first |
| Standard input | COMMAND | datui |
| Python | datui.view(frame) on a Polars DataFrame or LazyFrame |
The home screen lists your recent files, your directories, your catalogs, the cloud accounts it finds logins for, and Example datasets: public data that opens with no login. Home screen · Cloud storage
pip install datui installs the command and the module:
import datui
import polars as pl
url = "https://vincentarelbundock.github.io/Rdatasets/csv/palmerpenguins/penguins.csv"
penguins = pl.scan_csv(url)
datui.view(penguins)
# Return the current query, filters and sort as a LazyFrame.
result = datui.view(penguins, capture=True)
if result is not None:
print(result.collect())
Open an issue for bugs and feature requests. The developer guide covers building, testing and contributing. Report security issues using SECURITY.md.
Built with Polars and Ratatui. Released under the MIT license.
Built with Polars and Ratatui. Released under the MIT license.