Data and databases · Edition No. 30 · 24 Sep 2026

k1LoW/tbls

Reads a live database and writes its documentation as Markdown with generated diagrams, then lints the schema against rules you set.

← Data and databasesRead the whole edition →

4,344 stars · MIT · v1.96.0 (2026-09-03, /releases/latest and ungh agree) · Track this in Scout

Reads a live database and writes its documentation as Markdown with generated diagrams, then lints the schema against rules you set.

▶Repo detailsthe review · specs · pros & cons · install

What it is

tbls is a single Go binary that connects to a database and produces Markdown documentation with a diagram of every table and every relationship. It also includes a linter, so the same command can fail a build when the schema drifts from the rules you agreed.

What it is good for. Anyone who has inherited a database that nobody documented, which is almost everyone. The linting half is for a small team that keeps meaning to write column comments and never does.

Stars4,344
LicenceMIT
Latestv1.96.0 (2026-09-03, /releases/latest and ungh agree)
Good
  • Read-only. It connects, reads the structure, and writes files. There is no version where it changes your data.
  • It supports PostgreSQL, MySQL, SQLite, SQL Server, BigQuery, DynamoDB and several more, so one tool covers a mixed estate.
  • The output is Markdown and the diagrams are generated, so the documentation lives in the same place as the code and is reviewed like the code.
Watch for
  • It documents structure, not meaning. It will tell you a column is called status and an integer; it cannot tell you that 3 means refunded.
  • The rules of the linter have to be written by somebody, and an empty rule file finds nothing.
  • Diagrams of a large database are large. Past about eighty tables the single picture stops being readable and you need to split it by schema.
Similar repositories
Install
# macOS or Linux with Homebrew
brew install k1LoW/tap/tbls
# or with Go installed
go install github.com/k1LoW/tbls@latest
tbls doc "postgres://user:password@localhost:5432/mydb?sslmode=disable" ./dbdoc
Screenshots
k1LoW/tbls: GitHub preview cardk1LoW/tbls: Screenshot 1k1LoW/tbls: Screenshot 2

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.