Alt du trenger for å komme i gang med nav-pilot.
Fra null til fungerende nav-pilot på 5 minutter.
brew install navikt/tap/nav-pilot
cd /path/to/your/repo nav-pilot
Du kan bruke nav-pilot på tre måter — velg den som passer deg best:
copilot --agent nav-pilot --prompt "Jeg trenger en ny tjeneste som behandler dagpengesøknader"
@nav-pilot Jeg trenger en ny tjeneste som behandler dagpengesøknader
nav-pilot
Starter interaktiv modus — sjekker oppdateringer og tilbyr å starte Copilot med valgt agent.
Du kan også installere agenter, skills og instruksjoner til hjemmemappen. De blir da tilgjengelige i alle repoer uten å endre hvert enkelt.
nav-pilot install --user
Filene installeres til ~/.copilot/. Agenter og skills plukkes opp automatisk av GitHub Copilot. Instruksjoner krever COPILOT_CUSTOM_INSTRUCTIONS_DIRS og fungerer kun med Copilot CLI — nav-pilot setter denne automatisk i interaktiv modus. OpenCode mottar Nav-kontekst på en annen måte — se OpenCode.
Når nye komponenter dukker opp i kilden, varsler nav-pilot om det ved oppstart. Vil du ikke installere en bestemt komponent, stopper du varselet med:
nav-pilot ignore instruction nextjs-aksel --user
For direkte bruk av cplt, legg til i shell-profilen:
eval "$(nav-pilot env)"
Trenger du full kommandoreferanse? Gå til CLI-referanse. Her i «Kom i gang» holder vi kun minimumsstegene.
Du trenger ikke huske skill-navn. Bare beskriv oppgaven — nav-pilot bruker riktig kunnskap automatisk. Her er eksempler:
| Oppgave | Eksempel-prompt |
|---|---|
| Bygge ny tjeneste | «Jeg trenger en ny tjeneste for dagpenger» |
| Legge til autentisering | «Legg til TokenX-validering i API-et» |
| Debugge deploy | «Poden min krasjer i dev, hjelp meg feilsøke» |
| Gjennomgå før PR | «Gjør en sikkerhetsgjennomgang av disse endringene» |
| Sette opp Kafka | «Vi trenger en Kafka-consumer for vedtakshendelser» |
| Legge til observerbarhet | «Sett opp metrikker og tracing for tjenesten» |
| Migrere Java → Kotlin | «Hjelp meg migrere denne klassen til Kotlin» |
| Få kortere svar | «$terse-mode» |
| Planlegge arkitektur | «Planlegg arkitekturen for nytt saksbehandlersystem» |
nav-pilot kan starte ulike kodingsagent-klienter. Du velger klient via flagg eller konfigurasjonsfil, og tilpasser oppførsel med én felles fil: ~/.nav-pilot/config.toml.
Velg klient med --client-flagget eller client-nøkkelen i konfigurasjonsfilen.
copilotStandardGitHub Copilot / cplt-sandkassen. Fungerer med VS Code, JetBrains og GitHub.com.
opencodeFørste klasseOpenCode terminal-klient. Nav-kontekst leveres og holdes oppdatert automatisk.
piReservertIkke støttet ennå — nav-pilot returnerer feilmelding om du velger denne.
nav-pilot --client opencode
client = "opencode"
OpenCode er en første klasse-klient i nav-pilot. Når du starter med --client opencode, leverer nav-pilot Nav-kontekst (AGENTS.md, skills, kommandoer og agenter) direkte til ~/.config/opencode/ og holder det oppdatert ved hver kjøring.
Nav-kontekst materialiseres til ~/.config/opencode/ og holdes fersk med konfliktsdeteksjon — dine egne redigeringer overskrives ikke.
Når ingen modell er konfigurert, settes anthropic/claude-sonnet-4-5 som Nav-standard for opencode.
OpenTelemetry-konfigurasjon settes opp automatisk — ingen manuell konfigurasjon nødvendig.
~/.config/opencode/.nav-pilot-state.json sporer installerte filer og versjon, slik at sync vet hva som er endret.
nav-pilot export opencode finnes fortsatt for manuell engangseksport, men trengs ikke i den normale flyten — nav-pilot håndterer dette automatisk når du bruker --client opencode.
Merk: Noen konfigurasjonsnøkler (mode=autopilot, context_tier, ask_user) gjelder kun GitHub Copilot. nav-pilot skriver én advarsel hvis disse er eksplisitt satt og du bruker opencode.
nav-pilot leser brukerens konfigurasjon fra ~/.nav-pilot/config.toml. Det finnes ingen repo-lokal konfigurasjon. Prioritetsrekkefølge: CLI-flagg › config.toml › innebygd standard.
nav-pilot config init
nav-pilot config setup
nav-pilot config show
# Klient (copilot er standard) client = "opencode" # Modell (format avhenger av klient) model = "anthropic/claude-sonnet-4-5" # Modus (default | plan | autopilot) — kun Copilot # mode = "default" # Resonneringsinnsats (none|low|medium|high|xhigh|max) reasoning_effort = "high" # Loggnivå # log_level = "info"
Alle nøkler kan overstyres med tilsvarende CLI-flagg. Flagg har alltid høyest prioritet.
| Nøkkel | CLI-flagg | Tillatte verdier | Beskrivelse |
|---|---|---|---|
client | --client | copilot · opencode · pi | Klient å starte. copilot er standard; pi er reservert og støttes ikke ennå. |
model | --model | f.eks. claude-opus-4.8, gpt-5.5 (Copilot); anthropic/claude-sonnet-4-5 (opencode) | Modell å bruke. Format avhenger av klient. |
mode | --mode | default · plan · autopilot | Modus for Copilot-agenten. plan tilsvarer opencode --agent plan; autopilot og øvrige er kun Copilot. |
reasoning_effort | --effort | none · low · medium · high · xhigh · max | Resonneringsinnsats. Fungerer for begge klienter: Copilot bruker --effort, opencode bruker --variant. |
context_tier | --context | default · long_context | Kontekstnivå. Kun Copilot — nav-pilot advarer om feltet er satt for opencode. |
allow_all_tools | --allow-all-tools / --no-allow-all-tools | bool | Gi agenten tilgang til alle tilgjengelige verktøy. |
ask_user | --ask-user / --no-ask-user | bool | Be om bekreftelse på beslutninger. Kun Copilot — nav-pilot advarer om feltet er satt for opencode. |
log_level | --log-level | none · error · warning · info · debug | Loggnivå for nav-pilot CLI. |
otel_log_level | --otel-log-level | none · error · warning · info · debug | Loggnivå for OpenTelemetry-eksport. |
Collections er ferdigpakkede sett med agenter, skills, instruksjoner og prompts organisert etter team-arketype. Velg din stack og få en komplett, testet pakke.
| Collection | Beskrivelse | Agenter | Skills | Best for |
|---|---|---|---|---|
kotlin-backend | Kotlin/Ktor og Spring Boot på Nais | 4 | 24 | Backend-API-er og hendelseskonsumenter |
frontend | Rammeverk-uavhengig frontend (Astro, Remix, Vite …) | 5 | 12 | Frontends som ikke bruker Next.js |
nextjs-frontend | Next.js med Aksel Design System | 5 | 12 | Innbygger- og saksbehandler-frontends |
fullstack | Komplett stack (backend + frontend) | 7 | 28 | Team som eier hele stacken |
platform | Nais, observability, sikkerhet og Go | 4 | 15 | Plattform- og DevOps-team |
Hver collection inneholder også planning skills, instruksjoner og prompts:
kotlin-backend— Kotlin/Ktor og Spring Boot på Naiscode-reviewresearchsecurity-championnav-pilotapi-designconventional-commitflyway-migrationjava-to-kotlinkafkakotlin-app-configktor-scaffoldnaisnav-authobservability-setupobservability-debuggingpostgresql-reviewreadme-reviewsecurity-reviewsecurity-owaspspring-boot-scaffoldterse-modethreat-modeltokenx-authworkstation-securitynav-plannav-deep-interviewnav-architecture-reviewnav-troubleshootcode-reviewdeliberate-ai-usekotlin-ktorkotlin-springtestingtesting-kotlingithub-actionsdockerdatabasesecurity-owaspktor-endpointspring-boot-endpointkafka-topicnais-manifestfrontend— Rammeverk-uavhengig frontend (Astro, Remix, Vite …)accessibilityakselcode-reviewforfatternav-pilotaksel-builderconventional-commitplaywright-testingreadme-reviewterse-modeweb-design-reviewernav-dekoratorennav-plannav-deep-interviewnav-architecture-reviewnav-troubleshootsecurity-owaspcode-reviewdeliberate-ai-usenorwegian-texttestingtesting-typescriptaccessibilitygithub-actionsdockersecurity-owaspaksel-componentnais-manifestnextjs-frontend— Next.js med Aksel Design Systemaccessibilityakselcode-reviewforfatternav-pilotaksel-builderconventional-commitplaywright-testingreadme-reviewterse-modeweb-design-reviewernav-dekoratorennav-plannav-deep-interviewnav-architecture-reviewnav-troubleshootsecurity-owaspcode-reviewdeliberate-ai-usenextjs-akselnorwegian-textperformancetestingtesting-typescriptaccessibilitygithub-actionsdockersecurity-owaspaksel-componentnextjs-api-routenais-manifestfullstack— Komplett stack (backend + frontend)accessibilityakselcode-reviewforfatterresearchsecurity-championnav-pilotaksel-builderapi-designconventional-commitflyway-migrationjava-to-kotlinkafkakotlin-app-configktor-scaffoldnaisnav-authobservability-setupobservability-debuggingplaywright-testingpostgresql-reviewreadme-reviewsecurity-reviewsecurity-owaspspring-boot-scaffoldterse-modethreat-modeltokenx-authweb-design-reviewernav-dekoratorenworkstation-securitynav-plannav-deep-interviewnav-architecture-reviewnav-troubleshootcode-reviewdeliberate-ai-usekotlin-ktorkotlin-springgolangnextjs-akselnorwegian-textperformancetestingtesting-kotlintesting-typescriptaccessibilitygithub-actionsdockerdatabasesecurity-owaspktor-endpointspring-boot-endpointkafka-topicnais-manifestaksel-componentnextjs-api-routegolang-serviceplatform— Nais, observability, sikkerhet og Gocode-reviewresearchsecurity-championnav-pilotconventional-commitnaisobservability-setupobservability-debuggingreadme-reviewrust-developmentsecurity-reviewsecurity-owaspterse-modethreat-modelworkstation-securitynav-plannav-deep-interviewnav-architecture-reviewnav-troubleshootcode-reviewdeliberate-ai-usegolangtestinggithub-actionsdockersecurity-owaspgolang-servicenais-manifestAlle collections inkluderer fire planning skills som utgjør nav-pilot-pipelinen:
| Skill | Formål |
|---|---|
$nav-deep-interview | Strukturert intervju som avdekker blindsoner (personvern, auth, avhengigheter) |
$nav-plan | Arkitekturbeslutningstrær → konkret Nais-manifest, CI/CD og prosjektstruktur |
$nav-architecture-review | Flerperspektiv-review → Architecture Decision Record (ADR) |
$nav-troubleshoot | Diagnostiske trær for vanlige Nav-plattformproblemer |
nav-pilot jobber i fire faser med eksplisitte stopp mellom hver. Du bestemmer når du går videre — nav-pilot foreslår, du godkjenner.
| Skill | Formål | Dekker |
|---|---|---|
$nav-deep-interview | Strukturert intervju som avdekker blindsoner (personvern, auth, avhengigheter) | Personvern og dataPlattform og authObserverbarhetTeam og prosess data-classification.md, blind-spots.md (25+ vanlige blindsoner fra ekte Nav-repoer) |
$nav-plan | Arkitekturbeslutningstrær → konkret Nais-manifest, CI/CD og prosjektstruktur | Auth-beslutningstreKommunikasjonstreDatabase-treaccessPolicy-tre decision-trees.md, nais-templates.md (5 arketyper) |
$nav-architecture-review | Flerperspektiv-review → Architecture Decision Record (ADR) | ArkitekturSikkerhetPlattform adr-template.md, nav-principles.md (Team First, essensiell kompleksitet, DORA) |
$nav-troubleshoot | Diagnostiske trær for vanlige Nav-plattformproblemer | Pod krasjer (CrashLoopBackOff)401/403Kafka consumer lagDB-tilkobling feilerTreg responstidDeploy feiler diagnostic-trees.md |
Flere studier dokumenterer at passiv bruk av kodegenerering svekker utvikleres forståelse av egen kode. I Anthropics RCT (2026) scora utviklere som delegerte blindt 35–39 % på kodeforståelse, mot 86 % for de som aktivt stilte spørsmål etter generering. Navs egen longitudinalstudie (Stray et al., HICSS-59 2026) bekrefter mønsteret internt.
Samtidig viser MIT/Microsoft-studien (2025, ~5000 utviklere) at AI-assistanse gir størst produktivitetsgevinst på repetitive oppgaver. Gevinsten forsvinner — og kan bli negativ — på oppgaver som krever dyp forståelse av domenet.
nav-pilot implementerer dette skillet: oppgaver klassifiseres i grønn sone (AI genererer full kode) og rød sone (utvikleren skriver kjernelogikken selv). Klassifiseringen skjer i Fase 2 og håndheves i Fase 4.
Når nav-pilot identifiserer rød-sone-logikk i Fase 2 (Plan), leverer Fase 4 bare testskjeletter og kode-stubs med TODO-kommentarer — ikke full implementasjon. Du skriver kjernelogikken selv for å bygge dyp forståelse.
Her ser du nav-pilot planlegge en ny beregningsregel for sykepenger (§8-20). Legg merke til hvordan den skiller mellom grønn sone (plumbing-kode) og rød sone (regelverkslogikk):

