Guider

Kom i gang på 5 minutter

Fra installasjon til en agent som jobber i repoet ditt, med Copilot CLI eller OpenCode i sandkassen cplt.

Guiden gjelder nav-pilot 2026.09.29-221653 eller nyere. Sjekk med nav-pilot --version. Har du en eldre versjon, kjør brew update og brew upgrade navikt/tap/nav-pilot navikt/tap/cplt.

Installer

På Mac med Homebrew:

brew install navikt/tap/nav-pilot navikt/tap/cplt
brew install gh

Installer så én av klientene. OpenCode:

brew install anomalyco/tap/opencode

Eller Copilot CLI. Den havner i ~/.local/bin, så den andre linja legger den mappa til i PATH:

curl -fsSL https://gh.io/copilot-install | bash
export PATH="$HOME/.local/bin:$PATH"

På Linux og i WSL bruker du installasjonsskriptet. Kommandoene står på Kom i gang.

Logg inn på GitHub

Agenten pusher og åpner pull requests med gh-innloggingen din. Logg inn én gang, utenfor sandkassen:

gh auth login

OpenCode eller pi på Mac: gh legger tokenet i nøkkelringen til macOS, og cplt slipper ikke disse klientene til nøkkelringen. Da feiler push og pull requests i sandkassen. Logg inn slik at gh lagrer tokenet i sin egen fil i stedet:

gh auth login --insecure-storage

Kloner du med SSH (git@github.com:…)? cplt stenger ~/.ssh, så push over SSH feiler i sandkassen. Få git til å bruke HTTPS mot GitHub. Kjør dette utenfor cplt, siden git-vakta stopper endringer i remote-oppsettet:

git config --global url."https://github.com/".insteadOf "git@github.com:"

Første kjøring

Gå til et repo og start nav-pilot:

cd ~/src/min-app
nav-pilot

Første gang spør nav-pilot om noen innstillinger. Enter gir det anbefalte valget. Spørsmålene er på engelsk:

  • Which coding agent? OpenCode, GitHub Copilot eller pi. OpenCode er valgt på forhånd.
  • Conversation mode: vanlig samtale, plan eller autopilot.
  • How much should the agent do on its own? Se Hvor mye skal agenten gjøre selv?
  • Model, Reasoning effort og Auto-update nav-pilot.

Til slutt viser Save these settings? hva som blir endret, både i nav-pilot og i cplt. Velger du Cancel, lagres ingenting. Etterpå sjekker nav-pilot gh-innloggingen og sier hvilken kommando du må kjøre hvis push eller pull requests ikke vil virke.

Kjenner cplt igjen verktøyene i repoet, kommer spørsmålet om .cplt.toml nå, se Første gang i et repo. Så spør nav-pilot hvor agentpakka skal ligge (Where to install?): i repoet, som hele teamet får, eller i hjemmekatalogen, bare for deg. Installere og oppgradere forklarer forskjellen.

Ber agentpakka om et unntak i sandkassen, spør nav-pilot før den installerer (agentpakke nav-pilot asks for more than the sandbox gives it. Allow it?). Nav-pakka ber om å nå Grafana-verktøyene Mimir, Loki og Tempo. Enter svarer Decline, og da virker alt annet i pakka. Agentpakker forklarer unntakene. Deretter starter klienten i sandkassen.

Første gang i et repo

Står du i et repo uten .cplt.toml, og cplt kjenner igjen verktøyene, for eksempel Gradle, spør nav-pilot: Apply the suggested sandbox rules for this repo? Svarer du ja, skriver cplt init --write fila. Den gir ingen tilgang før den er sjekket inn og godkjent:

git add .cplt.toml
git commit -m "chore: add cplt sandbox config"
cplt trust accept

cplt trust accept viser hva fila ber om, og spør før den godkjenner. Har repoet allerede en .cplt.toml, sier cplt fra ved oppstart om at den ikke er godkjent. Da kjører du bare cplt trust accept. Mer om fila står i Sett opp cplt i et repo.

Hva agenten kan gjøre

Med det anbefalte valget kan agenten:

  • lese og skrive filer i katalogen du startet i, og kjøre kommandoer der
  • committe, pushe egne grener og åpne pull requests

