Referanse

Klienter

Hva Copilot CLI, opencode og pi kan når nav-pilot starter dem, og hva som mangler.

Klientene

KlientStatusHva du får
opencodeStandardopencode med Copilot-abonnementet ditt. Den eneste klienten der hovedagenten kan kjøre i skyen og delegere jobber til en lokal modell.
copilotStøttetGitHub Copilot CLI, i sandkassen cplt. Agentpakka virker også i VS Code, JetBrains og på github.com.
piEksperimentellpi i cplt, med skills, persona og AGENTS.md lagt inn ved oppstart. Mangler blant annet hooks.
  • Nye installasjoner får opencode: første gang spør nav-pilot hvilken klient du vil ha, med opencode forhåndsvalgt. Har du brukt nav-pilot før, beholder du klienten din.
  • Bytt for én økt med --client copilot, permanent med nav-pilot config set client copilot.
  • I CI og uten terminal starter nav-pilot Copilot CLI når config.toml mangler. Bruk --client opencode for opencode.
  • Kjører du lokal modell i Copilot CLI og har opencode installert, sier nav-pilot fra én gang at bare opencode kan delegere til den lokale modellen. Meldingen følger surveys-innstillingen: nav-pilot config set surveys false slår den av.

Mangler opencode, tilbyr nav-pilot å installere en testet versjon med en av kommandoene under. Sier du nei, får du Copilot CLI.

# macOS
brew install anomalyco/tap/opencode
# Linux og WSL
curl -fsSL https://opencode.ai/install | bash -s -- --version 1.18.32

Hva hver klient kan

✓ betyr ja, – nei og i.a. ikke aktuelt.

FunksjonCopilot CLIopencodepi
Maskering av hemmeligheter og fnr. 1JaJaNei
Merknad om prompt-injeksjonJaJaNei
Loop guard i skyøkter 2JaJaNei
Gates og agentpakke-hooks 3JaJaNei
tools: i agentene 4JaJaNei
Navs MCP-register 5JaJaNei
Testet klientversjon 6Ikke aktueltJaNei
Deling slått av, oppdatering som varselIkke aktueltJaIkke aktuelt
WSL2 på WindowsJaJaNei
Sky + local-worker 7NeiJaNei
Delegeringssperre 8NeiJaNei
Egen LLM-server (local_endpoint) 9JaJaNei
autopilot, context_tier, ask_user 10JaNeiNei
Utvidelser (extensions)JaNeiNei
  1. Maskering av hemmeligheter og fnr.: Feiler maskeringen i opencode, holder nav-pilot verktøyresultatet tilbake.
  2. Loop guard i skyøkter: Stopper agenten når den gjentar seg.
  3. Gates og agentpakke-hooks: Gates fra repoet kjører i opencode uten at du har godtatt mappa først, slik Copilot CLI krever.
  4. tools: i agentene: opencode får dem som permission per agent. MCP-verktøy og task oversettes ikke.
  5. Navs MCP-register: GitHub håndhever det i Copilot CLI, nav-pilot i opencode.
  6. Testet klientversjon: opencode >=1.18.20,<1.19 og >=2.0.24,<2.1. Utenfor dette advarer nav-pilot ved oppstart og i nav-pilot doctor.
  7. Sky + local-worker: Copilot CLI kjører en økt helt lokalt eller helt i skyen, aldri blandet.
  8. Delegeringssperre: Med local_dispatch balanced eller aggressive stopper nav-pilot hovedagenten når den redigerer for mye selv.
  9. Egen LLM-server (local_endpoint): I Copilot CLI tar serveren hele økten.
  10. autopilot, context_tier, ask_user: nav-pilot advarer ved oppstart i opencode.

Uten nav-pilots hooks er det verken loop guard (stopper agenten når den gjentar seg) eller maskering. Det gjelder alltid pi, og opencode 1 med --pure og opencode uten nav-pilot. Se Kjente mangler i opencode.

Navs MCP-register

Nav tillater bare MCP-servere som står i Navs MCP-register (se verktøykatalogen). Copilot CLI spør GitHub og kjører bare de godkjente. opencode har ingen slik sjekk, så nav-pilot gjør den ved oppstart:

  • Servere i opencode-konfigen din som ikke står i registeret, slås av for økten. En ekstern server må ha samme URL som i registeret, en lokal må starte en pakke registeret lister.
  • Kobler du til en avslått server med /mcp i økten, avviser hooks-pluginen verktøyene dens. Med --pure i opencode 1 kjører ingen hooks, så da virker ikke dette.
  • Konfigen din endres ikke, og opencode du starter uten nav-pilot, berøres ikke.
  • Mangler gh, eller svarer ikke GitHub, slår nav-pilot ingenting av. Du får en advarsel.

Ved oppstart ser du hva som ble slått av. nav-pilot doctor viser det samme på forhånd.

⚠ MCP servers turned off for this session (not in Nav's MCP registry): <navn>. See https://ki-utvikling.nav.no/verktoy (approved servers); to add one: https://github.com/navikt/copilot/blob/main/apps/mcp-registry/README.md#adding-servers

Slå på en server fra registeret med nav-pilot mcp enable <navn>, av med nav-pilot mcp disable <navn>. nav-pilot mcp list viser hva som hindrer en server, og kommandoen som retter det. I cplt spør nav-pilot om sandkassen skal slippe gjennom hostene serverne trenger. Enter betyr nei, og nav-pilot config set mcp_hosts off slår spørsmålet av. Se Når en MCP-server ikke virker. Hvilke konfigfiler nav-pilot leser, står i opencode-hooks.md.

Få en server inn i registeret

Legg den til i apps/mcp-registry/allowlist.json i navikt/copilot og lag en pull request. Den må gjennom en sikkerhetsgjennomgang. Hvordan du skriver oppføringen, står i README for MCP-registeret.

Uten cplt

cplt er sandkassen som holder agenten unna SSH-nøkler, skytilganger og andre hemmeligheter (se Sandkassen). Uten cplt starter ingen klient. --no-sandbox finnes ikke lenger. nav-pilot avslutter med en feilmelding som viser hvordan du installerer cplt.

opencode

  • nav-pilot legger AGENTS.md, skills, kommandoer og agenter i ~/.config/opencode/ og oppdaterer dem ved hver oppstart. Filer du har endret selv, lar den være.
  • Oppstarten venter ikke på GitHub. nav-pilot bruker kopien av agentpakka i ~/.nav-pilot/sources/ og henter ny i bakgrunnen, høyst én gang i timen. Bare første oppstart venter på nedlastingen.
  • Velger du ikke modell selv, bruker nav-pilot standarden agentpakka oppgir. For agentpakka nav-pilot er det GPT-6 Sol.
  • nav-pilot export opencode skriver agentpakka til .opencode/ i repoet. Du trenger det ikke for å bruke opencode.
  • nav-pilot setter opp OpenTelemetry for opencode, med mindre du har slått av telemetri.

Testet versjon

nav-pilot er testet mot opencode >=1.18.20,<1.19 og >=2.0.24,<2.1. Utenfor dette advarer nav-pilot og starter likevel, men hooks og delegeringssperre er ikke testet. nav-pilot doctor viser versjonen din. opencode 3 starter ikke før vi har testet den.

opencode 2 krever:

  • macOS med cplt fra 8. oktober 2026 eller nyere. cplt --version viser datoen først i versjonen.
  • Linux med cplt fra 8. oktober 2026 eller nyere (cplt --version minst 2026.10.08-092800) og bubblewrap (bwrap) installert.
  • Med Linux-kjerne eldre enn 6.7 kan ikke cplt stenge portene til økten. Da beskytter bare passordet til tjenesten den.
  • Går du fra opencode 1 til 2, må du kjøre opencode auth import én gang. Innloggingen følger ikke med automatisk.

Deling og oppdatering

Hver økt nav-pilot starter, får "share": "disabled" og "autoupdate": "notify", uansett hva opencode.json sier. Deling ville lastet opp økten til opencode.ai, og en oppdatering midt i en økt kunne gitt deg en versjon utenfor det testede området. nav-pilot setter også "share": "disabled" i ~/.config/opencode/opencode.json når fila ikke sier noe om deling. Står det "auto" der, får du en advarsel.

Økter nav-pilot starter, får lese filene i ~/.config/opencode/ uten å spørre om external_directory, men ikke endre dem. Har du satt external_directory til "deny", legger nav-pilot ikke til noe. Detaljene står i opencode-hooks.md.

Lokal delegering

Bare i opencode kan hovedagenten kjøre i skyen og delegere avgrensede jobber til local-worker, en subagent på den lokale modellen. local_dispatch styrer hvor mye som delegeres. Se Styr delegeringen.

Copilot CLI

mode = autopilot, context_tier, ask_user og utvidelser (extensions) finnes bare i Copilot CLI. I cplt kjører Copilot CLI kommandoer på egen hånd og spør når den trenger det, med mindre du har satt nav-pilot config set autonomy conservative. En lokal modell tar hele økten, uten delegering, se Lokal modell på Mac.

nav-pilot henter ikke GitHub-tokenet selv. Er gh-vakta i cplt på, henter cplt det fra GH_TOKEN, GITHUB_TOKEN, COPILOT_GITHUB_TOKEN eller gh auth token. copilot_auth_mode begrenser kildene: env_only krever token i miljøet, gh_only fjerner token-variablene.

pi eksperimentell

Installer pi med npm i -g @earendil-works/pi-coding-agent. nav-pilot legger agentpakka i ~/.nav-pilot/pi/ og gir pi skills og AGENTS.md som flagg. Dette mangler:

  • Hooks: ingen maskering, ingen loop guard og ingen gates.
  • --agent: pi kan ikke bytte agent. Personaen blir en del av systemprompten, og tools: gjelder ikke.
  • Lokal modell: ingen local-worker, local_dispatch eller local_endpoint.
  • Sjekk mot Navs MCP-register.
  • Innstillingene mode, reasoning_effort, context_tier, allow_all_tools, ask_user og log_level. nav-pilot advarer om dem.

Kjente mangler i opencode

Hookene kjører som en plugin nav-pilot legger inn ved oppstart. Dette dekker de ikke:

  • --pure: opencode laster ingen plugins, så ingen hooks kjører. nav-pilot sier fra ved oppstart.
  • Vedlegg som bilder og PDF-er går til modellen uten maskering. Maskeringen virker på tekst.
  • Sjekken mot MCP-registeret dekker ikke servere du legger til midt i økten, konfig fra .well-known/opencode eller en organisasjon du er logget inn i, eller administrerte innstillinger på macOS.
  • Plugins i repoet (.opencode/plugin og plugin i repoets opencode.json) er kode som kjører med agentens rettigheter, i sandkassen. I opencode 2 kan en slik plugin også slå av nav-pilots hooks. Stoler du ikke på repoet, start med OPENCODE_DISABLE_PROJECT_CONFIG=1. Da laster opencode verken plugins, MCP-servere eller konfig fra repoet.

Resten, blant annet kodemodus og hva terminalen viser, står i opencode-hooks.md.