krtek

A database manager for the terminal. Browse, edit, alter, dump, import - every one of them a key press.

SQLite PostgreSQL MySQL / MariaDB SQL Server Redis Kafka S3 Azure Blob RabbitMQ MQTT SFTP Kubernetes CSV files one static binary
krtek browsing a table

apt

This page is also the APT repository, so Debian and Ubuntu can install and upgrade krtek the ordinary way:

sudo install -d /etc/apt/keyrings
sudo curl -fsSLo /etc/apt/keyrings/krtek.gpg \
  https://zales.github.io/krtek/krtek-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/krtek.gpg] https://zales.github.io/krtek ./" \
  | sudo tee /etc/apt/sources.list.d/krtek.list
sudo apt update
sudo apt install krtek

The metadata is signed, so apt checks it the way it checks Debian's own repositories - no trusted=yes anywhere. The key above is the one that signs it, and the build verifies its own signature before publishing, because a repository whose signature does not check out breaks apt update for everyone who already trusts it.

Homebrew

brew install zales/krtek/krtek

macOS and Linux, Apple silicon and Intel, arm64 and x86_64.

Or just the binary

tar xzf krtek-*.tar.gz && ./krtek-*/krtek

It needs nothing installed. SQLite, libpq, the MariaDB connector, libssh2 and OpenSSL are linked into the binary, and Redis, Kafka, S3, Azure Blob, RabbitMQ, MQTT, the Kubernetes API and SQL Server's TDS are spoken directly - down to the WebSocket a shell in a container needs, so no kubectl either. The Linux builds are static against musl and run on any distribution; the macOS builds leave only Apple's own libraries dynamic.

What it is like

the SQL editor with syntax highlighting
SQL with highlighting, tab completing table and column names, ctrl+s running it - and ctrl+c giving up on a statement that takes too long, on every engine.
the command palette
ctrl+k finds any command by a few letters of its name and shows the key that runs it, so using it teaches the key map.
the saved connections
Connections are saved, and each one says where its password may be kept: nowhere, the config file, or the macOS keychain. Every context of your kubeconfig is offered here too, without being saved into anything.
a SQL Server table
Every engine that speaks SQL is the same screen. SQL Server's protocol is written out here rather than linked in - Microsoft's own driver may not be repackaged and FreeTDS is LGPL - so money and decimal stay digits instead of becoming floats, and text stays text whatever the database's own codepage happens to hold.

And a cluster is a database too

pods listed as a table
A resource kind is a table and a namespace is a schema. The columns are the ones kubectl prints, including the ones that have to be worked out - an age, a ready count, and the status that says CrashLoopBackOff where the phase would have said Running.
one pod, opened
enter opens the object: what each container is doing, what the last one died of and with what exit code, and the events - which is where a failed image pull is written down and nowhere else. Along the bottom is what can be done to it, logs and a shell included.

The rest