# Goose draait op extensies. Voeg er een toe die je repo kent.

Canonical source: https://maguyva.ai/nl/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 doet zijn werk via extensies, en elke extensie is een MCP-server. Maguyva is degene die je codebase indexeert, zodat Goose vraagt waar dingen staan in plaats van mappen op te sommen.

> .goosehints voor hoe je werkt. Maguyva voor wat de code nu zegt.

## Wat je over Goose moet weten

Vier feiten die specifiek zijn voor Goose.

### config.yaml

Extensies staan onder `extensions` in `~/.config/goose/config.yaml`. `goose configure` → Add Extension schrijft hetzelfde soort entry voor je.

### Een externe extensie

Maguyva is een `streamable_http`-extensie, dus Goose maakt zelf verbinding met het endpoint: geen lokaal proces, geen Node.js. De URL staat in `uri`, niet in `url`.

### headers

Goose stuurt de `headers`-map mee met elk verzoek, dus de sleutel gaat in de `Authorization`-header. Goose kan hem ook vullen vanuit een omgevingsvariabele die onder `env_keys` staat.

### available_tools

Een extensie kan een deel van haar tools beschikbaar stellen: zet de tools die je wilt onder `available_tools`, of laat het leeg voor allemaal.

## Goose-hints zijn een werkafspraak. Gebruik ze.

```text
# .goosehints
- Gebruik pnpm, niet npm.
- Draai de integratietests voordat je een wijziging klaar noemt.
```

Goose laadt standaard `AGENTS.md` en `.goosehints`: globale hints uit `~/.config/goose/.goosehints`, projecthints uit de repo en geneste bestanden zodra het in submappen werkt. Hints vereisen de Developer-extensie. Ze zijn de juiste plek voor:

- Toolingkeuzes en commando’s.
- Conventies die Goose moet volgen.
- Waar de documentatie staat.

Hints beschrijven het project. Ze beantwoorden niet “wat hangt hiervan af?”

## Waar hints en de shell tekortschieten

Drie gaten die Goose vult met shellcommando’s, bestand voor bestand.

### // een lijst is geen kaart

In een onbekende repo oriënteert Goose zich met maplijsten en leesacties. Elk daarvan kost context voordat de taak begint.

### // grep vindt strings, geen aanroepers

Tekstzoeken kan een echte aanroep niet onderscheiden van een comment, een mock of een methode met dezelfde naam.

### // hints lopen achter

Een hintsbestand van vorig kwartaal beschrijft de indeling van vorig kwartaal. Goose volgt het toch.

## Maguyva als Goose-extensie

Eén extensions-entry geeft Goose:

- **11 tools voor je geïndexeerde repo**: semantisch, structureel (AST-), graaf- en tekstzoeken, plus symbolen opzoeken, afhankelijken en bestanden ophalen.
- **Antwoorden met bestandspaden en regelnummers**: over meer dan 285 talen.
- **Tools die alleen lezen**: De tools van Maguyva bevragen de index. Geen ervan bewerkt je bestanden.

> Hints vertellen Goose *hoe het moet werken*.
> Maguyva geeft Goose *een kaart van de code*.

## Twee workflows

Eerst de kaart, dan laat je Goose draaien.

### 01. Volg een bug terug naar de bron

```text
goose> waarom eindigen sommige exports met nul rijen?

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

→ Goose leest twee bestanden, niet het hele export-pakket.
[exit 0]
```

Gerangschikte resultaten versmallen de zoektocht voordat Goose een shell opent.

### 02. Controleer afhankelijken vóór een refactor

```text
goose> splits de klasse Notifier op in e-mail en sms

dependency_search("Notifier", dependents)
  11 verwijzingen in 5 pakketten

→ Het plan dekt alle elf af vóór de eerste bewerking.
[exit 0]
```

Goose krijgt de volledige lijst afhankelijken in één aanroep in plaats van een reeks greps.

## Instellen in Goose

Drie stappen. Free-abonnement: 3 repositories, Tot 50K geïndexeerde repo-regels, geen creditcard nodig.

### 01. Indexeer een repo op maguyva.ai

Kies er een die je al kent, zodat je de antwoorden kunt beoordelen.

### 02. Voeg Maguyva toe aan extensions in 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. Vervang de placeholder en start een sessie

Vervang `mgv_xxxx` door je API-sleutel, start `goose session` en stel één vraag waarvan je het antwoord al weet. YAML is gevoelig voor inspringing: spaties, geen tabs.

De [extensiedocumentatie](https://goose-docs.ai/docs/getting-started/using-extensions/) van Goose behandelt remote extensies, timeouts en toolfilters.

## Indexeer één repo die je al kent.

Verbind Goose via MCP en stel één vraag die je kunt controleren.
