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
Installation

Installation

Download a release (recommended)

Pre-built downloads are published for each release on the Releases page.

DMG (easiest)

Download e-<version>-universal.dmg, open it, and drag e.app into Applications. It runs on both Apple Silicon and Intel Macs.

The app is ad-hoc signed, so on first launch macOS may say it's from an "unidentified developer" — right-click the app → Open to allow it.

Binary archive

For a CLI install, download the archive for your platform:

  • macOS — Apple Silicon (M1/M2/M3): e-aarch64-apple-darwin.tar.gz
  • macOS — Intel: e-x86_64-apple-darwin.tar.gz
  • Linux — x86_64: e-x86_64-unknown-linux-gnu.tar.gz
  • Linux — arm64: e-aarch64-unknown-linux-gnu.tar.gz
shasum -a 256 -c e-aarch64-apple-darwin.tar.gz.sha256   # optional
tar xzf e-aarch64-apple-darwin.tar.gz
mv e /usr/local/bin/e

On Linux you'll also need the runtime libraries listed under Linux build dependencies (Wayland/X11, Vulkan).

Once installed, e keeps itself up to date — see Updating.

Build from source

Requirements

  • Rust 1.87 or newer
  • A C toolchain (for tree-sitter grammars)
  • Optional: language servers on your PATH (see Languages & LSP)

Linux build dependencies

On Debian/Ubuntu, install the system libraries Floem (winit + Vulkan/wgpu), the native file dialog, the MySQL driver and the Secret Service client need:

sudo apt-get install \
  clang pkg-config libssl-dev libwayland-dev libxkbcommon-x11-dev \
  libvulkan-dev libxcb-shape0-dev libxcb-xfixes0-dev libdbus-1-dev

libdbus-1-dev is what lets e store database passwords in your desktop's keyring (GNOME Keyring, KWallet — anything implementing the Secret Service API) instead of in a file. If no such service is running at runtime, e keeps the secrets in ~/.config/e/databases.json instead, written 0600.

At runtime a working Vulkan driver is required (e.g. mesa-vulkan-drivers).

Build

git clone https://github.com/kwhorne/e
cd e
cargo build --release

The binary is produced at target/release/e.

Run

# Open a directory as a workspace
cargo run --release -- path/to/project

# Or open a single file
cargo run --release -- path/to/file.rs

macOS app bundle

To build and launch a proper .app bundle (so the window comes to the front):

./scripts/run.sh path/to/project

To produce a distributable .app bundle:

./scripts/bundle-macos.sh

Build a DMG installer

./scripts/bundle-dmg.sh             # host architecture
./scripts/bundle-dmg.sh --universal # universal (arm64 + x86_64)

This produces dist/e-<version>.dmg containing e.app and an Applications symlink — open it and drag the app into Applications.

If no Developer ID certificate is available the app is ad-hoc signed, so on first launch macOS shows an "unidentified developer" prompt; right-click the app → Open to allow it.

Signed & notarized builds

bundle-dmg.sh and bundle-macos.sh sign automatically when a Developer ID Application identity is in your keychain. With several, the one for team 52AT44QFCM (Knut Horne) is used, or set CODESIGN_TEAM, or name one with CODESIGN_IDENTITY. The DMG is then signed, notarized, and stapled.

Notarization needs credentials. Store them once in the keychain (the app-specific password never touches disk):

xcrun notarytool store-credentials "Knut Horne" \
  --apple-id you@example.com --team-id 52AT44QFCM --password <app-specific-password>

Then just build — it signs, notarizes with the Knut Horne profile (or NOTARY_PROFILE), and staples:

./scripts/bundle-dmg.sh --universal

Releases

scripts/release.sh builds the release DMG on the Mac that runs it, the same way, after CI has passed and the tag is pushed, and attaches it to the release; the release workflow builds the .tar.gz archives. It checks for the notarization credentials before it commits anything, and stops rather than attach a DMG Apple didn't notarize. (GETS AS's team, 7G383N3VY7, is not set up for notarization; Apple turns its submissions down.)

Language servers

e uses the Language Server Protocol for rich language features. Install the servers for the languages you use and make sure they are on your PATH:

Language Server Install
PHP Intelephense npm i -g intelephense
PHP / Blade (Laravel) laravel/lsp composer global require laravel/lsp
Rust rust-analyzer rustup component add rust-analyzer
C / C++ clangd brew install llvm (bundled with LLVM)
TypeScript / JS typescript-language-server npm i -g typescript-language-server typescript
Go gopls go install golang.org/x/tools/gopls@latest
Python pyright npm i -g pyright

See Languages & LSP for details.