Top Related Projects
Postgres CLI with autocompletion and syntax highlighting
Library for building powerful interactive command line applications in Python
A simple and lightweight SQL client desktop with cross database and platform support.
Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
Free universal database tool and SQL client
MySQL/MariaDB database management for macOS
Quick Overview
MyCLI is a command-line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting. It provides a user-friendly alternative to the default MySQL shell, offering enhanced features to improve productivity and ease of use when working with MySQL databases.
Pros
- Auto-completion for SQL keywords, table names, and column names
- Syntax highlighting for better readability of SQL queries
- Multi-line support for complex queries
- Configurable with a rich set of options and themes
Cons
- Limited to MySQL, MariaDB, and Percona databases
- May have a learning curve for users accustomed to the default MySQL shell
- Requires additional installation and setup compared to the built-in MySQL client
Code Examples
- Connecting to a database:
mycli -u username -p password -h localhost -P 3306 database_name
- Executing a query with syntax highlighting:
SELECT id, name, email
FROM users
WHERE status = 'active'
ORDER BY name;
- Using auto-completion:
SELECT * FROM us[TAB]
-- Auto-completes to:
SELECT * FROM users
Getting Started
- Install MyCLI using pip:
pip install mycli
- Connect to your MySQL database:
mycli -u your_username -p your_password -h localhost database_name
- Start typing SQL commands and enjoy auto-completion and syntax highlighting:
SHOW TABLES;
SELECT * FROM table_name LIMIT 10;
- Use
\qorCTRL+Dto exit MyCLI.
Competitor Comparisons
Postgres CLI with autocompletion and syntax highlighting
Pros of pgcli
- Supports PostgreSQL-specific features like psql meta-commands
- Offers more advanced auto-completion for PostgreSQL syntax
- Includes a multi-line mode for complex queries
Cons of pgcli
- Limited to PostgreSQL databases only
- May have a steeper learning curve for users familiar with MySQL
Code Comparison
pgcli:
def get_completions(self, document, complete_event):
word_before_cursor = document.get_word_before_cursor(WORD=True)
suggestions = self.completer.get_completions(
document, complete_event, self.pgspecial)
return suggestions
mycli:
def get_completions(self, document, complete_event):
word_before_cursor = document.get_word_before_cursor(WORD=True)
suggestions = self.completer.get_completions(
document, complete_event)
return suggestions
Both pgcli and mycli are command-line interfaces for database management, developed by the same organization (dbcli). While pgcli is specifically designed for PostgreSQL, mycli caters to MySQL, MariaDB, and Percona databases. They share similar core functionalities but differ in their database-specific features and optimizations.
The code comparison shows that pgcli includes an additional parameter self.pgspecial in its get_completions method, which likely handles PostgreSQL-specific completions. This reflects pgcli's focus on PostgreSQL-specific features and syntax.
Library for building powerful interactive command line applications in Python
Pros of python-prompt-toolkit
- More versatile and can be used for various command-line interfaces, not just MySQL
- Offers advanced features like syntax highlighting, auto-suggestion, and multi-line editing
- Provides a comprehensive toolkit for building rich, interactive command-line applications
Cons of python-prompt-toolkit
- Steeper learning curve due to its more general-purpose nature
- Requires more setup and configuration for specific use cases like MySQL interaction
Code Comparison
python-prompt-toolkit:
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
user_input = prompt('> ', history=FileHistory('history.txt'))
print(f'You entered: {user_input}')
mycli:
from mycli.main import MyCli
mycli = MyCli()
mycli.connect(database='mydb')
mycli.run_cli()
Summary
python-prompt-toolkit is a more general-purpose library for building command-line interfaces, offering advanced features and flexibility. It's suitable for various applications but requires more setup for specific use cases. mycli, on the other hand, is tailored specifically for MySQL interactions, providing a simpler setup but with less versatility for other applications.
A simple and lightweight SQL client desktop with cross database and platform support.
Error generating comparison
Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
Pros of Beekeeper Studio
- Graphical user interface (GUI) for easier database management
- Supports multiple database types (MySQL, PostgreSQL, SQLite, etc.)
- Cross-platform compatibility (Windows, macOS, Linux)
Cons of Beekeeper Studio
- Larger resource footprint due to GUI and cross-platform nature
- May have a steeper learning curve for command-line enthusiasts
- Less suitable for quick, terminal-based database interactions
Code Comparison
Beekeeper Studio (JavaScript):
const connection = new Connection({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'password',
database: 'mydb'
});
MyCLI (Python):
mycli -h localhost -u root -p password mydb
Summary
Beekeeper Studio offers a user-friendly GUI for managing multiple database types across different platforms, making it suitable for users who prefer visual interfaces. However, it may consume more system resources and be less efficient for quick command-line operations.
MyCLI, on the other hand, is a lightweight, command-line tool specifically designed for MySQL. It's ideal for users comfortable with terminal-based interactions and those seeking quick database access with minimal resource usage.
The choice between these tools depends on the user's preferences, workflow, and specific database management needs.
Free universal database tool and SQL client
Pros of DBeaver
- Supports multiple database systems, not limited to MySQL
- Offers a graphical user interface for easier navigation and visualization
- Provides advanced features like data modeling and ERD generation
Cons of DBeaver
- Heavier resource consumption due to its GUI nature
- Steeper learning curve for users accustomed to command-line interfaces
- May be overkill for simple database operations
Code Comparison
While a direct code comparison isn't particularly relevant due to the different nature of these tools (CLI vs GUI), we can compare how they handle basic connection setup:
MyCLI:
mycli -h localhost -u username -p password -D database_name
DBeaver (connection properties in XML):
<connection host="localhost" port="3306" server="" database="database_name" url="jdbc:mysql://localhost:3306/database_name" user="username" password="encoded_password" type="dev"/>
Both tools aim to simplify database interactions, but MyCLI focuses on providing an enhanced command-line experience specifically for MySQL, while DBeaver offers a comprehensive GUI-based solution for multiple database systems. The choice between them depends on user preferences, specific database needs, and the complexity of tasks to be performed.
MySQL/MariaDB database management for macOS
Pros of Sequel-Ace
- Graphical user interface for easier database management
- Supports multiple database connections simultaneously
- Offers visual query builder and schema designer
Cons of Sequel-Ace
- Limited to macOS platform
- Requires more system resources compared to CLI tools
- May have a steeper learning curve for command-line enthusiasts
Code Comparison
Sequel-Ace (SQL query execution):
SELECT * FROM users WHERE age > 18;
MyCLI (SQL query execution):
mysql> SELECT * FROM users WHERE age > 18;
Additional Notes
MyCLI is a command-line interface for MySQL, MariaDB, and Percona, offering features like auto-completion and syntax highlighting. It's lightweight, cross-platform, and ideal for users comfortable with terminal environments.
Sequel-Ace, on the other hand, is a full-featured MySQL/MariaDB database management tool with a graphical interface, making it more accessible for users who prefer visual interactions. It's the successor to Sequel Pro but is exclusive to macOS.
The choice between these tools depends on personal preference, workflow, and the specific requirements of the database management tasks at hand. MyCLI excels in quick, efficient command-line operations, while Sequel-Ace provides a more comprehensive visual approach to database management.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
mycli
A command line client for MySQL that can do auto-completion and syntax highlighting.
Homepage: http://mycli.net Documentation: http://mycli.net/docs

