finds.dev← search

// the find

xo/usql

★ 9,996 · Go · MIT · updated Apr 2026

Universal command-line interface for SQL databases

usql is a single binary that gives you a psql-like interactive shell for almost any SQL (and some NoSQL) database — same backslash commands, same muscle memory, ~50 drivers. It's for developers and DBAs who work across multiple database engines and don't want to learn five different CLI tools.

The URL-based connection scheme (pg://, ms://, sq://, etc.) is genuinely well thought out — short aliases mean you're not typing 'postgresql://' every time. The cross-database copy command (\copy SRC DST QUERY TABLE) is the killer feature: pipe data between databases without a script. Build tags let you compile in only the drivers you need, keeping the binary lean. Metadata introspection (\d, \dt, \di) works across drivers, not just Postgres, which is rare.

CGO drivers (sqlite3, DuckDB, godror) mean cross-compilation is a headache — the 'most' tag deliberately excludes them for this reason, which surprises people who expect sqlite3 to just work. Driver quality is wildly inconsistent: some drivers haven't had meaningful updates in years and the 'bad' build tag exists specifically to exclude broken ones. The \.chart command sounds great but is backed by Vega-Lite rendered as SVG in the terminal, which is basically useless outside of a handful of terminal emulators. NoSQL support (Cassandra, DynamoDB, CosmosDB) is thin — you get a SQL-ish interface but lose any database-specific query features.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →