Repolode
gurgeous

gurgeous/tennis

A small Rust CLI that prints CSV, TSV, JSON and SQLite data as stylish, auto-laid-out tables in your terminal.

Stars
824
Forks
23
Open issues
0
Last commit
24 days ago

What is it?

tennis is a command-line tool for viewing tabular data in the terminal. It reads CSV, TSV, JSON, JSONL and SQLite input, detects the delimiter and format automatically, and prints the result as a styled table. Rows are truncated to fit the window, and colors and themes adapt to whether your terminal background is light or dark.

Beyond display, it offers sorting, filtering, column selection, head and tail, and a --peek mode that summarizes file shape, sample rows and fill rates. Numeric columns are formatted and aligned, and color scales can highlight values. Layout options such as -b, -bb and -bbb enlarge specific columns.

The project is MIT-licensed and distributed through Homebrew for macOS, Linux tarballs, and builds from source with Cargo.

Key features

  • 01Auto-layout to fit the terminal width, truncating long rows
  • 02Reads CSV, TSV, JSON, JSONL and SQLite with automatic format detection
  • 03Auto light/dark theme and NO_COLOR support
  • 04Sorting, filtering, column selection, head and tail
  • 05--peek summarizes shape, samples and column stats
  • 06Numeric formatting, zebra stripes, borders and color scales

Use cases

  • Quickly inspecting a CSV export without opening a spreadsheet
  • Previewing JSON or SQLite data directly in a shell session
  • Getting a fast overview of an unfamiliar data file with --peek
  • Sorting or filtering a file in the terminal before piping results onward

Quick start

  1. 1

    Install with Homebrew on macOS

    brew install gurgeous/tap/tennis
  2. 2

    Or build from source (run this in the repo)

    cargo build
  3. 3

    Print a CSV file as a table

Things to know

  • Sqlite support depends on the external sqlite3 CLI being installed.
  • Building from source requires the Rust toolchain and mise setup.

Topics

FAQ

What is tennis?
A small Rust CLI that prints CSV, TSV, JSON and SQLite data as stylish, auto-laid-out tables in your terminal. tennis is a command-line tool for viewing tabular data in the terminal. It reads CSV, TSV, JSON, JSONL and SQLite input, detects the delimiter and format automatically, and prints the result as a styled table. Rows are truncated to fit the window, and colors and themes adapt to whether your terminal background is light or dark.
Is tennis free to use? What license does it have?
tennis is open source under the MIT license. Check the license terms before using it in commercial products.
Is tennis still maintained?
Actively maintained. The last commit to tennis was on Sep 26, 2026.
What can I use tennis for?
Quickly inspecting a CSV export without opening a spreadsheet Previewing JSON or SQLite data directly in a shell session Getting a fast overview of an unfamiliar data file with --peek Sorting or filtering a file in the terminal before piping results onward
How do I install tennis?
Install with Homebrew on macOS: brew install gurgeous/tap/tennis Or build from source (run this in the repo): cargo build Print a CSV file as a table
Where can I get tennis?
The source code and installation instructions are on GitHub: https://github.com/gurgeous/tennis

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects