v0.9.52 · stable
Issue 01 · The Terminal Native

A coding agent
that lives where
you actually work .

Elyra is a self-extensible AI coding agent for the terminal — unified across 30+ models, scriptable from the ground up, and yours to shape. No editor lock-in. No subscription. No telemetry.

Install in one command
$ npm i -g @elyracode/coding-agent

Prefer a window? Elyra Workspace runs this agent in a thread for each task, beside Claude Code, Codex and Pi, on macOS with Apple silicon.

Tokens
−30%
Providers
30+
Price
Free
~/projects/elyra-web
❯ elyra "refactor auth flow to use policies"
→ planning · 3 files · 2 tools
✓ read app/Http/Controllers/Auth/LoginController.php
✓ edit app/Policies/UserPolicy.php
⟳ test php artisan test --filter=Auth
PASS Tests: 24 passed, 0 failed
$ npm i -g @elyracode/coding-agent
Fig. 01 — Live session 00:00:04
— 01
−30%
Average token reduction via smart routing & context compaction.
— 02
30+
Model providers unified behind one streaming API.
— 03
00.00
Telemetry events sent. Your sessions never leave your machine.
— 04
Free
No subscription. No paid tier. You bring the keys.
Elyra Desktop

Elyra Desktop is not being continued.

There will be no new versions of it. Use Elyra Workspace instead: a native app where you run Elyra, and Claude Code, Codex, Pi and other agents beside it, in a thread for each task, with Git, a browser, a terminal and your files in the same window.

Workspace runs the terminal edition of Elyra, so install that once with npm i -g @elyracode/coding-agent; it reads the same ~/.elyra/agent/ directory, so your settings and credentials carry over, and the sessions you had in Desktop stay there, to continue in the terminal edition. Workspace is for macOS on Apple silicon; on Linux, use the terminal edition. The terminal edition goes on as before.

Smart Model Routing

Save up to 30%
on every project

Elyra auto-selects cheap, fast models for simple tasks — file reads, small edits, lookups — and reserves powerful frontier models for the work that actually needs them.

  • Token-aware routing per turn, not per session
  • Pinned when Anthropic is configured: Claude Haiku 5.5 for the fast tier, Opus 5.5 for the powerful one; without it, cost-based ranking
  • Cost tracking across all 30+ providers
  • Context compaction keeps long sessions cheap
  • Override anytime with /model or Ctrl+P
Learn how routing works
routing.log
turn 1  · read package.json
  → claude-haiku     ($0.0003)

turn 2  · grep for usages
  → gpt-4o-mini      ($0.0008)

turn 3  · refactor auth flow
  → claude-sonnet    ($0.041)

turn 4  · summarize changes
  → claude-haiku     ($0.0004)

──────────────────────────────────
session total      $0.042
vs. all-sonnet     $0.061
saved             31%
S.02 — Position

Most agents pick a side.
Elyra picks yours.

One vendor, one editor, one workflow — most tools decide for you. Elyra is built around the opposite assumption: that the person at the keyboard knows best, and the agent should adapt.

01

Independent & private

No accounts. No telemetry. No paid tier. Your keys, your data, your machine.

02

Zero vendor lock-in

OpenAI, Anthropic, Google, Mistral, Bedrock, local models — one unified streaming API.

03

Built to be extended

Tools, skills, prompt templates, themes, providers. Drop-in extensions in a single file.

Features

Everything in one binary

A complete agent runtime — tools, sessions, memory, UI — installed with a single npm command.

30+ LLM Providers

Unified streaming API with cost tracking across OpenAI, Anthropic, Google, Mistral, Bedrock and more.

Built-in Tools

Read, write, edit, bash, grep, find. Everything an agent needs, with safety rails.

Session Management

Branching sessions, context compaction, HTML export, full audit trail. Since 0.9.41 a session also keeps its prompt cache warm while you think: Anthropic's cache expires after five minutes, and the pause to read a diff is usually longer than that, so a tiny ping four minutes in keeps the next turn a cache read rather than a re-send of the whole conversation. Two pings, then it stops, because past a quarter of an hour you are doing something else. And a standing instruction you add mid-conversation with /system stays in the session, survives compaction, and is marked as coming from you rather than from a tool.

