12.0k GitHub stars and counting — dbcli/mycli is a Python project TopGit is tracking across repositories on the platform. Rich MySQL Terminal Client with AutoCompletion, Syntax Highlighting, and Dataframes
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
SELECT * FROM users WHERE tab will only show column names.
Fuzzy history search using fzf.
Output explorer using fzf or other tools.
Syntax highlighting using Pygments.
Multiline queries.
Favorite queries with positional or named parameters using Jinja. Save a query using
/fs alias <query>
and execute it with
/f alias --key=value
Timing of SQL statements and table rendering.
Many output formats for tabular results.
Shell-style trailing redirects with $>, $>> and $| operators.
Polars dataframe transforms and plots with .|, and Parquet saves with .>.
Querying LLMs with context derived from your schema using /llm.
Storing passwords in the system keyring.
Modern defaults such as UTF-8 connection type and SSL.
Integrations with: SSH, Kubernetes, Vault, and Boundary.
Mycli creates a config file ~/.myclirc on the first run; you can use the
options in that file to configure the above features, and more.
Some features are only exposed as key bindings.
Usage
See
mycli --help
Contributing
If you're interested in contributing to this project, first of all we would like
to extend our heartfelt gratitude. We've written a small doc to describe how to
get mycli running in a development setup.
If installed via Homebrew, shell completions may already be configured.
Otherwise, to configure shell completions for the current session, execute a
command like this:
eval "$(mycli --completions SHELL)"
replacing SHELL with bash, zsh, or fish, depending on your choice of
shell.
To permanently install shell completions, the above command may be added to your
~/.bashrc, ~/.zshrc, or ~/.config/fish/config.fish. To speed up login
time, the output of mycli --completions SHELL may be saved to a file and
loaded with source.
Alternative Install Methods
These are some alternative ways to install mycli that are not managed by our
team but provided by OS package maintainers.
NOTE: OS packages could be considerably out of date.
If present, the fzf package can be used for fuzzy history search, and as an
output "explorer" with the \x special command. pygmentize can be used for
syntax highlighting within the fuzzy history search. The less package is
also expected, but almost always already installed.
Arch, Manjaro
You can install the mycli package available in the AUR. fzf and
python-pygments are optional but recommended:
yay -S mycli fzf python-pygments
Debian, Ubuntu
On Debian and Ubuntu distributions, you can easily install the mycli package
using apt. The fzf and python3-pygments packages are optional but
recommended:
apt-get install mycli fzf python3-pygments
Fedora
Fedora has a package available for mycli; install it using dnf. The fzf and
python-pygments packages are optional but recommended:
dnf install mycli fzf python-pygments
Windows
Option 1: Native Windows
Install the less pager, for example by scoop install less.
Install the fzf fuzzy finder, for example by scoop install fzf.
Follow the instructions on this blog post: https://web.archive.org/web/20221006045208/https://www.codewall.co.uk/installing-using-mycli-on-windows/
The libraries used in mycli are Windows-compatible, but there are known
limitations according to the test suite. The basics work without any
modifications, but this configuration isn't supported software at this time.
PRs to address shortcomings on Windows would be welcome!
Option 2: WSL
Mycli is more compatible with WSL than with native Windows, though still
not 100% perfect. This is a good option for using mycli on Windows.
With WSL, you are probably using an Ubuntu distribution, in which case
recommended dependencies can be installed by
apt-get install fzf python3-pygments
and mycli can be installed by apt-get or by pip (recommended):
pip install --upgrade 'mycli[all]'
PRs to complete WSL support would be welcome!
Thanks
This project was funded through Kickstarter. Our thanks to the backers who supported the project.
A special thanks to Jonathan Slenders for
creating Python Prompt Toolkit,
which is quite literally the backbone library, that made this app possible.
Jonathan has also provided valuable feedback and support during the development
of this app.
Click is used for command line option parsing
and printing error messages.
Thanks to PyMysql for a pure Python adapter to MySQL databases.
Compatibility
Mycli is tested on macOS (full), Linux (full), Windows (partial), and WSL
(partial), and requires Python 3.11 or better.
To connect to MySQL versions earlier than 5.5, you may need to set the
following in ~/.myclirc:
[connection]
# character set for connections without --charset being set at the CLI
default_character_set = utf8
or use --charset=utf8 when invoking mycli.
Configuration and Usage
For more information on using and configuring mycli, check out our documentation.
Common topics include:
Configuring mycli
Using/Disabling the pager
Syntax colors
License
Mycli is Open Source Software provided under the BSD 3-Clause License.
The Mycli Docker image and git repository include a copy of the employees sample database
provided by Oracle under the Creative Commons Attribution-Share Alike 3.0 Unported License.
The most recent commit recorded on dbcli/mycli was 3 months ago, based on the GitHub push timestamp. The repository has 699 forks — one of the better signals of community interest.
How many stars does dbcli/mycli have?
dbcli/mycli has 12.0k GitHub stars — refresh the page for the live number, or check github.com/dbcli/mycli. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What else is in the Data space?
dbcli/mycli is tracked by TopGit under the Data category, alongside 10 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What language is dbcli/mycli written in?
dbcli/mycli is written primarily in Python. GitHub's language field is based on the largest share of bytes in the default branch.
What topics is dbcli/mycli associated with?
GitHub's repository topics for dbcli/mycli: "auto-completion", "data-science", "database", "mycli", "mysql", "polars", "python", "repl", "sql", "syntax-highlighting". TopGit's editorial category is Data.
Where do I read more about dbcli/mycli?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/dbcli/mycli is the definitive source.
Why is dbcli/mycli categorized under Data?
TopGit places dbcli/mycli in the Data category based on its GitHub topics and description (tagged: "auto-completion", "data-science", "database"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Curious whether mycli is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about mycli.