Basert på forskning fra Anthropic, METR og Nav ITs egen studie.
Copilot-tilpasninger i navikt/copilot oppdateres jevnlig. Hold repoet ditt oppdatert med automatisk sync eller lokale kommandoer.
GitHub Actions-workflow som åpner PR-er automatisk — som Dependabot, men for Copilot-tilpasninger. PR-en viser hvilke filer som er oppdaterte, med lenker til kilderepoet.
name: Copilot Customization Sync
on:
schedule:
- cron: '0 7 * * 1' # Mandager kl 07:00
workflow_dispatch:
jobs:
sync:
uses: navikt/copilot/.github/workflows/copilot-customization-sync.yml@main
permissions:
contents: write
pull-requests: writeBruk CLI-verktøyet for å sjekke og oppdatere filer lokalt. Sammenligner SHA-256-hasher mellom lokale filer og kilderepoet.
nav-pilot sync
nav-pilot sync --apply
nav-pilot sync --json
State-baserte repoer (brukte nav-pilot install): state-filen sporer nøyaktig hvilke filer som ble installert.
Klassiske repoer (kopierte filer manuelt): nav-pilot auto-oppdager filer som også finnes i kilderepoet:
.github/agents/*.agent.md.github/instructions/*.instructions.md.github/prompts/*.prompt.md.github/skills/*/ (hele kataloger)AGENTS.md og .github/copilot-instructions.md oppdateres aldri automatisk — de er alltid repo-spesifikke.
Trenger du å fjerne rammeverk-spesifikke filer (f.eks. Next.js-instruksjoner i et Astro-prosjekt)? Opprett .github/copilot-sync.json med overrides:
{
"overrides": [
".github/instructions/nextjs-aksel.instructions.md",
".github/instructions/performance.instructions.md",
".github/prompts/nextjs-api-route.prompt.md"
]
}Filer i overrides hoppes helt over under sync — ingen hash-sammenligning, ingen PR-diff. Du kan trygt slette filene etterpå, og de blir ikke lagt til igjen. Alternativt kan du installere frontend-collectionet som allerede utelater Next.js-spesifikke filer.
Sletter du en fil manuelt uten override, markeres den som «ignorert» og gjenopprettes ikke av sync. Legg den til igjen med nav-pilot install hvis du ombestemmer deg.
Har teamet en egen versjon av en fil med samme navn som kilden (f.eks. en egen kotlin-app-config skill), vil sync prøve å overskrive den. Bruk overrides for å beskytte filen. Filer med navn som ikke finnes i kilden blir aldri berørt av sync.
Nei. Workflowen bruker standard GITHUB_TOKEN og leser offentlige kildefiler.
PR-en viser diff. Du kan gjennomgå, merge selektivt, eller lukke den. Workflowen tvinger aldri oppdateringer.
Ja. Kjør nav-pilot sync for å sjekke, eller nav-pilot sync --apply for å oppdatere direkte.
Samme konsept — automatiske oppdaterings-PR-er — men for Copilot-tilpasningsfiler. Sammenligner SHA-256-hasher i stedet for semantisk versjonering.
Filen markeres som «ignorert» og legges ikke tilbake ved neste sync. Vil du ha den tilbake, kjør nav-pilot install <name>.
Kjør nav-pilot ignore <type> <name> --user. nav-pilot merker komponenten som ignorert og varsler ikke om den igjen.
Ja. Opprett .github/copilot-sync.json med overrides, eller installer frontend-collectionet som allerede utelater Next.js-spesifikke filer.
Sync sammenligner hasher og foreslår å overskrive den med kildens versjon. Legg filen i overrides for å beskytte den. Filer med navn som ikke finnes i kilden ignoreres helt.
nav-pilot gir teamet et godt utgangspunkt, men repoet ditt trenger ofte egne regler og egen kontekst. Her er de fire mekanismene du bruker for å tilpasse installasjonen uten å miste kontrollen.
Legg egne filer i .github/instructions/ ved siden av det nav-pilot installerer. nav-pilot berører aldri filer det ikke selv har installert, så teamet kan trygt legge inn egne konvensjoner her.
.github/instructions/ golang.instructions.md ← installed by nav-pilot security-owasp.instructions.md ← installed by nav-pilot team-conventions.instructions.md ← your team's own file
Vil dere eie en fil som nav-pilot vanligvis oppdaterer, legger dere den i .github/copilot-sync.json. Filer i overrides hoppes over under nav-pilot sync, så teamets versjon blir stående.
{
"overrides": [
".github/instructions/golang.instructions.md"
]
}Bruker du installasjon på brukernivå, kan du undertrykke enkeltkomponenter du ikke vil ha varsler om. nav-pilot ignore er bare for --user-installasjoner.
nav-pilot ignore agent rust-agent --user
nav-pilot ignore skill rust-development --user
Velg mekanisme etter behov: egne instruksjoner for nye regler, initfor prosjektkontekst, overrides når dere vil eie en installert fil, og ignore for brukerinstallerte komponenter dere ikke trenger.
nav-pilot er et rent installasjonsverktøy skrevet i Go uten avhengigheter. All AI-funksjonalitet ligger i markdown-filer som kjøres av GitHub Copilot.
brew install navikt/tap/nav-pilot
nav-pilot sjekker automatisk om det finnes en nyere versjon ved oppstart. Du kan oppgradere på to måter:
Selvoppdatering
nav-pilot upgrade
Via Homebrew
brew update && brew upgrade nav-pilot
Hvis brew upgrade sier at nav-pilot allerede er oppdatert men versjonen er gammel, skyldes det at den lokale tap-cachen ikke er oppdatert. Kjør brew update først. Dersom det feiler med tilgangsfeil:
sudo chown -R $(whoami) /opt/homebrew brew update && brew upgrade nav-pilot
| Kommando | Beskrivelse |
|---|---|
nav-pilot | Interaktivt: installer, oppgrader eller start Copilot-sandkassen (cplt) |
nav-pilot --client opencode | Start OpenCode-sesjonen med Nav-kontekst levert automatisk |
nav-pilot install <collection> | Installer en collection i repoet ditt |
nav-pilot install --user | Installer agenter, skills og instruksjoner til ~/.copilot (alle repoer) |
nav-pilot install --dry-run <collection> | Forhåndsvis hva som installeres |
nav-pilot install --force <collection> | Overskriv lokalt endrede filer |
nav-pilot list | Vis tilgjengelige collections og enkeltkomponenter |
nav-pilot list --installed | Vis installerte filer og integritet |
nav-pilot doctor | Kjør helsesjekk av systemet og miljøet |
nav-pilot install <name> | Installer enkeltkomponent (agent, skill, etc.) |
nav-pilot install <name> --type <type> | Installer med eksplisitt type (agent, skill, instruction, prompt) |
nav-pilot ignore <type> <name> --user | Stopp varsel om en komponent uten å installere den |
nav-pilot uninstall | Fjern alle installerte filer |
nav-pilot sync | Sjekk om oppdateringer finnes (exit 1 hvis ja) |
nav-pilot sync --apply | Oppdater filer direkte |
nav-pilot sync --json | Maskinlesbar JSON-output |
<command> --json | Globalt flagg: JSON-output på alle kommandoer (install, list, sync, export) |
nav-pilot env | Skriv shell-eksport for Copilot CLI-integrasjon |
nav-pilot upgrade | Oppdater nav-pilot CLI til nyeste versjon |
nav-pilot feedback | Rapporter feil — åpner GitHub issue med diagnostikk |
nav-pilot feedback --feature | Foreslå ny funksjon |
nav-pilot export opencode | Eksporter til .opencode/-format (OpenCode / oh-my-openagent) |
nav-pilot export opencode --user | Eksporter til ~/.config/opencode/ (globalt) |
nav-pilot config init | Opprett ~/.nav-pilot/config.toml med alle valg kommentert ut |
nav-pilot config setup | Interaktiv konfigurasjonsveileder (klient, modell, modus) |
nav-pilot config show | Vis effektiv konfigurasjon (fil + standardverdier) |
nav-pilot config get <key> | Hent én konfigurasjonsverdi |
nav-pilot config set <key> <value> | Sett én konfigurasjonsverdi |
nav-pilot config validate | Valider konfigurasjonsfilen |
nav-pilot export opencode --dry-run | Forhåndsvis hva som eksporteres |
nav-pilot version | Vis versjonsinformasjon |
Se hva som installeres
nav-pilot install --dry-run kotlin-backend
Installer
nav-pilot install kotlin-backend
Installer i annet repo
nav-pilot install --target /path/to/repo kotlin-backend
Overskriv lokalt endrede filer
nav-pilot install --force kotlin-backend
Eksporter til OpenCode-format
nav-pilot export opencode
Eksporter globalt (alle repoer)
nav-pilot export opencode --user
Forhåndsvis hva som eksporteres
nav-pilot export opencode --dry-run
JSON-output for alle kommandoer
nav-pilot list --installed --json | jq .
Sjekk oppdateringer i CI (exit 1 = oppdateringer finnes)
nav-pilot sync --json
Installer i CI med JSON-resultat
nav-pilot install --json kotlin-backend
Exit-koder: 0 = suksess, 1 = feil eller oppdateringer tilgjengelig (sync), 2 = sync-sjekk feilet. --json fungerer på install, add, status, sync, list og export.
nav-pilot installerer markdown-filer i repoet ditt. GitHub Copilot leser filene og tilpasser forslagene sine automatisk. Klikk på filene under for å se hva de gjør.
Dette er filene som installeres i .github/-mappen din. Klikk for detaljer.
.github/
Definerer @nav-pilot sin persona, hvilke skills den bruker, og hvordan den delegerer til andre agenter. Copilot leser denne filen når du skriver @nav-pilot i chatten.
Aktiveres: Når du skriver @nav-pilot i Copilot Chat
Flyten fra installasjon til daglig bruk er dekket i Kom i gang og CLI-referanse. Denne seksjonen viser kun filstrukturen.
nav-pilot er bygget på tre lag:
Alltid aktive — Nav-mønstre, kodestandarder, anti-patterns. Hver Copilot-sesjon er Nav-bevisst automatisk.
Én inngangsport — ruter til riktig fase og skill. Delegerer til @auth, @nais, @kafka, @security-champion.
Byggeklosser — intervju, plan, review, feilsøking. Brukes via @nav-pilot eller alene.
Institusjonell kunnskap er varig — orkestrering blir standardvare.
Lett agent som delegerer. Skills har beslutningstrær og sjekklister.
nav-pilot foreslår, du godkjenner, nav-pilot fortsetter.
«Hva bygger du?» bestemmer stack, auth og Nais-konfig.
Go-binær uten avhengigheter. All AI kjøres av Copilot.