Oh-My-NavLogg inn

Bygget med GitHub Copilot

PersonvernTilgjengelighetGitHub

Referanse

Klienter

Hva Copilot CLI, opencode og pi kan når nav-pilot starter dem, og hva som mangler. Søk på siden med Ctrl+F.

Kom i gangGod praksisVerktøyRetningslinjernav-pilotcpltModellpriserStatistikkAdopsjonOrdbok

Klientene

En klient er programmet nav-pilot starter. Standard er Copilot CLI. Velg klient for én økt med --client opencode, eller for godt med nav-pilot config set client opencode.

KlientStatusHva du får
copilotStandardGitHub Copilot CLI, i sandkassen cplt når den er installert. Agentpakka virker også i VS Code, JetBrains og på github.com.
opencodeStøttetopencode med Copilot-abonnementet ditt. Den eneste klienten der hovedagenten kan kjøre i skyen og sende jobber til en lokal modell.
piEksperimentellpi i cplt, med skills, persona og AGENTS.md lagt inn ved oppstart. Mangler blant annet hooks.

Hva hver klient kan

Tabellen viser status fra paritetsarbeidet i #1022, som skal gjøre opencode like trygg som Copilot CLI.

FunksjonCopilot CLIopencodepiMerknad
Maskering av hemmeligheter og fødselsnumreJaJaNeiFeiler maskeringen i opencode, holder nav-pilot verktøyresultatet tilbake. Med --pure kjører ingen hooks.
LøkkevaktJaJaNei
Gates du har installert, også agentpakke-hooksJaJaNeiGates fra repoet kjører i opencode uten at du først har godtatt mappa, slik Copilot CLI krever.
tools: i agenteneJaJa, som permission per agentNeinav-pilot oversetter ikke MCP-verktøy og task.
Navs MCP-registerJa, GitHub håndheverJa, nav-pilot håndheverNeinav-pilot slår av servere utenfor registeret og avviser verktøyene deres.
Deling slått av, oppdateringer som varselIkke aktueltJa, i hver øktIkke aktuelt
Uten cplt (--no-sandbox, CI)JaJaNeiTier 2 krever fortsatt cplt.
Skyorkestrator med local-workerNeiJaNeiCopilot CLI kjører en økt helt lokalt eller helt i skyen, aldri blandet.
Stopper hovedagenten som redigerer selv (local_dispatch balanced og aggressive)NeiJaNei
Egen server (local_endpoint)Ja, hele øktenJaNei
autopilot, context_tier, ask_userJaNeiNeinav-pilot advarer ved oppstart, én advarsel per innstilling.
Utvidelser (extensions) for Copilot CLIJaNeiNei

En økt uten nav-pilots hooks har verken løkkevakt eller maskering av hemmeligheter og fødselsnumre. Det gjelder alltid pi, og opencode når du starter den med --pure eller uten nav-pilot.

Navs MCP-register

MCP-servere gir agenten verktøy utenfor klienten, for eksempel Playwright eller GitHub. Nav tillater bare servere som står i Navs MCP-register, lista over godkjente servere (se verktøykatalogen). Copilot CLI spør GitHub om policyen og kjører bare serverne registeret lister. opencode har ingen slik sjekk, så nav-pilot gjør den når den starter opencode:

  • nav-pilot leser MCP-serverne i opencode-konfigen din, i samme rekkefølge som opencode: den globale fila i ~/.config/opencode/, fila OPENCODE_CONFIG peker på, opencode.json og .opencode/opencode.json fra roten av repoet ned til katalogen du står i, ~/.opencode/, OPENCODE_CONFIG_DIR og OPENCODE_CONFIG_CONTENT.
  • Den spør GitHub med din gh-innlogging (gh api /copilot/mcp_registry) hvilket register policyen peker på, og henter lista derfra.
  • Hver server som er på og ikke står i registeret, slås av for økten med "enabled": false. En ekstern server må ha samme URL som i registeret. En lokal server må starte en pakke registeret lister, for eksempel npx @playwright/mcp.
  • Kobler du til en avslått server med /mcp i økten, blir verktøyene dens avvist likevel. Det gjør hooks-pluginen, så med --pure kan serveren kobles til og brukes. nav-pilot advarer om det ved oppstart.

MCP-oppføringene i opencode.json rører nav-pilot ikke, og opencode du starter uten nav-pilot, blir ikke berørt. Ved oppstart ser du hvilke servere som ble slått av:

⚠ 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

nav-pilot doctor viser det samme før du starter. Har du ingen MCP-servere, gjør nav-pilot ingen nettkall. Mangler gh, eller svarer ikke GitHub eller registeret, slår nav-pilot ingenting av. Da får du en advarsel, og serverne kjører som du har satt dem opp.

