AWS' Cursor-konkurrent Kiro overbeviser oss: «Helt annerledes!»

Slutt på vibbekodingen: Vi har prøvd Kiro – en kodeeditor som gir deg tilbake kontrollen ved å tvinge AI-en til å kode etter spesifikasjoner.

AWS' kodeeditor Kiro holder AI-en i ørene ved å kreve at AI-en bygger applikasjoner etter spesifikasjoner den hjelper deg med å lage.
Publisert

Vibbekoding kan være gøy, men frustrerende. 

Det er lett å vibbekode seg frem til en applikasjon som både ser bra ut og tilsynelatende fungerer bra. Men ber du AI-en om å bygge noe mer komplekst, og kanskje bygge videre på en stor, eksisterende kodebase, svikter den ofte. 

  • Om AI-en klarer det du ba den om, kan det likevel være vanskelig og tidkrevende å få koden produksjonsklar. 
  • AI-en gjør ofte for mange antagelser underveis, ting du må sjekke opp eller kanskje rette før du sender koden til prod.
  • Det er ikke sikkert alt er så robust og sikkert som det bør være – eller at koden er skalerbar, fremtidsrettet og enkel å vedlikeholde. 

Amazon Web Services (AWS) lover å fikse dette med en ny kodeeditor, Kiro.

– Jeg har prøvd Kiro – og for første gang på lenge føler at det er jeg som sitter i førersetet, ikke AI-en.

I stedet for at AI-en bare skal brukes til ren "vibbekoding", skal Kiro hjelpe deg med å gå fra konsept og prototype til produksjonsklare applikasjoner ved å bruke specs, user stories og styringsfiler for å guide AI-en (mer om det senere). 

Dermed skal Kiro kunne bygge løsninger som er dokumentert og som følger kravspesifikasjoner.

Jeg har prøvd Kiro – og for første gang på lenge føler at det er jeg som sitter i førersetet, ikke AI-en.

Cursor-konkurrent

Kiro er en direkte konkurrent til AI-editorer som Cursor og Windsurf og finnes til både Mac (Intel og Apple-CPU), Windows og Linux. 

I likhet med Cursor er Kiro basert på åpen kildekodeversjonen av VS Code ("Code – OSS"), og du kan importere alle innstillingene og utvidelsene dine fra VS Code når du starter opp første gang.

Kiro støtter ifølge AWS de mest populære programmeringsspråkene, og Kiro har laget guider for hvordan du setter opp editoren til å fungere best mulig med TypeScript, JavaScript, Java eller Python.

Kiro-panelet

Brukergrensesnittet i Kiro ser noenlunde likt ut som det du kjenner fra VS Code, men i tillegg til de vanlige knappene i venstremenyen har du også en knapp med et spøkelsessymbol – som også er Kiros logo. 

Et trykk på spøkelset åpner Kiro-panelet på venstre side av kode-redigeringsfeltet. Det er dette panelet som lar deg ta kontroll over AI-en, i stedet for at AI-en har kontroll over deg!

Slik ser det ut når du åpner et nytt prosjekt og du trykker spøkelsessymbolet i venstremenye for å åpne Kiro-panelet. Chattevinduet til høyre lar deg velge mellom vibbekoding eller AI-assistert koding som skal følge spesifikasjoner og planer du har opprettet på forhånd.

I panelet finner du disse valgene:

  • Specs
  • Agent hooks
  • Agent steering
  • MCP Servers

I tillegg til Kiro-panelet, som vi skal komme mer tilbake til, har du også et tradisjonelt AI-chattevindu på høyre side. Dette ligner på AI-chatten du finner i Cursor eller Microsoft VS Code, bortsett fra at du får to valg: 

  • Vibe: Chat først, så bygg. Utforsk idéer og iterer etter hvert som du finner ut hva du trenger, eller hva som bør forbedres.
  • Spec: Planlegg først og spesifiser behov og design før kodingen starter

I Kiro er det altså lagt opp til at man skal styre AI-en i riktig retning ved å definere spesifikasjoner og krav før du begynner å kode, i stedet for å vibbekode. Selv om du kan vibbekode hvis du vil.

Sett opp "styringsfiler"

For å teste ut Kiro startet jeg med å åpne ett av mine egne hobbyprosjekter, en nettside og portal for sameier og borettslag – basert på Next.js, Sanity, Clerk, Tailwind CSS og HeroUI.

Prosjektet var noenlunde ferdig, men manglet blant annet serverside-basert paginering av en liste med brukere som blir hentet fra autentiseringsløsningen Clerk. I og for seg en grei oppgave – men kanskje litt kjedelig, så jeg bestemte meg for å la Kiro prøve seg.

