# Goose går på utvidelser. Legg til en som kjenner repoet ditt.

Canonical source: https://maguyva.ai/nb/for-goose

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Goose gjør jobben gjennom utvidelser, og hver utvidelse er en MCP-server. Maguyva er den som indekserer kodebasen din, så Goose spør hvor ting ligger i stedet for å liste mapper.

> .goosehints for hvordan du jobber. Maguyva for hva koden sier nå.

## Dette må du vite om Goose

Fire fakta som gjelder akkurat Goose.

### config.yaml

Utvidelser ligger under `extensions` i `~/.config/goose/config.yaml`. `goose configure` → Add Extension skriver samme type oppføring for deg.

### En ekstern utvidelse

Maguyva er en `streamable_http`-utvidelse, så Goose kobler seg selv til endepunktet: ingen lokal prosess, ingen Node.js. URL-en står i `uri`, ikke i `url`.

### headers

Goose sender `headers`-kartet med hver forespørsel, så nøkkelen går i `Authorization`-headeren. Goose kan også fylle den fra en miljøvariabel som står under `env_keys`.

### available_tools

En utvidelse kan eksponere bare noen av verktøyene sine: list dem du vil ha under `available_tools`, eller la feltet stå tomt for alle.

## Goose-hint er en samarbeidsavtale. Bruk dem.

```text
# .goosehints
- Bruk pnpm, ikke npm.
- Kjør integrasjonstestene før du kaller en endring ferdig.
```

Goose laster som standard inn `AGENTS.md` og `.goosehints`: globale hint fra `~/.config/goose/.goosehints`, prosjekthint fra repoet og nestede filer når det jobber i undermapper. Hint krever utvidelsen Developer. De er rett sted for:

- Verktøyvalg og kommandoer.
- Konvensjoner Goose skal følge.
- Hvor dokumentasjonen ligger.

Hint beskriver prosjektet. De svarer ikke på “hva avhenger av dette?”

## Der hint og skallet kommer til kort

Tre hull Goose fyller med skallkommandoer, én fil om gangen.

### // en liste er ikke et kart

I et ukjent repo orienterer Goose seg med mappelister og fillesinger. Hver av dem bruker kontekst før oppgaven i det hele tatt starter.

### // grep finner strenger, ikke kallere

Et tekstsøk kan ikke skille et ekte kall fra en kommentar, en mock eller en metode med samme navn.

### // hint henger etter

En hintfil skrevet forrige kvartal beskriver forrige kvartals oppsett. Goose følger den likevel.

## Maguyva som Goose-utvidelse

Én oppføring under extensions gir Goose:

- **11 verktøy for det indekserte repoet ditt**: semantisk, strukturelt (AST-), graf- og tekstsøk, pluss symboloppslag, avhengige og filhenting.
- **Svar med filstier og linjenumre**: på tvers av over 285 språk.
- **Verktøy som bare leser**: Maguyvas verktøy spør indeksen. Ingen av dem redigerer filene dine.

> Hint forteller Goose *hvordan det skal jobbe*.
> Maguyva gir Goose *et kart over koden*.

## To arbeidsflyter

Kartet først, så får Goose kjøre.

### 01. Spor en feil tilbake til kilden

```text
goose> hvorfor ender noen eksporter med null rader?

semantic_search("export job empty result")
  src/export/runner.ts:118   flushBatch()
  src/export/filters.ts:40   applyTenantFilter()

→ Goose leser to filer, ikke hele export-pakken.
[exit 0]
```

Rangerte resultater snevrer inn søket før Goose åpner et skall.

### 02. Sjekk avhengige før en refaktorering

```text
goose> del klassen Notifier opp i e-post og SMS

dependency_search("Notifier", dependents)
  11 referanser i 5 pakker

→ Planen dekker alle elleve før første redigering.
[exit 0]
```

Goose får hele listen over avhengige i ett kall i stedet for en kjede av grep.

## Oppsett i Goose

Tre steg. Free-planen: 3 repoer, Opptil 50K indekserte kodelinjer, uten kredittkort.

### 01. Indekser et repo på maguyva.ai

Velg ett du allerede kjenner, så du kan vurdere svarene.

### 02. Legg Maguyva til i extensions i config.yaml

`~/.config/goose/config.yaml`

```yaml
extensions:
  maguyva:
    name: maguyva
    type: streamable_http
    uri: https://maguyva.tools/mcp
    enabled: true
    headers:
      Authorization: Bearer mgv_xxxx
    timeout: 300

```

### 03. Bytt ut plassholderen og start en økt

Bytt ut `mgv_xxxx` med API-nøkkelen din, kjør `goose session`, og still ett spørsmål du allerede vet svaret på. YAML er følsomt for innrykk: bruk mellomrom, ikke tabulatorer.

[Utvidelsesdokumentasjonen](https://goose-docs.ai/docs/getting-started/using-extensions/) til Goose dekker eksterne utvidelser, tidsavbrudd og verktøyfiltre.

## Indekser ett repo du allerede kjenner.

Koble Goose til over MCP, og still ett spørsmål du kan sjekke.