Få en server inn i registeret

Godkjente servere står i verktøykatalogen. Mangler serveren du trenger, legger du den til i apps/mcp-registry/allowlist.json i navikt/copilot og lager 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. Hvorfor den er påkrevd på Nav-utstyr, står i Sandkassen. Mangler cplt:

  • Copilot CLI og opencode: nav-pilot spør i terminalen om klienten skal starte uten sandkasse. Standardsvaret er nei. Med --no-sandbox starter den uten å spørre, med én advarsel. Uten terminal, for eksempel i CI, starter den bare med --no-sandbox.
  • pi starter ikke.
  • En agentpakke i Tier 2 starter ikke, uansett klient. Tier 2 vil si at pakka har ferdigbygde filer som nav-pilot sjekker mot en digest og låser den som én revisjon per bruker, se Hvilken tier.

opencode

  • nav-pilot legger AGENTS.md, skills, kommandoer og agenter i ~/.config/opencode/ og oppdaterer dem ved hver oppstart. Endrer du en av filene selv, lar nav-pilot den være. ~/.config/opencode/.nav-pilot-state.json holder rede på hva som er installert.
  • Velger du ikke modell selv, bruker nav-pilot standarden agentpakka oppgir. For agentpakka nav-pilot er det GPT-6 Sol. Oppgir pakka ingen, velger opencode. En Copilot-id uten prefiks får github-copilot/ foran.
  • nav-pilot setter opp OpenTelemetry for opencode, med mindre du har slått av telemetri.
  • nav-pilot export opencode skriver agentpakka til .opencode/ i repoet. Du trenger det ikke for å bruke opencode.

Testet versjon

nav-pilot er testet mot opencode >=1.18.20,<1.19. Er versjonen din utenfor, skriver nav-pilot en advarsel og starter likevel. Hooks, utsendingsstoppet og innstillingene nav-pilot setter per økt, virker da kanskje ikke som beskrevet her. nav-pilot doctor viser versjonen og om den er testet.

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. Oppdateringer kommer som varsel, så du ikke får en versjon utenfor det testede området midt i en økt. I tillegg setter nav-pilot "share": "disabled" i ~/.config/opencode/opencode.json når fila ikke sier noe om deling, så det gjelder også når du starter opencode selv. Det skjer når nav-pilot starter en agentpakke i Tier 1 og i oppsettet, ikke med Tier 2, som ikke rører opencode.json. Står det "auto" der, får du en advarsel.

Lokal utsending

Bare i opencode kan hovedagenten kjøre i skyen og sende avgrensede jobber til local-worker, en underagent på den lokale modellen. Hvor mye som sendes, styrer du med local_dispatch. På balanced og aggressive stopper nav-pilot hovedagenten når den redigerer for mange filer selv. Se Styr utsendingen.

Copilot CLI

mode = autopilot, context_tier, ask_user og utvidelser (extensions) finnes bare i Copilot CLI. Har du satt en av de tre innstillingene og bruker opencode, skriver nav-pilot én advarsel per innstilling. For utvidelser kommer ingen advarsel. I Copilot CLI tar en lokal modell hele økten, uten utsending, se Lokal modell på Mac.

For Copilot CLI henter nav-pilot 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 bestemmer hvilke kilder som slipper gjennom: env_only stopper oppstarten uten token i miljøet, og 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 skills og AGENTS.md til pi som flagg. Dette mangler:

  • Hooks: ingen maskering, ingen løkkevakt og ingen gates.
  • --agent: pi kan ikke bytte agent. Personaen blir en del av systemprompten, og tools: gjelder ikke.
  • Lokal modell: ingen utsending til local-worker, ingen local_dispatch og ingen local_endpoint.
  • Sjekk mot Navs MCP-register.
  • Start uten cplt. pi starter bare i sandkassen.
  • Innstillinger som ikke sendes videre, med en advarsel: mode, reasoning_effort, context_tier, allow_all_tools, ask_user og log_level.

Kjente hull i opencode

Hookene kjører i opencode 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.
  • nav-pilot sjekker ikke disse mot registeret: en server du legger til midt i økten og som ikke sto i konfigen ved oppstart, konfig fra en .well-known/opencode-adresse eller en organisasjon du har logget inn i, og administrerte innstillinger på macOS.

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

Sider i denne delen

  • Kommandoer, konfig og tabeller

    Kommandoene, avslutningskodene, konfignøklene, sikkerhetsnivåene, telemetrien, de lokale modellene og filene nav-pilot installerer.

Innhold på siden

  • Klientene
  • Hva hver klient kan
  • Navs MCP-register
  • Uten cplt
  • opencode
  • Copilot CLI
  • pi
  • Kjente hull i opencode