rainfrog is a free, open source databases project written in Rust and released under MIT. It has 5,337 GitHub stars, 95 forks and 14 open issues, and was last pushed 31 hours ago. On this registry it ranks #139 of 203 tracked projects in Databases, with 5 head-to-head comparisons available.

What is rainfrog?

rainfrog is a lightweight, MIT-licensed terminal database client written in Rust, built for developers and operators who want to browse schemas, run queries, and inspect tables against PostgreSQL, MySQL, SQLite, and similar engines without leaving the shell.

What it is

rainfrog is a terminal user interface for working with relational databases, built on the ratatui Rust library and distributed as a single command-line binary. It lives in the Rust and terminal-tooling ecosystem, alongside the broader family of ratatui-based CLI applications, and it takes the place a graphical database client would otherwise occupy in a developer's day-to-day workflow. Its stated goal is to provide a lightweight, terminal-based tool for interacting with databases, and the project is distributed under the MIT licence from a repository that has accumulated 5,337 stars, 95 forks, and 14 open issues.

The concrete problem it solves is the context switch away from the terminal that GUI database clients force on developers. rainfrog keeps schema browsing, query authoring, table filtering, and data copying inside the terminal session, with vim-like keybindings and mouse controls for navigation. It supports multiple engines directly: PostgreSQL at tier 1 (most frequently tested, bugs addressed as soon as possible), MySQL, SQLite, Redshift, and DuckDB at tier 2 (often tested, fixed when necessary), and Oracle at tier 3 (community supported, additional runtime dependencies required). The PostgreSQL driver can also connect to other databases that speak the PostgreSQL wire protocol, such as AWS Redshift, though that path is documented as not well tested.

Key capabilities

  • Query editor with keyword highlighting, session history, and saved favorites.
  • Efficient navigation via vim-like keybindings and mouse controls.
  • Quick filtering of tables, copying of data, and switching between schemas.
  • Shortcuts to view table metadata and properties.
  • Connection setup through connection options, a connection URL, or environment variables.
  • Runs cross-platform on macOS, Linux, and Windows, and on Android through Termux.
  • Available as a container image, launched with docker run.

Who uses it and how

  • Developers on remote or headless machines who need database access without a graphical client.
  • Linux users installing from distribution repositories, including Arch Linux via pacman -S rainfrog, and Nix, Conda, and Pixi users pulling from those ecosystems.
  • Android users running it inside Termux, where Rust is installed through the Termux package manager with pkg install rust.
  • Teams standardising on a single cross-platform client across macOS, Linux, and Windows, using shared settings, database connection definitions, and rebindable keybindings.
  • Oracle users willing to install the driver's additional runtime dependencies in exchange for tier 3 support.

Getting started

Install with Cargo using cargo install rainfrog --locked, or with cargo binstall rainfrog if cargo-binstall is present. Alternative paths include Homebrew, the Arch Linux official repositories, Nix, Conda, Pixi, an install script, prebuilt binaries from the release page, and docker run.

How it compares

No other tool is named in the facts provided for this registry, so rainfrog stands alone here rather than being contrasted against a specific alternative. Comparisons must therefore be drawn from its own documented behaviour and licence terms.

When to use it β€” and when not

Pick rainfrog when the goal is a fast terminal client across PostgreSQL, MySQL, SQLite, Redshift, or DuckDB, and when its keybindings and schema-browsing shortcuts match how the user already works. Avoid it for production write access: the project carries an explicit disclaimer that it is under active development, that breaking changes are expected, and that it is not recommended for use with write access on a production database. Note also that the DuckDB driver is absent from prebuilt Android, i686, and musl binaries, and that the Oracle driver requires additional runtime dependencies.

project readme (upstream, from github) β€” read inline

🐸 rainfrog

a database tool for the terminal

rainfrog demo

[![Crate Badge]][Crate] [![Repo Badge]][Repo] ![License Badge]
[![CI Badge]][CI] Built With Ratatui

features

the goal for rainfrog is to provide a lightweight, terminal-based tool for interacting with databases.

  • efficient navigation via vim-like keybindings and mouse controls
  • query editor with keyword highlighting, session history, and favorites
  • quickly copy data, filter tables, and switch between schemas
  • shortcuts to view table metadata and properties
  • cross-platform (macOS, linux, windows, android via termux)

why "rainfrog"?

frogs find refuge in elephant tracks

supported databases

