SimpleTableCLI is a lightweight command-line tool for exploring and manipulating CSV files. It provides focused utilities for loading, inspecting, selecting, filtering, and formatting CSV data from the terminal. This repository contains a minimal, working implementation designed to be extended.
- Project overview
- Screen recordings
- Features
- Installation
- Quick start
- Tests
- Project layout
- Notes and Takeaways
- License
I built this project to learn the skill of building simple CLI tools according to a clearly scoped specification. And, for that matter, the general skill of completing a project with a clear finishing condition. I also used it as an opportunity to strengthen my ability to think through writing good tests and, critically, writing testable modules.
Screen recordings of use will go here.
- Load local CSV files
- Inspect columns
- Select columns and project subsets of data
- Filter rows
- Basic regex search utilities across fields
- Unit tests covering core functionality
- Pipe-friendly output (raw CSV when piped, formatted tables in terminal)
This project targets modern Python (3.11+). Use a virtual environment for development.
# macOS / zsh
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtFor development installation:
pip install -e .Display CLI help and available subcommands:
python main.py --helpRun the test suite with pytest:
pytest -qmain.py— CLI entrypointcli/— core modules implementing parsing, loading, filtering, and formattingparser.pydata_loader.pycolumns.pyfilter.pyselect.pyformatter.pysearch_utils.py
tests/— unit tests and testdatarequirements.txt,pyproject.toml— dependency and packaging metadata
TO-DO
TO-DO