qub v0.1.0

There are great open-source SQL editors out there, but none of them ever really clicked for me. DataGrip was the one that gave me the feeling of productivity and control over my database workspace. But once my enterprise license got canceled, instead of picking a new one I decided to build myself an editor the way I always wanted it to be. So qub was built with an emphasis on SQL centricity, the basics done well, and a clean interface I enjoy looking at all day.

During development, to keep the interface consistent and easier to build, I created a Qt/QML component libraries (including fonts, icons, and theming), called Mahina, which I also open-sourced. If you're building desktop apps with Qt, it might save you from reimplementing the same primitives from scratch.

🤖

AI assistance was used to build this application, but all the code was human-reviewed.

Multi-connection Keep several database connections open in parallel, each in its own tab.
Session restore Save and restore workspaces — connections and open queries — between launches.
Saved queries Bookmark queries you run often and reopen them instantly from the sidebar.
Live share Stream query results to any browser via a shareable local link. Coming soon.

Connections

qub supports multiple simultaneous connections. Each connection lives in its own tab in the editor. You can switch freely between them while queries run in the background.

Creating a connection

  1. From the welcome screen, click New Connection.

  2. Choose a driver from the dropdown (PostgreSQL, MySQL, SQLite, ODBC, Oracle, Firebird).

  3. Fill in host, port, database name, username, and password.

  4. Click Test to verify the credentials, then Connect.

PostgreSQL: requires libpq to be installed on your system. On Fedora: sudo dnf install libpq. On Ubuntu: sudo apt install libpq5.

Supported drivers

DriverDatabaseSystem dependency
QPSQLPostgreSQLlibpq
QMYSQLMySQL / MariaDBlibmysqlclient or libmariadb
QSQLITESQLitenone (built-in)
QODBCAny ODBC sourceunixODBC
QOCIOracleOracle Instant Client
QIBASEFirebirdFirebird client

Switching connections

Once in the editor, the tab bar at the top shows all open connections. Click any tab to switch. The + button on the right opens the connection dialog without leaving the current workspace.

Leaving the workspace

Click the arrow in the top-left to return to the welcome screen. qub will ask whether to close the active connections or keep them open. Check "Always close the connection when leaving" to skip the dialog in future. This preference can be changed at any time in Settings.


Query editor

The editor occupies the upper half of the workspace. Write SQL directly — the editor uses a monospaced font and preserves your indentation.

Running queries

Click ▶ Run in the toolbar, or use the keyboard shortcut below. Only the selected text is executed if you have a selection; otherwise the full buffer runs.

ActionShortcut
Run queryCtrl + Enter
Stop running queryClick ■ Stop in the toolbar

Queries run asynchronously — the UI stays responsive while results load. Large result sets are paginated automatically.


Results

Query results appear in the lower half of the workspace in a scrollable table. Column headers are fixed while you scroll horizontally.

Exporting

Click ↓ CSV in the toolbar to export the current result set as a comma-separated file. A save dialog will appear to choose the destination.

Status bar

The bar at the very bottom of the editor shows the active connection name, the number of rows returned, and the query execution time in milliseconds.


History

Every query you run is automatically saved to the history. The HISTORY section in the left sidebar lists the most recent 50 entries.

Each entry shows a truncated version of the SQL, the connection name, and the execution time. Entries that resulted in an error are shown in red. Click any entry to load that SQL into the editor.

History is stored locally per session. It is not synced across machines.


Saved queries

Bookmark frequently-used queries so you can reopen them instantly without searching through history.

Saving a query

  1. Write the query in the editor.

  2. Click ★ Save in the toolbar.

  3. Give it a name and optionally a folder to keep things organised.

Reopening a saved query

The SAVED section in the left sidebar lists all saved queries. Click any entry to load it into the editor. The folder name (or connection name) is shown as the subtitle.


Sessions

A session captures the full state of a workspace — which connections are open and what queries are loaded in the editor — so you can restore it later.

Restoring a session

From the welcome screen, open the Last Sessions panel. Each entry shows the date and the number of tabs that were open. Click an entry to restore that workspace.

Sessions are saved automatically when you leave the workspace. The ten most recent sessions are kept.


Data sources

The Data Sources panel on the welcome screen lists all connections you have ever configured. From here you can open a connection directly or delete one you no longer need.

When you open qub and you already have saved connections, the Data Sources panel opens automatically. If this is your first time, the New Connection form opens instead.


Settings

Access settings from the Settings tab on the welcome screen.

SettingDescription
Dark theme Switch between light and dark mode. Also togglable from the welcome screen header.
Auto-close connection on leave When enabled, leaving the workspace always closes the active database connections without asking. When disabled, qub prompts you each time. You can also set this from the leave-workspace dialog by checking "Always close the connection when leaving".

Live share Coming soon

Live share lets you stream query results to any browser on your local network using a one-click shareable link. No installation required on the viewer's side — just open the URL.

Click ⬡ Share in the toolbar to generate a link. The results table updates in real time as you run new queries.


Proxy servers Coming soon

Proxy server support will allow you to route database connections through SSH tunnels or SOCKS proxies — useful for reaching databases inside private networks without exposing them directly.

Configuration will be available in the Proxy Servers panel on the Connections tab of the welcome screen.