cplt stopper:

  • merging av pull requests (gh pr merge)
  • push til standardgrenen, for eksempel main, og force push
  • skriving utenfor prosjektkatalogen, og lesing av SSH-nøkler, nøkler til skytjenester og andre hemmeligheter

I tillegg ber nav-pilot agenten om å spørre deg før den sletter grener eller filer utenfor oppgaven, deployer, endrer CI eller tilganger, legger til avhengigheter, og når kravene er uklare. Det er en instruks, ikke en sperre. Det er cplt som sperrer.

Kjører klienten uten cplt, for eksempel med --no-sandbox der cplt ikke er installert, sender nav-pilot ingen flagg som lar agenten jobbe uten å spørre. Da spør Copilot CLI før hver handling, og OpenCode følger sine egne tillatelser.

Hvor mye skal agenten gjøre selv?

nav-pilot tilbyr fire nivåer. På alle fire stopper cplt merging, push til standardgrenen og force push. Unntaket er hvis du under Custom beholder cplt-nivået permissive eller full-trust. Der er sperrene av, og ingenting blir stoppet.

  • Autonomous in the sandbox (recommended). Agenten jobber uten å spørre for hver kommando, innenfor sandkassen. Den committer, pusher egne grener og åpner pull requests, og kan fortsatt spørre deg når den er usikker. For Copilot CLI sender nav-pilot --allow-all-tools --allow-all-paths --allow-all-urls, men bare når klienten kjører i cplt.
  • Ask before each command. Samme git-regler, men Copilot CLI spør før hver kommando. Bare for Copilot CLI.
  • Locked down. Agenten kan ikke pushe i det hele tatt, så du pusher selv. Nettverket er begrenset til en liste over tillatte verter, og Copilot CLI spør før hver kommando. nav-pilot setter cplt til strict og legger Navs verter i lista først.
  • Custom. Du velger selv om Copilot CLI skal spørre før hver kommando, og om nettverket skal være vanlig eller bare lista. Med cplt-nivået standard eller strict velger du også om agenten kan pushe og åpne pull requests eller bare committe. Har du satt cplt til permissive eller full-trust og beholder det, får du ikke det spørsmålet. Da er git- og gh-vaktene av, og cplt stopper verken merge, push til standardgrenen eller force push.

Bruker du OpenCode eller pi, får du ikke valget Ask before each command. Der styrer klienten selv hva den spør om. For OpenCode er det nøkkelen permission i opencode.json.

Locked down koster noe. Agenten kan ikke pushe en gren eller åpne en pull request fra den, så du må pushe selv. Verter som ikke står på lista, blir blokkert. Det gjelder også interne verter du tar i bruk senere. Lista ligger i ~/.nav-pilot/cplt-allowed-domains.txt. På Linux krever nivået kjerne 6.7 eller nyere med Landlock slått på.

Bytter du fra Locked down til et annet nivå, spør nav-pilot fra versjon 2026.09.29-223958: Remove the network allowlist nav-pilot set up for strict? Svarer du nei, eller har du en eldre versjon, blir lista stående, og agenten når fortsatt bare vertene på den. Fjern den slik:

cplt config set proxy.allowed_domains --unset --global

Du kan bytte nivå når som helst. Med Copilot CLI bytter du mellom Autonomous in the sandbox og Ask before each command med én innstilling. Resten av innstillingene blir som de er. Til Ask before each command:

nav-pilot config set autonomy conservative

Tilbake til Autonomous in the sandbox:

nav-pilot config set autonomy sandbox

Til Locked down, Custom eller tilbake fra Locked down går du gjennom veiviseren:

nav-pilot config setup

nav-pilot spør om du vil erstatte innstillingsfila. Velg Replace. Veiviseren skriver en ny fil. Klienten og nivået du har nå, er valgt på forhånd, og kilden blir med over. Samtalemodus, modell, resonneringsnivå og automatisk oppdatering starter på standardverdiene, og andre innstillinger i fila blir ikke med over. Gå gjennom hvert svar, og se over oppsummeringen før du lagrer.

Brukte du nav-pilot med Copilot CLI før nivåene kom, har du Ask before each command til du velger noe annet. Hele sammenligningen av standard og strict står i Sandkassen.

Videre