Extension System

Custom tools, skills, prompt templates, themes and hooks — discovered automatically.

Opening a repo is safe

A cloned repository can no longer make Elyra run code just by being opened. Project packages, project extensions, MCP server definitions and the settings that change how commands run — shellPath, shellCommandPrefix, npmCommand, autoExtensions and autoSkills — take effect only once you trust the directory, and Elyra lists exactly what would run before it asks. AGENTS.md, skills, prompt templates, themes and every other setting work as before, trusted or not. Trust this folder, its parent, or this session only; /trust and elyra trust change your mind later. Print, JSON, RPC and MCP modes never prompt, so in a script an untrusted project simply runs without its gated configuration unless you pass --trust-project.

MCP, in both directions

Elyra uses the MCP servers you already configured for Claude Code, Cursor or VS Code, through two stable tools, mcp_search and mcp_call, instead of loading every server's schemas into the prompt; with no servers it adds nothing and costs nothing, and it comes with the npm install (the standalone binary builds run elyra install npm:@elyracode/mcp once). An app that starts Elyra can hand it servers for that one process in the ELYRA_MCP_SERVERS environment variable, in the .mcp.json format (Elyra Workspace passes its agent gateway this way), and it is read in every project, trusted or not, since whoever sets it already controls the process. The other way, elyra --mode mcp serves Elyra to Claude Desktop, Cursor and other hosts: elyra_task runs the agent read-only unless you say edit, elyra_review reviews your uncommitted changes with a model from another vendor, and elyra_decisions lists the recorded architecture decisions.

Rich Terminal UI

Differential rendering, markdown, syntax highlighting, image and editor support.

Web UI Components

Lit components for embedding chat, artifacts and model pickers in your app.

Smart Model Routing

Auto-selects cheap models for simple tasks, powerful ones for complex work.

Failover & Cross-Review

If a provider is down or rate-limited, turns auto-retry on an equivalent model from another vendor. /review --cross gets a second opinion from a different vendor entirely.

Measured routing

Elyra records per-model outcomes — turn success, edit failures, retries, failovers, latency, cost — to a local ledger and demotes demonstrably unreliable models in failover ranking. Since 0.9.37 the ledger also recommends: /routing-stats ends with one concrete suggestion per tier — switch a pinned model when a measured alternative is meaningfully better, which means a higher success rate or equal success at under 60% of the cost per turn. And every commit the agent makes carries an Elyra-Cost: trailer — spend since the previous commit, the model, the turns — so a team reads AI cost per change in git log (gitCostTrailer: false to stop). Since 0.9.38 routing picks the thinking level per turn as well as the model; your session level is a ceiling it only ever lowers. Only ids, counters and timings; never prompts or code, nothing leaves disk. Inspect with elyra doctor routing.

Codebase Memory

Persists project knowledge across sessions — no re-explaining your stack.

Stack Profiles

TALL, VILT, RILT and more. Auto-detected. Drop-in expert context per stack.

Project Setup

/init detects your stack, creates AGENTS.md, blueprints and snippets directories, and suggests extensions.

Reusable Snippets

/snippet sends saved instructions from .elyra/snippets/ — release flows, review checklists, canned prompts.

Multi-Agent Swarm

/swarm build, review and refactor pipelines chain focused agent stages with visual progress.

Ecosystem

An ecosystem that grows with you

Install only what you need. Every package is opt-in and works standalone.

Core libraries

@elyracode/coding-agent

The Elyra CLI — TUI, sessions, project setup (/init), memory, snippets, tools, and SDK

Read docs for @elyracode/coding-agent
@elyracode/agent-core

General-purpose agent runtime — transport abstraction, state management, attachments

Read docs for @elyracode/agent-core
@elyracode/ai

Unified LLM API — automatic model discovery and provider configuration

Read docs for @elyracode/ai
@elyracode/tui

Terminal UI library with differential rendering for text-based applications

Read docs for @elyracode/tui
@elyracode/web-ui

Reusable web components for AI chat interfaces powered by @elyracode/ai

Read docs for @elyracode/web-ui

Extensions

@elyracode/anna

