Elyra – kodeagenten jeg endte opp med å bygge selv
Så tenkte jeg: hva om jeg bare lagde en agent som gjorde det jeg faktisk ville ha?
Det er der Elyra kom fra. Og nå som den har vokst seg såpass moden at jeg tør slippe den ut i verden, syntes jeg det var på sin plass å skrive litt om hva den er, hva den ikke er, og hvorfor jeg har brukt så mange kveldstimer på den.
Hva Elyra er, kort fortalt
Elyra er en AI-kodeagent som lever i terminalen. Du installerer den med npm, peker den mot et prosjekt, og så kan den lese, skrive og redigere kode på egen hånd – på samme måte som Claude Code eller andre agenter du kanskje har prøvd.
Forskjellen ligger i hvordan den er bygget. Elyra er selv-utvidbar, lever helt åpent under MIT-lisens, har ingen telemetri som ringer hjem, og lar deg velge mellom over tretti ulike språkmodell-leverandører uten å bytte verktøy.
Det er, kort sagt, en agent som er din – ikke en tjeneste du leier tilgang til.
Tretti leverandører, ingen innelåsing
Dette er kanskje det jeg er mest fornøyd med. Du kan kjøre Elyra mot Anthropic den ene dagen, OpenAI den neste, og en lokal modell på maskinen din den tredje. Bedrock, Vertex AI, Mistral, DeepSeek, Groq, OpenRouter, xAI, Cerebras, Together, Fireworks – lista er lang, og den fortsetter å vokse.
I praksis betyr det at du kan bruke billige modeller til enkle oppgaver og kraftige modeller til de tunge løftene, uten å reskrive konfigurasjonen din. Elyra har til og med en smart modell-ruter som tar dette valget for deg når du ikke gidder å tenke på det selv.
Du kan også logge inn med eksisterende abonnementer – Claude Pro, ChatGPT Plus, Copilot – med en enkel /login. Da slipper du å sjonglere API-nøkler i .env-filer.
Bygget for å bli endret
Elyra er det jeg liker å kalle self-extensible. Den har et skikkelig utvidelsessystem der du kan legge til:
Egne verktøy – funksjoner agenten kan kalle, skrevet av deg
Skills – domenespesifikk kunnskap og arbeidsflyt
Prompt-maler – så du slipper å skrive den samme intro-prompten hundre ganger
Temaer – fordi terminalfargene dine er hellige
Hooks – kjør egen logikk før, under eller etter agentens handlinger
Tanken er at du skal kunne forme agenten til å passe akkurat din arbeidsmåte uten å forke kildekoden. Jeg har for eksempel mine egne skills for Laravel/Livewire-prosjekter og en håndfull hooks som logger til mine egne systemer. Du kan gjøre det samme for Django, Rails, Go, Rust eller hva enn du driver med.
Ingen telemetri, og det er et bevisst valg
Jeg liker ikke verktøy som titter meg over skulderen. Elyra har derfor null telemetri. Ingen anonyme bruksstatistikker. Ingen "vi sender bare crash-rapporter, lover". Du kan kjøre den helt frakoblet om du vil – så lenge språkmodellen du bruker er lokal, går ingenting ut av maskinen din.
For meg er dette en hygienesak. Hvis du jobber med kode for kunder, eller bare har et minimum av selvrespekt på vegne av eget verksted, bør verktøyene dine være på din side.
Slik kommer du i gang
Det enkleste er å installere globalt fra npm:
npm install -g @elyracode/coding-agent
Sett en API-nøkkel for leverandøren du vil bruke:
export ANTHROPIC_API_KEY=sk-ant-...
# eller
export OPENAI_API_KEY=sk-...
# eller
export GEMINI_API_KEY=...
Naviger til prosjektet ditt og kjør:
elyra
Så er du i gang. Beskriv hva du vil ha gjort, så leser, skriver og redigerer agenten kode for deg. Du kan også kjøre /login hvis du heller vil bruke et eksisterende Claude Pro-, ChatGPT Plus- eller Copilot-abonnement.
Litt om arkitekturen
For den som er nysgjerrig: Elyra består av fem pakker som kan brukes uavhengig av hverandre.
Pakke Ansvar @elyracode/ai LLM-strømming, modellkatalog, kostnadssporing @elyracode/agent-core Selve agent-loopen, verktøykjøring, sesjoner @elyracode/coding-agent CLI-binæren med innebygde verktøy og prompt @elyracode/tui Terminal-rendring, editor, markdown, keybindings @elyracode/web-ui Web-komponenter (Lit) for nettleser-grensesnitt
Det betyr at hvis du bare vil bruke LLM-abstraksjonen i ditt eget verktøy, eller embedde agent-loopen i en annen applikasjon, kan du gjøre det uten å dra med deg hele pakka.
Hvor det går videre
Elyra er fortsatt ung, og jeg jobber jevnt med å gjøre den bedre. Sesjonsforgrening – det å kunne hoppe tilbake til et tidligere punkt og prøve en annen retning – er en av de funksjonene jeg er mest stolt av. Kodebase-minne, der agenten husker arkitektur og avgjørelser på tvers av økter, har spart meg for utallige re-introduksjoner av prosjekter.
Hvis dette høres ut som noe for deg, er du hjertelig velkommen til å stikke innom GitHub, gi den en stjerne, åpne en issue, eller bare fyre den opp og se om den passer i ditt verksted.
Og for alt jeg vet, kanskje du ender opp med å bygge en utvidelse jeg selv ikke har tenkt på. Det er litt av poenget.