the levels of support for different databases can be split into 4 tiers:

  • tier 1: most frequently tested, bugs will be addressed as soon as possible.
  • tier 2: often tested, fixed when necessary.
  • tier 3: community supported; contributions are welcome, but otherwise development is minimal.
  • tier 4: new or experimental; should be treated as unstable, and behavior is subject to change.
database tier known issues via wire protocol*
postgres 1
mysql 2
sqlite 2
redshift 2 postgres
duckdb 2 prebuilt android, i686, and musl binaries do not include this driver
oracle 3 requires additional runtime dependencies

*the postgres driver can also be used to connect to other databases that support the postgres wire protocol, such as AWS Redshift. however, this functionality is not well tested. in theory, the mysql driver should be able to do the same for databases that support the mysql protocol. check each database's documentation for compatibility.

disclaimer

this software is currently under active development; expect breaking changes, and use at your own risk. it is not recommended to use this tool with write access on a production database.

table of contents

installation

cargo

after installing rust (recommended to do so via rustup):

cargo install rainfrog --locked

by default, all features are included. some features may not be compatible with your platform; check Cargo.toml to see what feature combinations are available.

if you have cargo-binstall, you can run:

cargo binstall rainfrog

homebrew

brew install rainfrog

arch linux

arch linux users can install from the official repositories using pacman:

pacman -S rainfrog

termux

if you are using termux, you'll need to install rust via their package manager:

pkg install rust

and then make sure to install with termux features (and disable default features):

cargo install rainfrog --no-default-features

nix

nix-env -iA nixos.rainfrog

conda

conda install -c conda-forge rainfrog

pixi

The command below installs rainfrog from conda-forge, the same repository as conda, but unlike conda it can be installed user-globally using pixi.

pixi global install rainfrog

install script

there is a simple install script that assists in downloading and unpacking a binary from the release page to ~/.local/bin/, which you might want to add to your PATH variable if it isn't already there. you'll need to select which binary is appropriate for your system (if you're not sure, you can find out by installing rust and running rustc -vV to see the "host" target), and the script also needs jq and fzf installed to run.

curl -LSsf https://raw.githubusercontent.com/achristmascarl/rainfrog/main/install.sh | bash

release page binaries

  1. manually download and unpack the appropriate binary for your os from the latest release (if you're not sure which binary to pick, you can find out by installing rust and running rustc -vV to see the "host" target)
  2. move the binary to a folder in your PATH environment variable

icons

you will need to have a nerd font installed and used by your terminal for the icons to show up.

dependencies

for some of the databases supported by rainfrog, the driver has additional runtime dependencies. you can find instructions for installing those dependencies below.

oracle

the oracle driver uses ODPI-C, which requires Oracle Client libraries to be installed. instructions for installing the Oracle Instant Client can be found here: ODPI-C Installation.

after installation, you may need to manually copy the client files to a location where ODPI-C can find them, which is either in the same folder as the rainfrog binary, or in the library path of your os. more details can be found in the ODPI-C installation instructions: ODPI-C Client Library Loading.

usage

Usage: rainfrog [OPTIONS] [COMMAND]

Commands:
  edit  Edit the config file (create it first if missing)
  help  Print this message or the help of the given subcommand(s)

Options:
  -M, --mouse <MOUSE_MODE>       Whether to enable mouse event support. If enabled, your terminal's
                                 default mouse event handling will not work. [possible values: true,
                                 false]
  -u, --url <URL>                Full connection URL for the database, e.g.
                                 postgres://username:password@localhost:5432/dbname
      --username <USERNAME>      Username for database connection
      --password <PASSWORD>      Password for database connection
  -R, --reenter-password         Reenter the password for a saved database connection
      --host <HOST>              Host for database connection (ex. localhost)
      --port <PORT>              Port for database connection (ex. 5432)
      --database <DATABASE>      Name of database for connection (ex. postgres)
      --driver <DRIVER>          Driver for database connection (ex. postgres)
      --enable-cleartext-plugin  Enable MySQL cleartext plugin
      --ssl-required             Require an SSL/TLS connection (supported by PostgreSQL, MySQL, and
                                 Oracle)
  -h, --help                     Print help
  -V, --version                  Print version

with connection options

if any options are not provided, you will be prompted to input them. if you do not provide an i

readme truncated β€” read the full docs on github

Frequently asked questions

Is rainfrog free to use?

rainfrog is open source under the MIT licence. There is no licence fee and no seat count β€” you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does rainfrog do?

🐸 a database tool for the terminal

What is rainfrog written in?

rainfrog is primarily written in Rust. Its source is publicly available at https://github.com/achristmascarl/rainfrog, and it has 5,337 GitHub stars.