Anna.js — Markdown presentations with terminal animations, code playgrounds and Mermaid

Read docs for @elyracode/anna
@elyracode/subagents

Delegate to focused child agents — scout, reviewer, planner, worker, oracle

Read docs for @elyracode/subagents
@elyracode/swarm

Multi-agent pipelines — /swarm build, review and refactor with visual progress

Read docs for @elyracode/swarm
@elyracode/doctor

Health checks — security, deps, code quality

Read docs for @elyracode/doctor
@elyracode/test-gen

Test generation — Pest for Laravel, Vitest for TypeScript

Read docs for @elyracode/test-gen
@elyracode/perf-tools

Performance analysis — N+1 queries, missing indexes, eager loading

Read docs for @elyracode/perf-tools
@elyracode/design-tools

Browser preview, screenshots, Tailwind consistency

Read docs for @elyracode/design-tools
@elyracode/design-lookup

Extract design systems from any website — colors, typography, spacing, components

Read docs for @elyracode/design-lookup
@elyracode/browser-tools
New

Playwright in the agent's hands — navigate, click, fill, verify behaviour, run specs

Read docs for @elyracode/browser-tools
@elyracode/flux-ui

Flux UI tools — live component index, page generator

Read docs for @elyracode/flux-ui
@elyracode/db-tools

Query MySQL, ClickHouse and SQLite with schema awareness

Read docs for @elyracode/db-tools
@elyracode/http-tools

API testing, OpenAPI parsing, live docs fetch

Read docs for @elyracode/http-tools
@elyracode/git-intel

Git intelligence — session briefings, commit messages, PR descriptions

Read docs for @elyracode/git-intel
@elyracode/docker

Docker — container exec, log tailing, compose operations, .env sync

Read docs for @elyracode/docker
@elyracode/herd

Laravel Herd — environment detection, services, error logs, .env sync

Read docs for @elyracode/herd
@elyracode/laravel-starters

Fetch official Laravel 13.x starter kits

Read docs for @elyracode/laravel-starters
@elyracode/i18n-tools

Localization — find hardcoded strings, missing translations across locales

Read docs for @elyracode/i18n-tools
@elyracode/lsp-typescript

TypeScript LSP — go-to-definition, find-references, diagnostics, hover

Read docs for @elyracode/lsp-typescript
@elyracode/lsp-php

PHP/Laravel LSP — go-to-definition, find-references, diagnostics, hover

Read docs for @elyracode/lsp-php
@elyracode/lsp-rust

Rust LSP (rust-analyzer) — go-to-definition, find-references, diagnostics, hover

Read docs for @elyracode/lsp-rust
@elyracode/grove

Grove integration — daemon state, runtimes, services, sites, logs and .env sync checks

Read docs for @elyracode/grove
@elyracode/seo

SEO & LLM optimization — audit, llms.txt, schema.org, meta tags

Read docs for @elyracode/seo
@elyracode/workflows

Code-orchestrated pipelines — prompt, run, if, parallel steps with template interpolation

Read docs for @elyracode/workflows
@elyracode/laravel

Deep Laravel project understanding — models, relationships, routes, architecture analysis

Read docs for @elyracode/laravel
@elyracode/btw

Side conversations — /btw, /btw:inject, /btw:summarize, /btw:thread for parallel questions

Read docs for @elyracode/btw
@elyracode/youtrack

YouTrack — issue CRUD, comments, tags, links, projects, knowledge base, time tracking

Read docs for @elyracode/youtrack
@elyracode/felagi

Félagi — issues, comments, time and the stopwatch, knowledge base, projects, agent runs

Read docs for @elyracode/felagi
@elyracode/jev-tools
New

Jev — calibrated yes/no, choice and score judgements as probabilities, not prose; an opt-in gate that asks whether a shell command is destructive

Read docs for @elyracode/jev-tools
@elyracode/semantic-index

Local semantic code search — embed your codebase and find code by meaning, not keywords

Read docs for @elyracode/semantic-index

Stack profiles

@elyracode/stack-tall

TALL — Tailwind, Alpine, Laravel, Livewire 4, Flux UI

Read docs for @elyracode/stack-tall
@elyracode/stack-vilt

