---
categories: [aws]
date: 2025-05-25 00:00:00 +0000 UTC
lastmod: 2025-05-25 00:00:00 +0000 UTC
publishdate: 2025-05-25 00:00:00 +0000 UTC
series: [AWS]
slug: aws-q-cli-game
tags: [aws q q-cli amplify game javascript]
title: Amazon Q CLI: Mer enn chat. Bygger et lite spill
---
## Fra Swift til Java Script

Husker du det gamle prosjektet? Det hvor jeg brukte tid med Swift tilbake i 2023, og prøvde å lage et enkelt spill om balanse mellom jobb og fritid? Det var en underholdende idé for å demonstrere hvor lett ting kan gå galt når man bare har noen få valg. Men som mange sideprosjekter ble det forlatt på grunn av tidsmangel og, for å være ærlig, mangel på robuste GenAI-verktøy på den tiden.

Spol frem til i dag. Jeg bestemte meg for å gjenopplive det konseptet, men med en vri. Denne gangen ville jeg utnytte kraften i Amazon Q CLI og sikte på en Node.js/TypeScript-implementering. Hvorfor bytte? Enkelhet og letthet ved å distribuere til AWS-skyen. Målet mitt var en "100 % vibe coding experience" – det vil si at jeg lot Amazon Q gjøre det tunge arbeidet. Ingen manuelle kodeendringer, bare kommandoer til Q.

Jeg startet med å mate Q med det gamle Swift-prosjektet og notatene, og ba det oversette spillet til JavaScript.

![Initial Swift Project](/images/posts/aws_amazon_q_cli_game/001_swift.webp)

De første resultatene var imponerende. Q klarte å overføre kjernelogikken til JavaScript. Det er kanskje bare noen få kodelinjer i det Swift-prosjektet, men Amazon Q var i stand til å forstå oppgaven og forberede en helt annen applikasjon. Dette er ikke bare en “standard” Java 8 til Java 18 oppgradering. Her er det en plattformmigrering fra macOS til webapplikasjon.

![Q generates JavaScript code](/images/posts/aws_amazon_q_cli_game/002_js.webp)

Neste steg var å be Q legge til tester. Det er avgjørende at Q kan kjøre koden, identifisere problemer og fikse dem. Jeg anbefaler alltid å la GenAI-verktøy kunne teste sin egen kode.

![Q adding tests](/images/posts/aws_amazon_q_cli_game/003_tests.webp)

Og her er migreringen til JavaScript, fullført av Amazon Q. Det ser enkelt ut, men all koden ble migrert, og det som er enda viktigere – prosjektet ble bootstrappet. Jeg trengte ikke bruke tid på å forberede utviklingsmiljøet.

![JavaScript code by Q](/images/posts/aws_amazon_q_cli_game/004_compete_migration_to_js.webp)

Med det grunnleggende spillet portet, var det tid for nye funksjoner.

![Q adding new features](/images/posts/aws_amazon_q_cli_game/005_addiding_new_features.webp)

## ToDo.md som toveis kommunikasjon

Mens Q jobbet, startet jeg en `todo.md`-fil for å legge inn flere kommandoer og ideer i kø. AI kan jo lese filer, ikke sant? Alt takket være den innebygde MCP i Q CLI.  
Her kunne vi finne et sett med grunnleggende verktøy:  [https://github.com/aws/amazon-q-developer-cli/blob/main/crates/cli/src/cli/chat/tools/fs_read.rs](https://github.com/aws/amazon-q-developer-cli)  
Åh, jeg glemte kanskje å nevne det, men ja, Amazon Q Developer CLI er open source.  
En annen viktig del er settet med MCP-servere, som du kan finne [her]( https://github.com/awslabs/mcp/tree/main/src) hvis du er interessert.

![Creating a TODO file](/images/posts/aws_amazon_q_cli_game/006_creating_todo_file.webp)

Det er litt bedre å be Q CLI bruke denne `todo.md`-filen. Det er vanskelig for disse verktøyene å forstå hvilket innhold som for eksempel må behandles i repoet. Kodebasen kan være stor.

![Asking Q to use the TODO file](/images/posts/aws_amazon_q_cli_game/007_ask_q_to_use_todo.webp)

Spennende "Ah-ha"-øyeblikk, Q begynte å foreslå sine ideer og legge dem til i `todo.md`-filen. Dette skapte en kul frem-og-tilbake kommunikasjonskanal, alt innenfor en enkel markdown-fil. Du vet, akkurat nå kan vi ikke snakke med CLI-verktøyet ennå, men vi kan både lese og skrive tekstfiler.

![Q suggesting ideas in TODO file](/images/posts/aws_amazon_q_cli_game/008_q_use_todo_and_suggest_ideas.webp)

Vi fikk til og med avkrysningsbokser til å fungere i oppgavelisten, og Q var smart nok til å forstå dem og merke oppgaver som fullført. Denne typen interaktiv koding er ganske imponerende.

![Q using checkboxes in TODO](/images/posts/aws_amazon_q_cli_game/009_add_check_boxes_for_todo.webp)

## Distribusjon til AWS Amplify

Med utviklingen godt i gang var neste logiske steg distribusjon. Jeg bestemte meg for å late som jeg var litt ukjent med AWS og spurte Q om veiledning for å distribuere appen.

![Asking Q how to deploy](/images/posts/aws_amazon_q_cli_game/010_ask_q_how_to_deploy_app.webp)

Q foreslo AWS Amplify, og prosessen var overraskende enkel. Å koble til GitHub var en lek.

![Amplify connect to GitHub](/images/posts/aws_amazon_q_cli_game/011_amplify_connect_github.webp)

Oppsett av appens grunnleggende innstillinger i Amplify tok også bare noen få klikk.

![Amplify app basics](/images/posts/aws_amazon_q_cli_game/012_amplify_app_basics.webp)

Og slik ble appen distribuert, komplett med de nye funksjonene. Amplify håndterte alle byggeprosessene, så det var ikke nødvendig med manuell CI/CD-oppsett.

![Deployed app with new features](/images/posts/aws_amazon_q_cli_game/013_deployed_app_with_new_features.webp)

Det mest fascinerende? Selv commit-meldingene var AI-genererte!

![GitHub commits from AI](/images/posts/aws_amazon_q_cli_game/014_github_commits_from_ai.webp)

Hele denne opplevelsen viste at Amazon Q CLI er mye mer enn bare et chattegrensesnitt. Det kan være en kraftfull partner i utviklingssyklusen, fra koding og testing til distribusjon og til og med prosjektledelse. Det er et glimt inn i en ny æra for programvareutvikling.

Selve spillet finner du her: https://timetectonic.cageyv.dev/  
Målet mitt var mest å prøve den autonome oppførselen til Q og evnen til å følge instruksjoner og utføre ikke godt beskrevne oppgaver.

## Oppsummering 
- Amazon Q Developer CLI kan bringe agentisk oppførsel til terminalen uavhengig av applikasjonene.  
- Det er et gigantisk fremskritt siden CodeWhisperer-æraen  
- Innebygde verktøy hjelper mye og lar agenten utføre mange kommandoer.  
- Amazon Q Developer CLI kan også: feilsøke problemer i AWS, sjekke logger og S3-bøtter. Med tilgang til AWS API er det et veldig kraftfullt verktøy.