Elyra
Elyra The coding agent eTerm The terminal that knows where each command ends Huskarl AI colleagues on your own Mac 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
Configuration

Configuration

All settings live in a single global JSON file:

~/.config/e/config.json

Press ⌘, for a graphical settings page covering the common options. It's a two-pane dialog: pick a category (Appearance, Editor, On Save, Panels, Laravel, Agents) in the sidebar, or type in the search box to filter settings across every category. Changes are saved automatically; the Open config.json link in the footer jumps to the raw file (with advanced sections like agents, snippets and keybindings), which is created on first use.

Settings reference

{
  "theme": "dark",         // dark, light, tokyo-night, darcula, material, nord, palenight
  "dark": true,            // kept in step with the theme for older versions
  "font_size": 14,
  "font_family": "JetBrains Mono", // the code font; "" = the system monospace; see Editing → Fonts         // editor font size (8–40)
  "tab_width": 4,          // spaces per indent level (1–16)
  "format_on_save": true,  // format on save (Pint for PHP when the project has it, else the language server)
  "trim_on_save": true,    // trim trailing whitespace + ensure final newline
  "autosave": true,        // save dirty buffers after a short idle period
  "indent_guides": true,   // show indentation guide lines
  "auto_close": true,      // auto-close brackets and quotes
  "inlay_hints": true,     // show LSP inlay hints (types, parameter names)
  "sticky_scroll": true,   // pin enclosing scope lines at the top while scrolling
  "ai_completion": false,  // inline AI "ghost text" via a local Ollama code model
  "cascade": false,        // Elyra Cascade: Elyra as a chat panel instead of the terminal; see Agents
  "cascade_model": "",     // provider/model-id Cascade starts Elyra on ("" = Elyra's default)
  "cascade_thinking": "",  // thinking level for that model ("" = Elyra's default)
  "cascade_mode": "code",  // "code" (tools on) or "ask" (answer and plan only)
  "laravel_lsp": true,     // run the official laravel/lsp alongside intelephense
  "xdebug": false,         // enable Xdebug step-debugging via Grove (grove debug on)
  "sidebar_side": "left",  // explorer/Git panel side: "left" or "right"
  "agent_side": "right",   // agent panel side: "right" or "left"
  "keybindings": { "cmd+k": "delete-line" }, // override or add bindings
  "agents": { /* see below */ }
}
Key Type Default Description
theme string "dark" The colour theme: dark, light, tokyo-night, darcula, material, nord or palenight. Pick one in Settings → Appearance; see Themes.
dark bool true Whether the theme is dark; written alongside theme, and read when theme is absent (older configs).
font_size int 14 Editor font size (clamped 8–40)
font_family string "JetBrains Mono" The code font for the editor, the terminal and code in panels. "" means the system monospace (Menlo on macOS). Pick one in Settings → Editor → Font; see Editing → Fonts.
tab_width int 4 Indent width (clamped 1–16)
format_on_save bool true Format the document on save — with the project's Pint for PHP when it ships one, else the language server
trim_on_save bool true Trim trailing whitespace on save
autosave bool true Idle auto-save
indent_guides bool true Indentation guides
auto_close bool true Auto-close brackets/quotes
inlay_hints bool true Show LSP inlay hints
sticky_scroll bool true Pin enclosing scope at the top
ai_completion bool false Inline AI completion (ghost text) via a local Ollama code model; Tab accepts. Model via E_COMPLETION_MODEL (default qwen2.5-coder). Requires a running Ollama.
laravel_lsp bool true Run the official laravel/lsp alongside Intelephense in Laravel projects (and give Blade a language server). Off falls back to e's built-in Laravel intelligence. Restart to apply. See Languages & LSP.
cascade bool false Elyra Cascade: render Elyra as a chat panel (session tab, model picker, Code/Ask, streaming markdown, tool cards) instead of the terminal. Other agents always use the terminal. The older native_agent key is still read. See AI Agents.
cascade_model string "" provider/model-id Cascade starts Elyra on, as picked from the model chip; empty for Elyra's default.
cascade_thinking string "" Thinking level (off … xhigh) Cascade starts Elyra on; empty for Elyra's default.
cascade_mode string "code" code (tools on) or ask (answer and plan, change nothing).
xdebug bool false Toggling this runs grove debug on/off to load Xdebug for step-debugging (see Debugging)
sidebar_side string "left" Side of the explorer/Git sidebar ("left" or "right")
agent_side string "right" Side of the agent panel ("right" or "left")
agents object built-ins AI agent configuration

API keys for Anthropic, OpenAI, Gemini and Grok are not in this file: they are entered in Settings → Agents and kept in the macOS Keychain (elsewhere ~/.config/e/secrets.json, mode 0600). See AI Agents.

Panel layout (sidebar_side, agent_side) is read at startup — restart e after changing it. By default the explorer/Git sidebar is on the left and the agent panel on the right; set them to swap sides.

EditorConfig

If a project has an .editorconfig, e honours it per file, layered over the global settings above:

  • indent_size / tab_width → the buffer's tab width.
  • trim_trailing_whitespace → overrides trim_on_save for matching files.
  • insert_final_newline → ensures a single trailing newline on save.

The usual resolution rules apply: files are read from the file's directory upward, stopping at root = true, and a nearer file (or a later matching section) wins. Globs support *, **, ? and {a,b}.

Keybindings

Every action is a named command; rebind any of them in the keybindings section. See Keybindings for the syntax and the full command list.

Themes

e ships seven themes — its own Dark and Light, Tokyo Night, Darcula, Material (Oceanic), Nord and Palenight — each a full palette: the UI chrome, the editor (background, gutter, cursor, selection, current line), the syntax colours, and the error/warning/success colours used across panels. Pick one from the cards in Settings → Appearance → Theme; the choice is saved to config.json as theme and the whole window re-themes at once. F8 switches between the dark theme in use and Light, and back.

Zoom & word wrap

  • ⌘= / ⌘- change the editor font size for the session; ⌘0 resets to your configured font_size.
  • ⌥Z toggles soft word wrap.

Agents

See AI Agents for the agents section (default agent and the list of configurable agents).

Where things are stored

Path Contents
~/.config/e/config.json Global settings
~/.config/e/sessions/ Per-workspace session state (open files, tabs, split)

Sessions are restored automatically when you reopen a workspace.