Postgres Equivalent: http://pgcli.com
Quick Start
If you already know how to install Python packages, then you can install it via pip:
You might need sudo on Linux.
pip install -U 'mycli[all]'
or
brew update && brew install mycli # Only on macOS
or
sudo apt-get install mycli # Only on Debian or Ubuntu
Usage
See
mycli --help
Features
mycli is written using prompt_toolkit.
- Auto-completion as you type for SQL keywords as well as tables, views and columns in the database.
- Syntax highlighting using Pygments.
- Smart-completion (enabled by default) will suggest context-sensitive completion.
SELECT * FROM <tab>will only show table names.SELECT * FROM users WHERE <tab>will only show column names.
- Support for multiline queries.
- Favorite queries with optional positional parameters. Save a query using
\fs alias queryand execute it with\f aliaswhenever you need. - Timing of sql statements and table rendering.
- Config file is automatically created at
~/.myclircat first launch. - Log every query and its results to a file (disabled by default).
- Pretty prints tabular data (with colors!)
- Support for SSL connections
- Shell-style trailing redirects with
$>,$>>and$|operators. - Some features are only exposed as key bindings
Contributions:
If you're interested in contributing to this project, first of all I would like to extend my heartfelt gratitude. I've written a small doc to describe how to get this running in a development setup.
https://github.com/dbcli/mycli/blob/main/CONTRIBUTING.md
Additional Install Instructions:
These are some alternative ways to install mycli that are not managed by our team but provided by OS package maintainers. These packages could be slightly out of date and take time to release the latest version.
Arch, Manjaro
You can install the mycli package available in the AUR:
yay -S mycli
Debian, Ubuntu
On Debian, Ubuntu distributions, you can easily install the mycli package using apt:
sudo apt-get install mycli
Fedora
Fedora has a package available for mycli, install it using dnf:
sudo dnf install mycli
Windows
Option 1: Native Windows
Install the less pager, for example by scoop install less.
Follow the instructions on this blogpost: http://web.archive.org/web/20221006045208/https://www.codewall.co.uk/installing-using-mycli-on-windows/
Mycli is not tested on Windows, but the libraries used in the app are Windows-compatible. This means it should work without any modifications, but isn't supported.
PRs to add native Windows testing to Mycli CI would be welcome!
Option 2: WSL
Everything should work as expected in WSL. This is a good option for using Mycli on Windows.
Thanks:
This project was funded through kickstarter. My 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 database.
Compatibility
Mycli is tested on macOS and Linux, and requires Python 3.10 or better.
Configuration and Usage
For more information on using and configuring mycli, check out our documentation.
Common topics include:
Top Related Projects
Postgres CLI with autocompletion and syntax highlighting
Library for building powerful interactive command line applications in Python
A simple and lightweight SQL client desktop with cross database and platform support.
Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows.
Free universal database tool and SQL client
MySQL/MariaDB database management for macOS
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot