Referanse
Klienter
Hva Copilot CLI, opencode og pi kan når nav-pilot starter dem, og hva som mangler.
Klientene
| Klient | Status | Hva du får |
|---|---|---|
opencode | Standard | opencode med Copilot-abonnementet ditt. Den eneste klienten der hovedagenten kan kjøre i skyen og delegere jobber til en lokal modell. |
copilot | Støttet | GitHub Copilot CLI, i sandkassen cplt. Agentpakka virker også i VS Code, JetBrains og på github.com. |
pi | Eksperimentell | pi 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 mednav-pilot config set client copilot. - I CI og uten terminal starter nav-pilot Copilot CLI når
config.tomlmangler. Bruk--client opencodefor 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 falseslå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-v2
# Linux og WSL npm i -g @opencode/cli@2.1.4
Hva hver klient kan
✓ betyr ja, – nei og i.a. ikke aktuelt.
| Funksjon | Copilot CLI | opencode | pi |
|---|---|---|---|
| Maskering av hemmeligheter og fnr. 1 | Ja | Ja | Nei |
| Merknad om prompt-injeksjon | Ja | Ja | Nei |
| Loop guard i skyøkter 2 | Ja | Ja | Nei |
| Gates og agentpakke-hooks 3 | Ja | Ja | Nei |
tools: i agentene 4 | Ja | Ja | Nei |
| Navs MCP-register 5 | Ja | Ja | Nei |
| Testet klientversjon 6 | Ikke aktuelt | Ja | Nei |
| Deling slått av, oppdatering som varsel | Ikke aktuelt | Ja | Ikke aktuelt |
| WSL2 på Windows | Ja | Ja | Nei |
Sky + local-worker 7 | Nei | Ja | Nei |
| Delegeringssperre 8 | Nei | Ja | Nei |
Egen LLM-server (local_endpoint) 9 | Ja | Ja | Nei |
autopilot, context_tier, ask_user 10 | Ja | Nei | Nei |
| Utvidelser (extensions) | Ja | Nei | Nei |
- Maskering av hemmeligheter og fnr.: Feiler maskeringen i opencode, holder nav-pilot verktøyresultatet tilbake.
- Loop guard i skyøkter: Stopper agenten når den gjentar seg.
- Gates og agentpakke-hooks: Gates fra repoet kjører i opencode uten at du har godtatt mappa først, slik Copilot CLI krever.
tools:i agentene: opencode får dem som permission per agent. MCP-verktøy ogtaskoversettes ikke.- Navs MCP-register: GitHub håndhever det i Copilot CLI, nav-pilot i opencode.
- Testet klientversjon: opencode
>=1.18.20,<1.19og>=2.0.24,<2.2. Utenfor dette advarer nav-pilot ved oppstart og inav-pilot doctor. - Sky +
local-worker: Copilot CLI kjører en økt helt lokalt eller helt i skyen, aldri blandet. - Delegeringssperre: Med
local_dispatchbalanced eller aggressive stopper nav-pilot hovedagenten når den redigerer for mye selv. - Egen LLM-server (
local_endpoint): I Copilot CLI tar serveren hele økten. 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.
Innstillinger per klient
Slik bruker klientene innstillingene i ~/.nav-pilot/config.toml. ✓ betyr at klienten bruker innstillingen. «Advarsel» betyr at klienten mangler en tilsvarende innstilling: nav-pilot sier fra ved oppstart og starter uten den.
| Innstilling | Copilot CLI | opencode | pi |
|---|---|---|---|
model | Ja | Ja | Ja |
mode | Ja | Bare plan; autopilot gir advarsel | Advarsel |
reasoning_effort | Ja | Bare i opencode run; ellers advarsel | Advarsel |
context_tier | Ja | Advarsel | Advarsel |
allow_all_tools | Ja | Ja | Advarsel |
ask_user | Ja | Advarsel | Advarsel |
log_level | Ja | Ja, unntatt none | Advarsel |
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
/mcpi økten, avviser hooks-pluginen verktøyene dens. Med--purei 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.
Nais MCP trenger innloggingen din. Under cplt kjører cplt serveren på maskinen din, så innloggingen ikke kommer inn i sandkassen, likt i Copilot CLI og opencode. I opencode går GitHub-serveren gjennom en proxy i cplt som bruker gh-innloggingen din. Se MCP gjennom cplt.
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 opencodeskriver 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.2. 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 eller Linux med cplt fra 22. oktober 2026 eller nyere (
cplt --versionminst2026.10.22-172931). Med eldre cplt stopper nav-pilot og sier hvordan du oppdaterer. - På Linux må bubblewrap (
bwrap) være installert. - Med Linux-kjerne eldre enn 6.7 kan ikke cplt stenge portene til økta. Da beskytter bare passordet til tjenesten den.
Fra opencode 1 til 2
nav-pilot støtter opencode 1 til og med 19. november 2026. Oppdateringen opencode 1 selv tilbyr, holder deg på opencode 1. Oppgrader slik, etter hvordan du installerte opencode:
- Homebrew:
brew uninstall opencode && brew install anomalyco/tap/opencode-v2 - npm:
npm uninstall -g opencode-ai && npm i -g @opencode/cli@2.1.4 - Installasjonsskriptet:
rm ~/.opencode/bin/opencode && npm i -g @opencode/cli@2.1.4
Oppgraderingen kan ikke angres: opencode 2 skriver om databasen fra opencode 1. Du må logge inn på nytt, fordi innloggingen (auth.json) ikke blir med. Når du starter opencode 1, viser nav-pilot den riktige kommandoen for din maskin.
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. Copilot prioriterer COPILOT_GITHUB_TOKEN, GH_TOKEN, så GITHUB_TOKEN. På macOS sender cplt gh auth token --hostname github.com som GH_TOKEN og stenger Keychain når Copilot og gh bruker samme konto, og lar Keychain være åpen når kontoene er ulike eller tvetydige. copilot_auth_mode filtrerer bare miljøet før cplt starter. env_only krever token der, og gh_only fjerner 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, ogtools:gjelder ikke.- Lokal modell: ingen
local-worker,local_dispatchellerlocal_endpoint. - Sjekk mot Navs MCP-register.
- Innstillingene
mode,reasoning_effort,context_tier,allow_all_tools,ask_useroglog_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/opencodeeller en organisasjon du er logget inn i, eller administrerte innstillinger på macOS. - Plugins i repoet (
.opencode/pluginogplugini repoetsopencode.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 medOPENCODE_DISABLE_PROJECT_CONFIG=1. Da laster opencode verken plugins, MCP-servere eller konfig fra repoet. - Hovedagenten kan velge en annen modell for en underagent, og valget går foran modellen i agentpakka. opencode spør deg ikke (opencode#51071). Så lenge lista over tillatte leverandører som nav-pilot setter ved oppstart gjelder, må modellen være en GitHub Copilot-modell eller den lokale modellen. Utvidelser og konfig som endres senere, er ikke dekket. Valget kan gi en dyrere modell og flere premiumforespørsler. Betyr kostnaden noe, sjekk hvilken modell underagenten kjører på, og skriv i oppdraget at modellen ikke skal byttes. Lager du agentpakker: modellen du setter i agentfila, er et råd, ikke en garanti.
- Tale (GPT-Live) er ikke tillatt med nav-pilot. Talefunksjonen i opencode 2.1 kobler seg rett til OpenAI, xAI eller Google når den finner en API-nøkkel for dem, lagret i opencode eller i en miljøvariabel som
OPENAI_API_KEY. Den sjekker ikke lista over tillatte leverandører, så nav-pilots sperre stopper den ikke. Ikke lagre nøkler for openai, xai eller google i opencode, og ikke bruk tale. cplt slipper ikke miljøvariabler med slike nøkler inn i sandkassen som standard. Med cplt 2026.10.23-070444 eller nyere stenger nav-pilot dem også når noen slipper dem inn med--pass-env,--inherit-enveller.cplt.toml(navikt/cplt#817). Lagrede nøkler og tale via OpenCode Console kan likevel ikke stenges med konfig.
Resten, blant annet kodemodus og hva terminalen viser, står i opencode-hooks.md.