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 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 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 via the language server on save
  "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
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.