beautifultable
Print text tables for terminals
What it is and what it does
BeautifulTable is a Python library for rendering tabular data in the terminal with a clean, customizable appearance. It provides a BeautifulTable class that lets you build tables row-by-row or column-by-column, apply predefined styles, set custom borders and alignment, and handle Unicode and colored text. The package depends only on wcwidth for proper column width calculation.
The library is designed for developers who need to print structured data to a console without external dependencies or complex configuration. You can add rows and columns dynamically, set headers, apply ANSI color sequences, and choose from multiple built-in styles. It also supports CSV and dataframe import/export (added in v1.1.0) and streaming tables for slow data retrieval.
Use it for:
- Display query results or database records in a formatted terminal table for CLI tools and scripts
- Format structured logs or status reports with aligned columns and borders for readability
- Build interactive terminal dashboards that refresh table data without redrawing the entire output
- Export tabular data to CSV or pandas DataFrames directly from a BeautifulTable instance
- Create styled ASCII tables in documentation or terminal-based applications with minimal code
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Prints tabular data to the terminal in a formatted, visually appealing layout with customizable borders, alignment, padding, and styling.
Yes, if you need simple, customizable terminal table formatting and can accept that the project is no longer actively maintained. The package is stable, has no known vulnerabilities, and handles the common use case well. Install it for one-off scripts or tools where you control the Python version; avoid it for production systems requiring ongoing support or compatibility updates.
Install
beautifultable on PyPI
pip
pip install beautifultableuv
uv add beautifultablepoetry
poetry add beautifultableInstalling beautifultable
Before you install
Low install friction; single runtime dependency (wcwidth). Maintenance status is abandoned—last release was in 2022 and no commits since then, though the repository remains public and unfrozen.
License in practice
MIT license is permissive; you may use, modify, and distribute this package freely in proprietary or open-source projects with minimal restrictions.
Quickstart
from beautifultable import BeautifulTable
table = BeautifulTable()
table.rows.append(["Jacob", 1, "boy"])
table.columns.header = ["name", "rank", "gender"]
print(table)
Verify before relying
- Whether the package is actively maintained or accepting pull requests despite the abandoned status flag
- Compatibility with Python versions beyond 3.10 (classifiers list 3.7–3.10 only)
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — wcwidth |
| Maintenance | abandoned — 1,561 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 208,249/month — #9,532 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: beautifultable-1.1.0-py2.py3-none-any.whl
Keywords: table, terminal, ascii
Tags
More Text Processing packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyparsingpyparsing provides a library for building text…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
RapidFuzzRapidFuzz provides fast fuzzy string matching…
permissive · top 1,000 on PyPI
tinycss2tinycss2 parses CSS strings into token and…
permissive · top 1,000 on PyPI
llama-parseLlamaParse parses complex documents (PDFs,…
permissive · top 1,000 on PyPI
texttableCreates formatted ASCII tables for console…
permissive · top 1,000 on PyPI
PTablePTable formats tabular data into visually…
permissive · top 15,000 on PyPI
prettytablePrettyTable formats and displays tabular data…
permissive · top 1,000 on PyPI
terminaltablesRenders formatted ASCII tables in terminal…
permissive · top 5,000 on PyPI
pastelPastel adds colored text output to terminal…
permissive · top 5,000 on PyPI
terminaltables3Renders formatted tables in terminal output…
permissive · top 15,000 on PyPI
styleApplies ANSI color and text styling to terminal…
permissive · top 15,000 on PyPI
sttableParses string-formatted tables (with…
permissive · top 15,000 on PyPI
coloredColored provides ANSI/VT100 escape sequences…
permissive · top 5,000 on PyPI
py-markdown-tableGenerates formatted markdown tables from lists…
permissive · top 5,000 on PyPI