Rainfrog Puts a Multi-Database Query Editor in the Terminal
a database tool for the terminal. in theory, the mysql driver should be able to do the same for databases that support the mysql protocol.
At a glance
- What is it?
- Rainfrog is a Rust terminal application for browsing and querying postgres, mysql, sqlite, and other databases with vim-like keybindings, built on ratatui and sqlx.
- Who is it for?
- Rainfrog fits an engineer who already lives in a terminal and needs to check postgres, mysql, or sqlite data without opening a GUI client, not a team running write queries against a production database, which the project's own disclaimer advises against. Before adopting it, verify the Rust toolchain meets the 1.88 floor Cargo.toml requires, and check whether the target platform is one of the android, i686, or musl builds that ship without the duckdb driver.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 5 days ago.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Built on ratatui and sqlx, with a Rust 1.88 floor
Rainfrog is a Rust binary built on ratatui 0.30.2 for its terminal interface and sqlx 0.8.6 for talking to the underlying databases, with sqlx compiled with postgres, mysql, sqlite, uuid, chrono, json, and ipnetwork features, according to Cargo.toml. Cargo.toml pins the crate to edition 2024 and a rust-version floor of 1.88, so an older Rust toolchain cannot build it; version 0.4.6 is the current release. clap 4.4.5 handles the command line, crossterm 0.29.0 drives the terminal backend, and tokio 1.43.1 with its full feature set runs the async database calls so a slow query does not freeze the interface. None of this is visible to someone running a prebuilt binary, only to someone compiling from source. The project describes itself as a lightweight, terminal-based tool built for efficient navigation through vim-like keybindings and mouse controls, with a query editor that keeps keyword highlighting, session history, and saved favorites, plus shortcuts to quickly copy data, filter tables, and switch between schemas without leaving the query view.
A four-tier system for how well each database driver works
Database support in rainfrog is split into four tiers. Tier 1, postgres, is most frequently tested, with bugs addressed as soon as possible. Tier 2 covers mysql, sqlite, redshift, and duckdb, each often tested and fixed when necessary. Tier 3 is oracle, described as community supported, with contributions welcome but otherwise minimal development, and tier 4 is reserved for anything new or experimental whose behavior is subject to change. Redshift has no driver of its own: the tier table marks it as reached via wire protocol through postgres, and the project states this path is not well tested. The same theory applies to mysql, which should in principle reach any database speaking the mysql wire protocol, though this is likewise unverified beyond mysql itself. The known issues column adds two concrete gaps: prebuilt android, i686, and musl binaries do not include the duckdb driver at all, and the oracle driver needs additional runtime dependencies, specifically Oracle's ODPI-C library, installed separately from the rainfrog binary.
Installing through cargo, Homebrew, or the install script
Building from source starts with Rust, ideally installed through rustup:
cargo install rainfrog --lockedAll features are included by default, and Cargo.toml documents which feature combinations exist for platforms that cannot support every driver. Homebrew skips the compile step entirely:
brew install rainfrogA third option is the project's own install script, which downloads a prebuilt binary from the release page and unpacks it to ~/.local/bin/:
curl -LSsf https://raw.githubusercontent.com/achristmascarl/rainfrog/main/install.sh | bashThe script needs jq and fzf already installed, and it asks which binary matches the machine, information available by running rustc -vV to see the host target. Rainfrog is also packaged for Arch Linux through pacman, for Nix, for conda-forge, and for pixi. Whichever path is used, the terminal needs a nerd font installed for the interface's icons to render; without one, the icon glyphs show as missing or boxed characters instead of symbols.
Termux needs its own Rust and the no-default-features flag
Termux, the Android terminal emulator, needs its own Rust before rainfrog can be built:
pkg install rustInstalling rainfrog itself on Termux requires disabling the default feature set:
cargo install rainfrog --no-default-featuresSkipping that flag risks pulling in dependencies that do not build under Termux; the Makefile's own dev-termux target runs cargo run --no-default-features for the same reason during development. Android carries a second limitation beyond Termux: the known issues column notes that prebuilt android binaries, along with i686 and musl builds, ship without the duckdb driver, so anyone on those platforms who needs duckdb has to compile it in rather than rely on the default build.
The Docker image builds its connection string from six environment variables
The Docker image is a multi-stage build using cargo-chef to cache dependencies before compiling the release binary, then copies only the compiled rainfrog executable into a debian:bookworm-slim runtime image running as a non-root rainfrog user. Its startup command assembles a full connection from six environment variables:
CMD ["bash", "-c", "rainfrog --username=$username --password=$password --host=$hostname --port=$db_port --database=$db_name --driver=$db_driver"]All six, username, password, hostname, db_port, db_name, and db_driver, have to be set on the container for it to connect anywhere. The image also defines a health check that polls for the rainfrog process every 30 seconds with pidof and fails after three missed checks.
The disclaimer against write access on a production database
Rainfrog's own disclaimer says the project is currently under active development, to expect breaking changes, and to use it at your own risk. It adds a narrower warning on top of that: it is not recommended to use this tool with write access on a production database. That is a more specific caution than a generic beta label, since it names the exact connection to avoid, a write-capable credential against production, rather than telling a reader to simply be careful.
MIT license and a monthly release cadence
Rainfrog is licensed MIT, according to both the repository's license field and the license key in Cargo.toml, so embedding or modifying it carries none of the copyleft obligations a GPL project would add. The three most recent tags are v0.4.6 on 2026-09-24, v0.4.5 on 2026-08-25, and v0.4.4 on 2026-08-17, a release roughly every month. The last push to the repository landed on 2026-09-24, the same day as the v0.4.6 tag. Upgrading through cargo, Homebrew, pacman, or the install script means re-running the same install command to pick up the new binary; no separate migration step is documented for moving between these point releases.
A GUI client instead of a terminal one
The alternative for someone who wants to browse tables without a terminal is a desktop database client with a graphical grid and a mouse-driven query builder. That approach trades rainfrog's vim-like keybindings and mouse controls for windows, tabs, and a visible result grid, at the cost of a separate application to install and a UI to learn apart from a terminal workflow. Rainfrog's query editor gives keyword highlighting, session history, and favorites inside the same terminal window already open for other work, with shortcuts to view table metadata and switch between schemas without leaving the keyboard. Someone who lives in a terminal all day loses little by staying there for a database check; someone who wants a resizable window with several tabs open side by side does not gain that from rainfrog.
Editorial conclusion
Rainfrog fits an engineer who already lives in a terminal and needs to check postgres, mysql, or sqlite data without opening a GUI client, not a team running write queries against a production database, which the project's own disclaimer advises against. Before adopting it, verify the Rust toolchain meets the 1.88 floor Cargo.toml requires, and check whether the target platform is one of the android, i686, or musl builds that ship without the duckdb driver.
Frequently asked questions
Which databases does rainfrog support?
Postgres is tier 1, the most tested. Mysql, sqlite, redshift, and duckdb are tier 2, often tested and fixed when necessary. Oracle is tier 3, community supported with minimal active development.
Can rainfrog connect to AWS Redshift?
Yes, through the postgres driver over the postgres wire protocol, though the project states this path is not well tested and should be checked against Redshift's own documentation for compatibility.
Is it safe to use rainfrog against a production database?
Rainfrog's own disclaimer says it is not recommended to use the tool with write access on a production database, since the project is still under active development and can introduce breaking changes.
How do you install rainfrog on Android?
Through Termux: install Rust with pkg install rust, then install rainfrog itself with cargo install rainfrog --no-default-features to avoid dependencies that do not build under Termux.
What license is rainfrog released under?
MIT, as stated in both the repository's license field and the license key inside Cargo.toml.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/achristmascarl-rainfrog)