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

eterm

eterm is Elyra's terminal. The two know about each other in two ways, and nothing leaves the Mac: everything stays on 127.0.0.1 and the Unix socket.

A command that fails tells a bot

eterm can call a routine's webhook when a command finishes. Make a routine on webhook for the bot that should hear it (Dev Desk, say: "make a routine that runs when its webhook is called, and turn a failed deploy into an issue proposal"), and put its address in eterm's ~/.config/eterm/settings.toml:

[hooks]
on_command_finished = "http://127.0.0.1:47811/hooks/<token>"
min_seconds = 10       # only commands that ran this long
only_failures = true   # only commands that failed

The bot gets the command, its exit code, how long it ran, the directory, the tab and its last 40 lines, with tokens and keys already redacted by eterm, as outside text. What it does about it waits for your approval as always. See Routines.

Proposals that wait show in eterm

With [huskarl] enabled = true (the default), eterm asks the daemon over its socket every half minute how many proposals wait, as the same user. When some do:

  • the line eterm shows when you come back after a while starts with "2 proposals wait in Huskarl", and
  • cmd-j lists Huskarl first, as waiting.

A click opens Huskarl on the queue (huskarl://queue). Approving happens in Huskarl, where the whole card is, never in the terminal.

eterm only reads how many wait and what they are called; it never approves, and it gets nothing when the daemon is not running.