Etter å ha trykket på spøkelset for å åpne Kiro-panelet, startet jeg med å klikke "Generate Steering Docs" – som anbefalt i dokumentasjonen.

Disse "styringsfilene" skal ifølge Kiro gi kontekst om prosjektet, og hjelpe til med å forstå kodebasen, konvensjoner og krav bedre.

Kiro begynte da å analysere koderepoet for å forsøke å forstå prosjektet. Så ble det opprettet tre styringsdokumenter:

  • product.md: Informasjon om hva produktet gjør.
  • tech.md: Informasjon om tech-stacken
  • structure.md: Detaljert oversikt over hvordan prosjektet er organisert, hvordan ting er satt opp, navnekonvensjoner, og så videre.

Styringsfilene er lett tilgjengelig fra Kiro-panelet, og du kan selv manuelt gå inn og gjøre endringer i styringsfilene hvis noe ikke stemmer – eller du vil legge til noe.

Kiro lagde automatisk tre styringsfiler for oss: Én som beskriver produktet, én som beskriver prosjektstrukturen og én som beskriver tech-stacken. Du kan lage flere om du vil.

Hvis du vil lage flere styringsfiler du vil AI-en skal ta hensyn til, er det bare å trykke pluss-knappen under "Agent steering" og legge dem til.

Skriver spesifikasjoner for deg

Etter at styringsfilene var laget, gikk vi over til neste fase som var å lage en detaljert plan i form av Specs. 

Dette er et dokument som beskriver hva programvaren skal gjøre, med såkalte "user stories" som beskriver hva en bruker skal få ut av det som lages, og akseptansekriterier – altså når fungerer ting slik det skal.

Du oppretter en spesifikasjon ved å trykke et pluss-tegn og velge "create a new spec", og så beskrive kort hva du har tenkt å lage. Kiro-AI-en begynner da å forfatte et requirements-dokument. 

Etter å ha lest gjennom og sjekket, eventuelt gjort endringer, kan du be Kiro om å gå videre til design-fasen. Da vil Kiro lage et designdokument (design.md) med en detaljert beskrivelse av den tekniske arkitekturen og hvordan alt er tenkt designet.

Neste fase er å lage en implementeringsplan. Nå oppretter Kiro en tasks.md-fil med liste over alt som må gjøres.

Begynn på oppgavene

Tasks.md-filen inneholder en liste over alle oppgavene som skal gjøres. For hver oppgave har du en knapp for å instruere Kiro om å begynne å jobbe med oppgaven.

Kiro lager en tasks.md-fil som inneholder alle oppgavene den mener bør gjøres for å kode det du har bedt om, i henhold til kravspesifikasjoner og designretningslinjer.

Etter noen minutter var den nye pagineringen jeg hadde bedt om på plass:

Slik ser den ferdige pagineringen ut. Kiro fikset biffen på første forsøk.

Alt fungerte på første forsøk, men stylingen på pagineringsknappene var litt annerledes enn et annet sted i applikasjonen. Dette ble fikset på første forsøk da jeg ba Kiro om å bruke samme styling som ble brukt i en annen komponent.

Konklusjon

Jeg har bare såvidt begynt å teste ut Kiro, men førsteinntrykket er veldig godt. Med Kiro har AWS laget en kodeeditor som er helt annerledes enn det i hvert fall jeg har sett før.

Mens andre AI-editorer som for eksempel Cursor kan finne på å plutselig ville gjøre en masse utover det du har bedt den om å gjøre – føler jeg at Kiro lar meg innta førersetet igjen. 

Det tar litt mer tid å gjøre ting på Kiro-måten – siden du må gjennom en litt lenger prosess med å lage spesifikasjoner og retningslinjer som skal brukes når løsningen til slutt skal bygges av AI-en.

Det virker som at Kiro oftere klarer å fikse ting på første forsøk sammenlignet med "gammeldags vibekoding".

Men sluttresultatet blir mye bedre, og det virker som at Kiro oftere klarer å fikse ting på første forsøk sammenlignet med "gammeldags vibekoding".

Kiro har også en del andre funksjoner som jeg ikke har gått inn på her – som hooks, som lar deg automatisere oppgaver, for eksempel automatisk foreslå tester eller dokumentasjon når filer endrer seg.

Du må sette deg på venteliste for å få tilgang til Kiro, som foreløpig er tilgjengelig i en "public preview"-versjon som er gratis å bruke. Når den endelige versjonen er klar vil du måtte betale for å få tilgang til "spec requests", mens inntil 50 "vibe requests" er gratis. 

Scott Tolinski i Syntax-podcasten har en gjennomgang av Kiro, og sier det nå er hans favoritt-editor. Sjekk videoen:

Powered by Labrador CMS