| Crates.io | datatui |
| lib.rs | datatui |
| version | 0.3.0 |
| created_at | 2025-09-20 15:19:19.615895+00 |
| updated_at | 2025-11-27 05:36:09.079703+00 |
| description | DataTUI: A fast, keyboard-first terminal data viewer. |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1847866 |
| size | 3,191,546 |
A fast, keyboard‑first terminal data viewer built with Rust and Ratatui. DataTUI lets you explore CSV/TSV, Excel, and SQLite data with tabs, sorting, filtering, SQL (via Polars), and more.

From source in this repo:
cargo build --release
# binary at target/release/datatui
Or run locally:
cargo run --release --bin datatui
datatui [--logging error|warn|info|debug|trace]
Preload one or more datasets on startup by repeating --load. Each spec is:
kind:path;key=value;flag
--load flags are allowed; each adds a dataset to import.path can be a file path, a glob pattern (*, ?, [abc]), or STDIN/-.=value are treated as boolean true.CSV/TSV/TEXT: text, csv, tsv, psv
delim/delimiter (,, comma, tab, |, pipe, psv, space, or char:x), header/has_header (true|false), quote/quote_char (char or none), escape/escape_char (char or none), merge (true|false).--load 'csv:C:\\data\\sales.csv;header=true'--load 'tsv:C:\\data\\export.tsv;header=false'--load 'text:C:\\data\\file.txt;delim=tab;quote=none'--load 'psv:C:\\data\\*.psv;header=true;merge=true' (globs; merged into a temp file)Excel: xlsx, xls
all_sheets (true|false, default true), sheets/sheet (comma list).--load 'xlsx:C:\\data\\book.xlsx' (all sheets)--load 'xlsx:C:\\data\\book.xlsx;all_sheets=false;sheets=Sheet1,Sheet3'SQLite: sqlite, db
import_all_tables (true|false), table (single), tables (comma list).--load 'sqlite:C:\\db\\app.sqlite;table=users'--load 'sqlite:C:\\db\\app.sqlite;tables=users,orders'--load 'sqlite:C:\\db\\app.sqlite;import_all_tables=true'Parquet: parquet
--load 'parquet:C:\\data\\metrics.parquet'JSON / NDJSON: json, jsonl, ndjson
ndjson (true|false), records (path to array of records), merge (true|false, only for NDJSON).--load 'json:C:\\data\\records.json;records=data.items'--load 'jsonl:C:\\logs\\*.jsonl;merge=true' (globs; merged into a temp .jsonl)STDIN or - as the path. The temp file extension is inferred from kind and options.cat data.json | datatui --load 'json:STDIN'Get-Content -Raw data.json | datatui --load 'json:-'Repeat --load to queue several datasets; they will import automatically on startup.
~/.datatui-config.json5. On first run, this file is created from built‑in defaults. Override with --config PATH.Global, DataTabManager, and per‑dialog modes. The on‑screen Instructions bar shows current keys for common actions.--config PATH.When a valid workspace folder is set in Project Settings, DataTUI persists:
datatui_workspace_state.jsondatatui_workspace_settings.json.datatui/tabs/<dataset-id>.parquetOn exit or when requested, TDV writes the current view to Parquet per tab (if applicable) so you can quickly resume where you left off.
cargo build (or --release)cargo test