VILT — Vue 3, Inertia, Laravel, Tailwind

Read docs for @elyracode/stack-vilt
@elyracode/stack-rilt

RILT — React 19, Inertia 2, Laravel, shadcn/ui

Read docs for @elyracode/stack-rilt
@elyracode/stack-silt

SILT — Svelte 5, Inertia, Laravel, Tailwind

Read docs for @elyracode/stack-silt
@elyracode/stack-primevue

PrimeVue 4 — 80+ components for Vue 3

Read docs for @elyracode/stack-primevue
@elyracode/stack-filament

Filament v5 — admin panels, resources, multi-tenancy

Read docs for @elyracode/stack-filament
@elyracode/stack-laravel-ai

Laravel AI SDK — agents, tools, embeddings, vector stores

Read docs for @elyracode/stack-laravel-ai
@elyracode/stack-elyra-framework

Elyra Framework — Rust + Svelte 5 desktop apps: container, commands, ORM, facades

Read docs for @elyracode/stack-elyra-framework

Community registry

Discover extensions, stack profiles, themes and skills published by the community.

Learn

Learn it by building something

A reference tells you what a command does. A course tells you when you would reach for it. These build one real product from a vague idea to something shipped, and introduce each feature exactly where it earns its keep.

Quickstart

Up and running in minutes

01
Install
One npm command, zero dependencies.
02
Set an API key
Bring your own provider keys.
03
Start coding
Run `elyra` in any project.
04
Extend
Drop in tools, skills and themes.
~/my-project
# 1. Install
$ npm install -g @elyracode/coding-agent

# 2. Configure a provider
$ export OPENAI_API_KEY=sk-...
$ export ANTHROPIC_API_KEY=sk-ant-...

# 3. Run it in your project
$ cd my-project && elyra

# 4. Optional: add stack profile
$ npm install -g @elyracode/stack-tall

Comparison

Why developers choose Elyra

Most agents are a cloud product with a chat box. Elyra is a tool you own — and the architecture shows it.

Where it runs
Your code, your machine.
Typical agent
Cloud-hosted service. Code is uploaded to vendor servers for processing.
Elyra
Local CLI. Code never leaves your machine, except to the LLM provider you choose.
LLM providers
Who you can use.
Typical agent
Locked to one or two models from a single vendor.
Elyra
30+ providers — Anthropic, OpenAI, Google, xAI, Mistral, Groq, DeepSeek, and more. Switch mid-session.
Cost model
What you actually pay.
Typical agent
Subscription, often with usage caps and unpredictable overage.
Elyra
Bring your own API key. Pay providers directly. A 30-minute session ran $0.10–0.50 on the Sonnet 5 default; since 0.9.42 the default is Opus 5.5, which is twice the input and output price, so budget up to double on the turns routing sends to it — less on a cache-heavy session, and defaultModel or smartRoutingModels.powerful pins Sonnet 5 back.
Context strategy
How sessions stay efficient.
Typical agent
Re-reads files every turn. Burns output tokens on tool results.
Elyra
Smart compaction, context pinning, 60–80% cache hits, model routing for cheap subtasks.
Extensibility
Shape it to your stack.
Typical agent
Plugin marketplace controlled by the vendor.
Elyra
Drop-in TypeScript extensions. Stack profiles, tools, skills, themes, providers — all installable as npm packages.
Session control
Own your history.
Typical agent
Linear chat thread, stored server-side.
Elyra
Resume, fork, branch, and export sessions locally. Full session tree navigation.
Privacy
What leaves the machine.
Typical agent
Account required. Telemetry on by default. Training opt-outs vary.
Elyra
No account. No telemetry. No paid tier. Your keys, your data.
Embeddable
Beyond the terminal.
Typical agent
Closed app, not designed to be embedded elsewhere.
Elyra
Public TypeScript SDK. Embed the agent runtime in your own tools and pipelines.
Colophon — Get started

Quiet tools
for serious
software work.

Install once. Bring your own keys. Keep your sessions on your machine. Shape Elyra to fit how you actually build.

Elyra · Issue 01 · v0.9.52 Built in Norway · MMXXVI