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.
- Tabbed data views with quick navigation
- CSV/TSV, Excel, and SQLite import flows
- Polars‑backed SQL queries and lazy evaluation
- Sorting, filtering (builder dialog + quick filters), column width management
- Find, Find All with contextual results, and value viewer with optional auto‑expand
- JMESPath transforms and Add Columns from expressions
- Workspace persistence (state + current views) with Parquet snapshots
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]
Quick keys inside DataTUI:
- Ctrl+M: Data Management
- Alt+S: Project Settings
- Ctrl+S/E/T/J/W/D/F/I: Sort / Filter / SQL / JMES / Widths / Details / Find / Toggle instructions
- Alt+Left/Right: Switch tabs
- Alt+F/B/L/R: Reorder tabs (front/back/left/right)
When a valid workspace folder is set in Project Settings, DataTUI persists:
- State file:
datatui_workspace_state.json
- Settings file:
datatui_workspace_settings.json
- Current DataFrame snapshots:
.datatui/tabs/<dataset-id>.parquet
On exit or when requested, TDV writes the current view to Parquet per tab (if applicable) so you can quickly resume where you left off.
- Rust toolchain required
- Build:
cargo build
(or--release
) - Run tests (if present):
cargo test