Tabiew is a lightweight TUI application that allows users to view and query tabular data files, such as CSV, Parquet, Arrow, and ...
- ⌨️ Vim-style keybindings
- 🛠️ SQL support
- 📊 Support for CSV, Parquet, JSON, JSONL, Arrow, and FWF
- 🔍 Fuzzy search
- 📝 Scripting support
- 🗂️ Multi-table functionality
For a guide on using Tabiew, including instructions on opening files, navigating tables, performing queries, and using inline queries, kindly visit the tutorial page.
Key Combination | Functionality |
---|---|
v |
Switch view |
Enter |
Show row in sheet view |
k or Arrow Up |
Move up in the table or scroll up in sheet view |
j or Arrow Down |
Move down in the table or scroll down in sheet view |
h or Arrow Left |
Move to the previous item in sheet view |
l or Arrow Right |
Move to the next item in sheet view |
Page Up or Ctrl+b |
Move one page up |
Page Down or Ctrl+f |
Move one page down |
H or Shift+Arrow Left |
Select previous tab |
L or Shift+Arrow Right |
Select next tab |
Ctrl+u |
Move up half a page |
Ctrl+d |
Move down half a page |
Home or g |
Move to the first row |
End or G |
Move to the last row |
R |
Select a random row |
Ctrl+r |
Reset the data frame |
q |
Close current tab |
: |
Command mode |
/ |
Search mode |
Command | Example | Description |
---|---|---|
:Q or :query |
:Q SELECT * FROM df |
Query the data in Structured Query Language(SQL). The table name is the file name without extension |
:S or :select |
:S price, area, bedrooms, parking |
Query current data frame for columns/functions |
:F or :filter |
:F price < 20000 AND bedrooms > 4 |
Filter current data frame, keeping rows were the condition(s) match |
:O or :order |
:O area |
Sort current data frame by column(s) |
:tabn |
:tabn SELECT * FORM user WHERE balance > 1000 |
Create a new tab with the given query |
:q or :quit |
:q |
Return to table from sheet view otherwise quit |
:schema |
:schema |
Show loaded data frame(s) alongside their path(s) |
:reset |
:reset |
Reset the table to the original data frame |
:help |
:help |
Show help menu |
There are various ways to install Tabiew:
You can install from the official repositories using pacman:
pacman -S tabiew
Download the .deb
package from the GitHub releases page and run:
sudo dpkg -i <path_to_package.deb>
Download the .rpm
package from the GitHub releases page and run:
sudo rpm -i <path_to_package.rpm>
Installing Tabiew using Homebrew from Homebrew core:
brew update
brew install tabiew
or tap:
brew install shshemi/tabiew/tabiew
Note: Please be aware that installing Tabiew from the tap involves compiling it from the source, which may take some time to complete.
Installing Tabiew from Crates.io:
cargo install tabiew
Ensure you have the rustc version 1.80 (or higher) installed, then:
git clone https://github.com/shshemi/tabiew.git
cd tabiew
cargo build --release
cp ./target/release/tw <system_or_local_bin_path>
Start Tabiew with tw
tw <path_to_csv(s)>
Options:
--no-header
: Use this option if the CSV file does not contain a header row.--ignore-errors
: Ignore parsing errors while loading the CSV file.--infer-schema
: Set the schema inference method. Options are no, fast, full, and safe.--quote-char
: Set the quote character.--separator
: Set the separator character.--theme
: Set the theme.
To open TSV file(s), use:
tw <path_to_tsv(s)> --separator $'\t' --no-header
To open parquet file(s), use:
tw <path_to_parquet(s)> -f parquet
Contributions are welcome! Please fork the repository and submit pull requests with your features and bug fixes.
This project is licensed under the MIT License - see the LICENSE file for details.