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 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 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

AI Assistant

⌘/Ctrl + I opens the assistant beside your results — a Pro feature that writes, explains and optimises SQL against the database you have open.

It is docked rather than floating, because the point is to read an answer next to the data it is about.

What you need

Your own API key from one of three providers. Usage is billed to your account, so you see and control what it costs.

Provider Get a key Keys look like
Anthropic (Claude) console.anthropic.com sk-ant-…
OpenAI platform.openai.com sk-…
Google Gemini aistudio.google.com AIza…

Open Settings (⌘/Ctrl + ,) → AI Assistant, pick the provider and paste the key. It is stored in the OS keychain alongside your database passwords — never in a file, never in a log.

Each provider keeps its own key and its own model. A ✓ in the picker marks one that has a key stored, and switching back does not ask you to paste anything again.

Choosing a model

Fetch asks the provider which models your key can actually reach, so the list is never a stale copy baked into this build — and you can type a model name directly if you want one the list does not show.

Effort

The Effort setting appears for Anthropic, where it is a first-class request field. OpenAI accepts the same idea only on its reasoning models and rejects it elsewhere; Gemini expresses it as a token budget. Rather than guess a mapping that turns into an error on your own key, it is offered where it is defined.

What is sent, and what is not

This is the part worth reading before you start.

Sent with every question:

  • The engine and dialect (so the SQL it writes actually runs on your server).
  • The database and, if you opened the panel from a table, that table's name.
  • Table and column names for the open database — unless you turn Send table and column names off.

All of it goes to the provider you selected, and only to that one.

Never sent:

  • Row data. Not the grid, not a sample, not a result. A column called ssn tells the model that a column is called ssn; it does not tell it anyone's number.

The CONTEXT strip along the top of the panel shows the scope in force, so you can see it before you ask rather than trust a description of it. Turning the schema off leaves an assistant that still knows your dialect but will ask for names instead of guessing them.

On a very large schema the listing is capped to keep a single question from costing a surprising amount. When that happens the assistant is told the listing is incomplete, so it asks about a table it cannot see rather than reporting that it does not exist.

Modes

The chips under the transcript change what the assistant is asked to do:

Mode For
generate Write SQL from a description
explain Understand SQL you already have, including what is surprising about it
optimize Make a slow query faster — or say an index would help more, with the DDL
migrate Schema-change DDL in the order it must run, with the locking and irreversible steps called out
ask Anything else

Running what it writes

Every statement arrives in its own block with copy, insert and run.

  • insert opens it in a new query tab. Nothing runs.
  • run opens it and runs it — through exactly the same path as a statement you typed yourself. A write against a production connection still raises its confirmation; a read-only connection still refuses it.

The assistant never runs anything on its own. A block that modifies data is marked writes before you touch it. This is deliberate: an assistant that could execute what it wrote would be one prompt injection away from a DROP, and the schema it reads can be influenced by anyone who can create a table name.

Settings

Setting Default Notes
Provider Anthropic OpenAI and Google Gemini also supported; each keeps its own key and model
Model the provider's default Fetch lists what your key can reach
Effort high Anthropic only — more reasoning before answering
Send table and column names on See What is sent
Only propose statements that read off Independent of the connection's own read-only flag; either one applies
Max reply tokens 4096 Raise it if long answers are being cut off

Shortcuts

Shortcut Action
⌘/Ctrl + I Open or close the assistant
⌘/Ctrl + , Settings
⌘/Ctrl + Enter Send (in the assistant's input)

Plain Enter adds a newline — questions about SQL are routinely several lines of SQL.