|
1 | | -# sqlit |
| 1 | +<p align="center"> |
| 2 | + <img src="assets/favorites/logo.png" alt="sqlit logo" width="200"> |
| 3 | +</p> |
2 | 4 |
|
3 | | -**The lazygit of SQL databases.** Connect to Postgres, MySQL, SQL Server, SQLite, ClickHouse, FirebirdSQL, Supabase, Turso, and more from your terminal in seconds. |
| 5 | +<h1 align="center">sqlit</h1> |
4 | 6 |
|
5 | | -A lightweight TUI for people who just want to run some queries fast. |
| 7 | +<p align="center"> |
| 8 | + <strong>The lazygit of SQL databases.</strong><br> |
| 9 | + Connect and query your database from your terminal in seconds. |
| 10 | +</p> |
6 | 11 |
|
7 | | - |
8 | | - |
| 12 | +<p align="center"> |
| 13 | + <img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python"> |
| 14 | + <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License"> |
| 15 | +</p> |
9 | 16 |
|
10 | | -### Multi-database Support |
| 17 | +--- |
| 18 | + |
| 19 | +### *Connect* |
| 20 | +Sqlit supports all major DBMS's: SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Turso and Clickhouse. |
11 | 21 |  |
12 | 22 |
|
13 | | -### Query History |
| 23 | +### **Query** |
| 24 | +Syntax highlighting. History. VIM-like combos. |
14 | 25 |  |
15 | | -**Filter results** |
| 26 | +##### **Results** |
| 27 | + Inspect data, filter based on content, supports fuzzy search, loads millions of rows without any problem. |
16 | 28 |  |
17 | 29 |
|
18 | | -**Docker discovery** |
| 30 | +##### **Docker discovery** |
| 31 | +Finds running docker sql resources. Connect to your local test servers in seconds without any configuation. |
19 | 32 |  |
20 | 33 |
|
21 | 34 |
|
| 35 | + |
22 | 36 | ## Features |
23 | 37 |
|
24 | | -- **Connection manager UI** - Save connections, switch between databases without CLI args |
| 38 | +- **Connection manager** - Save connections, switch between databases without CLI args |
25 | 39 | - **Just run `sqlit`** - No CLI config needed, pick a connection and go |
26 | 40 | - **Multi-database out of the box** - SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Supabase, Turso - no adapters to install |
27 | | -- Connect directly to database docker container |
| 41 | +- **Docker** Connect directly to database docker container |
28 | 42 | - **SSH tunnels built-in** - Connect to remote databases securely with password or key auth |
| 43 | +- Secure credentials - Stores your credentials on your OS's credentials store |
29 | 44 | - **Vim-style editing** - Modal editing for terminal purists |
30 | 45 | - **Query history** - Automatically saves queries per connection, searchable and sortable |
31 | | -- Filter results |
32 | | -- Context-aware help (no need to memorize keybindings) |
33 | | -- Browse databases, tables, views, and stored procedures |
34 | | -- Indexes, Triggers and Sequences |
35 | | -- SQL autocomplete for tables, columns, and procedures |
36 | | -- Multiple auth methods (Windows, SQL Server, Entra ID) |
37 | | -- CLI mode for scripting and AI agents |
38 | | -- Themes (Tokyo Night, Nord, and more) |
39 | | -- Auto-detects and installs ODBC drivers (SQL Server) |
| 46 | +- **Filter results** - Find the data you're looking for without squinting your eyes in the results view |
| 47 | +- **Context-aware help** - No need to memorize keybindings |
| 48 | +- **Browse databases** - View tables, views, stored procedures, indexes, triggers and sequences |
| 49 | +- **Autocomplete** - tables, columns, and procedures |
| 50 | +- **CLI mode** - executing sql has never been this easy |
| 51 | +- Themes (Rose Pine, Tokyo Night, Nord, Gruvbox) |
| 52 | +- **Dependency wizard** - User friendly installation for required packages and drivers |
40 | 53 |
|
41 | 54 |
|
42 | 55 | ## Motivation |
43 | | -I usually do my work in the terminal, but I found myself either having to boot up massively bloated GUI's like SSMS or Vscode for the simple task of merely browsing my databases and doing some queries toward them. For the vast majority of my use cases, I never used any of the advanced features for inspection and debugging that SSMS and other feature-rich clients provide. |
44 | 56 |
|
45 | | -I had the unfortunate situation where doing queries became a pain-point due to the massive operation it is to open SSMS and it's lack of intuitive keyboard only navigation. |
| 57 | +Throughout my career, the undesputed truth was that SSMS was the only respectable way to access a database. It didn't matter that I wasn't a DBA, or that I didn't need complex performance graphs. I was expected to install a gigabyte-heavy behemoth that took ages to launch all for the mere grand purpose trying to navigate this jungle of features of running a few queries, update and view a couple of rows. |
46 | 58 |
|
47 | | -The problem got severely worse when I switched to Linux and had to rely on VS CODE's SQL extension to access my database. Something was not right. |
| 59 | +When I switched to Linux, I was suddenly unable to return to the devil I know, and I asked myself: _how do I access my data now?_ |
48 | 60 |
|
49 | | -I tried to use some existing TUI's for SQL, but they were not intuitive for me and I missed the immediate ease of use that other TUI's such as Lazygit provides. |
| 61 | +The popular answer was VS Code's SQL extension. But why should we developers launch a heavy Electron app designed for coding just to execute SQL? I looked for SQL TUIs, but the options were sparse. The ones I found lacked the user-friendliness and immediate "pick-up-and-go" nature of tools I loved, like `lazygit`, and I shortly returning to vscode sql extension. |
50 | 62 |
|
51 | | -sqlit is a lightweight database TUI that is easy to use and beautiful to look at, just connect and query. It's for you that just wants to run queries toward your database without launching applications that eats your ram and takes time to load up. Sqlit supports SQL Server, PostgreSQL, MySQL, SQLite, MariaDB, FirebirdSQL, Oracle, DuckDB, CockroachDB, ClickHouse, Supabase, and Turso, and is designed to make it easy and enjoyable to access your data, not painful. |
| 63 | +Something wasn't right. I asked myself, why is it that running SQL queries can't be enjoyable? So I created `sqlit`. |
52 | 64 |
|
| 65 | +`sqlit` is for the developer who just wants to query their database with a user friendly UI without their RAM being eaten alive. It is a lightweight, beautiful, and keyboard-driven TUI designed to make accessing your data enjoyable, fast and easy like it should be. |
53 | 66 |
|
54 | 67 | ## Installation |
55 | 68 |
|
@@ -174,7 +187,7 @@ Connections and settings are stored in `~/.sqlit/`. |
174 | 187 |
|
175 | 188 | Connection details are stored in `~/.sqlit/connections.json`, but passwords are stored in your OS keyring when available (macOS Keychain, Windows Credential Locker, Linux Secret Service). |
176 | 189 |
|
177 | | -If a keyring backend isn't available, `sqlit` will ask whether to store passwords as plaintext in `~/.sqlit/` (protected permissions). If you decline, you’ll be prompted when needed. |
| 190 | +If a keyring backend isn't available, `sqlit` will ask whether to store passwords as plaintext in `~/.sqlit/` (protected permissions). If you decline, you'll be prompted when needed. |
178 | 191 |
|
179 | 192 | ### How does sqlit compare to Harlequin, Lazysql, etc.? |
180 | 193 |
|
|
0 commit comments