back to home

gurgeous / tennis

stylish CSV tables in your terminal

View on GitHub
375 stars
14 forks
0 issues

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing gurgeous/tennis in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/gurgeous/tennis)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Tennis is a small CLI for printing stylish CSV tables in your terminal. Rows will be truncated to fit and it'll automatically pick nice colors to match your terminal. Written in Zig. Demo: Installation Brew/macos Linux tarball Download a binary from https://github.com/gurgeous/tennis/releases. Copy into your path somewhere. I like to use ~/.local/bin personally. Also see the (optional) bash/zsh completions and man page in . Build from source Important Features • auto-layout to fit your terminal window • auto-themes to pick light or dark based on your terminal background • auto-format numbers • auto-detect csv vs tsv (or semis, or pipes) • also works great with json (or jsonl) • titles, row numbers, border styles... Options Note that color defaults to . Tennis likes to be colorful. An Aside: Term Background uses a module to detect the terminal background color so it can choose the correct theme (dark or light). Detection is complicated, and I'm calling it out here because I don't think anyone has implemented this in Zig yet. Future Work • select cols - or or or • and • filter - • add zebra stripes - • briefly summarize each col or • sample some rows Similar Tools We love CSV tools and use them all the time! Here are a few that we rely on: • bat - syntax highlights csv files, and many others • csvlens, tabiew & tidy viewer - great viewers for CSV files, beautiful and fun • miller - csv processing and transformation • nushell - modern shell with first-class structured table data • qsv - filter, sort, combine, join... (a fork of xsv) • Terminal::Table - wonderful rubygem for pretty printing tables, great for non-hash data like confusion matrices • visidata - the best for poking around large files, it does everything • table_tennis - my own project, the basis for this one Changelog 0.0.4 (unreleased) • styles based on Nushell / crate. • for auto-generating bash/zsh completions • , , and support • and for clipping large tables • and for sorting rows by header • , best-effort Unicode width for emojis, etc • auto-detect csv vs tsv (or semis, or pipes) 0.0.3 (Mar '26) • Custom for tsv, semicolon, etc. #5 (@markhm) • Auto numeric formatting, including delims and rounding for int/float columns. Disable with --vanilla. • man page & shell completions 0.0.2 (Mar '26) • Initial release. Special Thanks • termbg and termenv for showing how to safely detect the terminal background color. These libraries are widely used for Rust/Go, but as far as I know nothing similar exists for Zig. • I copied the header color themes from tabiew. Great project! • Border styles pinched from nushell and tabled crate. Thanks guys!