Elyra
Elyra The coding agent eTerm The terminal that knows where each command ends Starf An activity monitor for Apple silicon that never invents a number etrans An SSH and SFTP client for macOS Elyra VM Virtual machines for macOS, Linux and Windows on your Mac Litr A small, native web browser for macOS Notr A notebook for macOS e The native code editor Elyra Grove Native local development environment Askr The real server for Laravel & PHP Elyra Framework Rust + Svelte 5 framework for desktop apps Elyra Conductor Local project conductor Refr Local-first PDF workspace for macOS Elyra Workspace A desktop workspace for coding agents Elyra SQL Server MySQL-compatible SQL server in Rust Elyra Félagi Agents as teammates on one board Elyra SQL Client Native desktop SQL workbench Elyra SQL Anywhere Replication-ready SQL engine Elyra Sjá SEO & GEO workspace for macOS Elyra DataGrid Server-driven data grid for Laravel
Release notes
Changelog
Elyra

Connections

Connections are managed in the left panel. Each profile is stored locally; its password is kept in the OS keychain and never written to disk in cleartext.

Creating a connection

Click ➕ and complete the dialog:

  • Name — a friendly label shown in the navigator and status bar.
  • Engine — ElyraSQL Server (the default), MySQL, MariaDB, ClickHouse, or a local SQLite file. For SQLite, just point at a .sqlite / .db file (see below); the other server fields are hidden.
  • Host / Port — defaults to 127.0.0.1:3307.
  • User / Password — the password is saved to the keychain on connect.
  • Default database — optional database to select on connect.
  • Environment — Dev, Staging or Prod. Sets the accent colour and, for production, extra safety rails.
  • Read-only — the connection refuses any write or DDL statement.
  • Require TLS — enforce an encrypted connection (otherwise TLS is used opportunistically when the server offers it).

Test verifies connectivity and reports clear diagnostics (authentication, network, unknown database, TLS). Connect opens and saves the profile.

Environments & safety rails

The active environment is shown in the toolbar and status bar:

  • Prod draws a red frame around the window.
  • On production connections, write/DDL statements require an explicit confirmation before running. The confirmation counts what the statement would touch first — Deletes 1,204 rows from orders — and shows a few of those rows. See What a write will touch.
  • Read-only connections block writes entirely, regardless of edition.

The client never widens server permissions

These rails only ever narrow what you can do. The server's own privileges always apply on top.

What a write will touch

Before the production confirmation opens, the client counts the rows each write in the editor would affect, without running it:

Statement What is shown
UPDATE t … WHERE … Updates N rows in t, and the first five of them
DELETE FROM t WHERE … Deletes N rows from t, and the first five
UPDATE / DELETE with no WHERE The same, in red: every row in the table
TRUNCATE t, DROP TABLE t How many rows go with it

The count is a SELECT COUNT(*) built from the statement's own table and WHERE, and a literal LIMIT caps it. It is a snapshot: rows can change between counting and running, and the dialog says so. It stops after five seconds (or the connection's own timeout, if shorter) rather than hold the dialog up — a count that slow is itself a warning about the write.

Some statements are not given a number, and the dialog says why rather than guess: a multi-table UPDATE … JOIN or DELETE a FROM a JOIN b, where counting the join would not give the number of rows changed, and anything other than the four kinds above.

ClickHouse

Choose Engine → ClickHouse. The port fills in as 8123, or 8443 when you tick Require TLS — ClickHouse Cloud only exposes the second, so the two move together. The default user is default.

The connection goes over ClickHouse's HTTP interface, not its MySQL-compatibility port. That is deliberate: the MySQL shim reports every column as a string, is absent on ClickHouse Cloud, and gives no way to cancel a running query. Over HTTP you get real ClickHouse types in the grid, a working Stop, and the connection's Statement timeout enforced by the server rather than by the client.

What works

Browsing databases, tables and views; running any SQL you write, including DDL and INSERT; the data grid; export; charts; column profiles; the AI assistant, which knows the ClickHouse dialect.

What is turned off, and why

ClickHouse is columnar and has neither row-addressable updates nor transactions. ALTER TABLE … UPDATE/DELETE is an asynchronous rewrite of data parts: it returns before the change is visible, matches rows by a predicate rather than a key, and cannot be rolled back. That is not what the buttons below mean, so rather than generate SQL that does something else, they are unavailable on a ClickHouse connection:

  • Editing rows in the data grid
  • The table designer
  • Structure and data synchronisation
  • Data generation

Anything you write yourself still runs. What is refused is the client generating mutation SQL on your behalf under a name that promises different semantics.

ClickHouse also has no foreign keys, so the ER diagram and FK navigation have nothing to show.

SQLite files

Choose Engine → SQLite file and enter the full path to a local database file. SQLite connections:

  • Browse, query, sort, filter, edit and export just like a server connection.
  • Are always local, so they work on the Free edition (editing still needs Pro, like any connection).
  • Don't expose ElyraSQL-only tools (server status, process list, user administration, backup) — those return a clear "ElyraSQL only" message.

Local vs remote

  • Local/loopback hosts (127.0.0.1, localhost, …) are available on the Free edition.
  • Remote hosts require Pro or Premium — see Editions.

Managing connections

  • Select a connection to connect and load its databases.
  • Hover a connection and click ✕ to remove it (also deletes its keychain secret).
  • Switch quickly with the command palette (⌘/Ctrl + K → “Switch to …”).

Right-click a connection

Right-clicking a connection opens a context menu: open/close, edit, duplicate, delete, new query, new database, a colour tag (shown on the connection's dot), and refresh.

Right-clicking the database row gives database actions: new query, find, refresh, copy name, dump schema, new/drop database, and backup.