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.
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.
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!
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.
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.
Etter noen minutter var den nye pagineringen jeg hadde bedt om på plass:
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: