TTB2 is the new and improved 2.0 version of the terminal table builder. It features a clean ncurses UI that displays table data live, list-based menus, autosave, paging for wide and tall tables, an inline search mode, and interactive row/column deletion. CSV and XLSX import/export support is built in, with simple PDF export for sharing table snapshots.
All of the features you're used to, just improved.
Go to the latest TTB2 release and download the .deb file.
Install the downloaded package:
sudo apt install ./ttb2_VERSION_ARCH.debReplace ttb2_VERSION_ARCH.deb with the name of the file you downloaded.
Install dependencies (Debian/Ubuntu packages):
- GCC/Clang (
build-essential)sudo apt install build-essential - ncurses (wide-char) (
libncursesw5-dev)sudo apt install libncursesw5-dev - SQLite3 (
libsqlite3-dev)sudo apt install libsqlite3-dev - JSON-C (
libjson-c-dev)sudo apt install libjson-c-dev - zlib (
zlib1g-dev)sudo apt install zlib1g-dev
Build the native binary:
make
This produces ./build/ttb2.
Install to your PATH:
sudo make install
Override the install prefix if needed:
make install PREFIX=/usr
make install DESTDIR=/tmp/package-root
Clean:
make clean
ttb2
ttb2 path/to/data.csv
ttb2 path/to/data.xlsx
ttb2 path/to/table.ttbl
ttb2 path/to/book.ttbxSupported startup inputs:
.csv.xlsx.ttbl.ttbxdirectory books
- Interactive table editing (add columns/rows; rename columns; change types; edit cells)
- Fast load and render times; smooth scrolling even on large tables
- Low‑RAM seek paging (SQLite-backed, streaming windows; no OFFSET) — toggle in Settings
- Row‑number gutter (centered, toggle in Settings)
- Data types: int, float, str, bool (color‑coded)
- Column paging with ←/→ and footer hints
- Row paging with ↑/↓
- Search mode: press F to search; navigate matches with ←/→/↑/↓; Esc exits; exact substring highlight inside the selected cell
- Edit mode tools: [x] Delete Row, [Shift+X] Delete Column (guarded), [Backspace] Clear Cell, [v] Move Row/Column, [V] Swap Row/Column
- Paged edit footer hints with
Tabto switch between footer pages - Workspace auto-save to
.ttbxprojects (toggle via Settings, manual save withS) - Table Manager: Easily switch between tables within a book, rename, and delete tables.
- Settings modal (saved to
settings/settings.json; includes core toggles and editor color options) - Exports: native CSV, XLSX, and PDF save options (no external runtime required)
-
cAdd column -
rAdd row -
eEdit mode (arrows to navigate, Enter to edit, Esc to exit) -
fSearch mode (arrows to jump matches, Esc to exit) -
SSave workspace project -
Ctrl+HJump to top‑left (Home) -
mTable menu (Rename, Save, Load, New Table, DB Manager, Settings) -
qQuit -
In Edit mode:
EnterEdit cellFSearch modexDelete row (interactive; Enter confirms)Shift+XDelete column (interactive; Enter confirms)vMove row or column (row when on a body row, column when on the header)VSwap row or column (row when on a body row, column when on the header)TabCycle footer hint pagesBackspaceClear cell (with confirmation)- Move row prompts for
AboveorBelowafter you pick the destination row - Move column prompts for
LeftorRightafter you pick the destination column Ctrl+HJump to top‑left (Home)EscBack
- Enable “Low‑RAM seek paging” in Settings to browse large datasets without loading everything into memory.
- Rows are fetched in small windows and rendered incrementally to keep memory and latency stable.
- On Windows terminals, flicker is minimized by double‑buffered updates and scanning only visible rows for column widths.
- A project workspace lives in
workspace/session.ttbxby default. The file is created automatically and updated whenever autosave triggers or you pressS. - Use the Export menu to write the current data as:
.ttbl– a single-table snapshot.ttbx– a project/workbook bundle.csv,.xlsx, or.pdf
- Export now lets you browse to a destination directory in-app before entering the output filename.
- Settings are stored in
settings/settings.json. - The active workspace session book is stored in
workspace/session.ttbxwhile the app is running.
GitHub Actions installs build deps and runs a simple make; build logs are visible in the job output.
Luke Canada (canadaluke888@gmail.com)


