Vi har prøvd Copilot CLI: – Perfekt for meg som aldri husker kommandoer!

Kan jeg endelig slutte å oppdatere Notion-dokumentet mitt "Linux-kommandoer jeg aldri husker"?

Copilot CLI forklarer hva forslagene dens gjør. Husk å dobbeltsjekke før du trykker "run"! 📸: Ole Petter Baugerød Stokke.
Copilot CLI forklarer hva forslagene dens gjør. Husk å dobbeltsjekke før du trykker "run"! 📸: Ole Petter Baugerød Stokke. Vis mer

I mars annonserte GitHub det de kalte Copilot X – en rekke nye verktøy og tjenester basert på kunstig intelligens.

Noe av det undertegnede gledet seg mest til å teste ut, var Copilot CLI – et verktøy som gjør at du slipper å måtte huske syntaksen til Linux-kommandoer eller de avanserte Git-operasjoner.

Gleden var derfor stor da det her om dagen dukket opp en e-post fra Github med tittelen "Welcome to the Copilot for CLI technical preview!"

Kan jeg endelig slutte å oppdatere Notion-dokumentet mitt "Linux-kommandoer jeg aldri husker"?

Installasjon av GitHub Copilot CLI er fort gjort, og godt beskrevet på prosjektets npm-side, men du må ha fått tilgang for at det skal fungere.

Har du ikke allerede tilgang, er det bare å sette seg på venteliste. For min del tok det fire-fem uker før jeg fikk tilgang, så det gjelder å smøre seg med tålmodighet. Men den som venter på noe godt, og så videre...

Oversetter til shell-kommandoer

Copilot CLI fungerer enkelt og greit ved at du i stedet for å skrive en vanlig Linux-kommando på kommandolinjen, skriver to spørsmålstegn og det du har tenkt å gjøre. Så vil Copilot CLI foreslå en kommando som gjør det du vil gjøre.

Den vil imidlertid ikke kjøre kommandoen med en gang – det kunne fort ha endt i katastrofe. I stedet viser den deg kommandoen den har tenkt å kjøre, og forklarer den for deg. Er du fornøyd, kan du velge å kjøre kommandoen – eventuelt redigere den, eller avbryte.

Her er et eksempel på hvordan du bruker Copilot CLI for å drepe alle prosesser som kjører på port 3000:

image: Vi har prøvd Copilot CLI: – Perfekt for meg som aldri husker kommandoer!

Du kan også kjøre Copilot CLI ved å taste kommandoen github-copilot-cli, men det anbefales at du setter opp aliaser for de mest vanlige operasjonene. Hvordan du gjør det er godt beskrevet i dokumentasjonen, men det er kort fortalt bare å legge inn én enkelt linje i config-filen til shellet ditt (.zshrc, .bashrc, eller hva du nå bruker).

Da får du tre ulike aliaser:

  • ?? for å oversette naturlig språk til generelle shell-kommandoer
  • git? for å oversette naturlig språk til Git-kommandoer
  • gh? for å oversette naturlig språk til GitHub CLI-kommandoer

Eksempler på hva du kan gjøre

For min egen del bruker jeg som mange andre vanlige Linux-kommandoer som ls, cd, cat, rm, mv, og så videre hver eneste dag. Kanskje jeg til og med finner på å kjede sammen flere kommandoer med &&, og da føler jeg meg som en skikkelig proff.

Men noen ganger trenger jeg å gjøre noe litt mer avansert, og da er det ofte jeg må ty til google for å huske den nøyaktige syntaksen.

«Problemet er at en med teflonhjerne som meg alltid blir usikker på syntaksen.»

Det trenger ikke være noe spesielt avansert, det kan for eksempel være å finne alle filer av en bestemt type og sortere dem etter filstørrelse. Eller kanskje finne ut hvilke prosesser som kjører på en bestemt port, eller endre rettigheter på en fil.

Problemet er at en med teflonhjerne som meg alltid blir usikker på syntaksen til kommandoen og alle mulige argumenter, flagg, og rekkefølgen på alt sammen.

La oss si jeg vil endre filendelsen til alle .js-filer (JavaScript) til .ts (TypeScript). Dette innebærer noen for-looper og litt forskjellig som i hvert fall jeg pleier å glemme mellom hver gang jeg har bruk for det. Men ved å skrive ?? rename all of the files to replace ".js" with ".ts" klarte Copilot CLI å fikse det for meg:

image: Vi har prøvd Copilot CLI: – Perfekt for meg som aldri husker kommandoer!

I tillegg til å bruke ?? for å få hjelp med Linux-kommandoer, har du også kommandoen git? for å få hjelp med git-operasjoner.

La oss si at du for eksempel har behov for å endre den siste commit-meldingen din etter at sjefen igjen har klaget på at du skriver for dårlige commit-meldinger. Men hvordan var det nå du endret commit-meldinger igjen?

Jeg spurte først Copilot CLI om hvordan jeg kan se den siste commit-meldingen:

image: Vi har prøvd Copilot CLI: – Perfekt for meg som aldri husker kommandoer!

Etter å ha fastslått at commit-meldingen faktisk var så dårlig som sjefen påsto, bestemmer jeg meg for å endre. Jeg spør på nytt hvordan det gjøres:

image: Vi har prøvd Copilot CLI: – Perfekt for meg som aldri husker kommandoer!

Etter å ha sjekket nøye at forslaget virker fornuftig og ikke roter til noe du ikke vil rote til, er det bare å velge "Run this command."

Forkjærlighet for zsh og Linux

Ifølge GitHub skal Copilot CLI fungere på tvers av ulike plattformer, terminaler og shell – men ha en forkjærlighet for zsh på Linux.

Dermed kan AI-en finne på å foreslå kommandoer som ikke fungerer i ditt OS eller med terminalen eller shellet du bruker. Hvis det skjer, kan du velge "Revise query" og fortelle Copilot CLI hvilken plattform du befinner deg på, og krysse fingrene for at du får et bedre forslag.

Alias-kommandoene er kun testet for å fungere med zsh og bash.

Jeg har selv prøvd Copilot CLI kun på macOS med zsh, men litt kjapp googling viser at det finnes utviklere som har fått det til å fungere helt fint også i Windows-terminalen.

Kan gjøre skumle feil

På samme måte som for eksempel ChatGPT kan foreslå ting som er feil, er heller ikke Copilot CLI ufeilbarlig.

GitHub advarer brukere om at det er viktig å lese gjennom forklaringene Copilot CLI kommer med, og være helt sikker på at du faktisk forstår hva kommandoene gjør før du trykker "Run this command". Hvis ikke kan du risikere å gjøre utilsiktede endringer det ikke er mulig å angre.

Hvis du har dette i bakhodet, og husker på å skru på hjernen før du kjører forslagene, så er Copilot CLI veldig praktisk.

I løpet av de få dagene jeg har hatt Copilot CLI installert på maskinen min, har jeg faktisk opplevd også at Copilot CLI har lært meg smarte måter å gjøre ting på fra kommandolinjen. Og det er jo en fin bonus!