# Goose läuft mit Extensions. Füg eine hinzu, die dein Repo kennt.

Canonical source: https://maguyva.ai/de/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 erledigt seine Arbeit über Extensions, und jede Extension ist ein MCP-Server. Maguyva ist die, die deine Codebase indexiert, damit Goose fragt, wo etwas liegt, statt Verzeichnisse aufzulisten.

> .goosehints für die Arbeitsweise. Maguyva für das, was der Code jetzt sagt.

## Was du über Goose wissen musst

Vier Fakten speziell für Goose.

### config.yaml

Extensions stehen unter `extensions` in `~/.config/goose/config.yaml`. `goose configure` → Add Extension schreibt dieselbe Art Eintrag für dich.

### Eine Remote-Extension

Maguyva ist eine `streamable_http`-Extension, also verbindet sich Goose selbst mit dem Endpunkt: kein lokaler Prozess, kein Node.js. Die URL gehört in `uri`, nicht in `url`.

### headers

Goose sendet die `headers`-Map mit jeder Anfrage, also kommt der Schlüssel in den `Authorization`-Header. Goose kann ihn auch aus einer Umgebungsvariable füllen, die unter `env_keys` steht.

### available_tools

Eine Extension kann nur einen Teil ihrer Tools anbieten: Liste die gewünschten unter `available_tools` auf oder lass das Feld leer für alle.

## Goose-Hints sind eine Arbeitsvereinbarung. Nutz sie.

```text
# .goosehints
- Nutze pnpm, nicht npm.
- Führ die Integrationstests aus, bevor du eine Änderung für fertig erklärst.
```

Goose lädt standardmäßig `AGENTS.md` und `.goosehints`: globale Hints aus `~/.config/goose/.goosehints`, Projekt-Hints aus dem Repo und verschachtelte Dateien, sobald es in Unterordnern arbeitet. Hints brauchen die Developer-Extension. Sie sind der richtige Ort für:

- Tooling-Entscheidungen und Befehle.
- Konventionen, denen Goose folgen soll.
- Wo die Doku liegt.

Hints beschreiben das Projekt. Sie beantworten nicht “was hängt davon ab?”

## Wo Hints und die Shell an ihre Grenzen stoßen

Drei Lücken, die Goose mit Shell-Befehlen füllt, eine Datei nach der anderen.

### // ein Listing ist keine Karte

In einem unbekannten Repo orientiert sich Goose über Verzeichnislistings und Lesezugriffe. Jeder davon verbraucht Kontext, bevor die Aufgabe beginnt.

### // grep findet Strings, keine Aufrufer

Eine Textsuche kann einen echten Aufruf nicht von einem Kommentar, einem Mock oder einer gleichnamigen Methode unterscheiden.

### // Hints driften

Eine Hints-Datei aus dem letzten Quartal beschreibt das Layout des letzten Quartals. Goose folgt ihr trotzdem.

## Maguyva als Goose-Extension

Ein Eintrag unter extensions gibt Goose:

- **11 Tools für dein indexiertes Repo**: semantische, strukturelle (AST-), Graph- und Textsuche, plus Symbol-Lookup, Abhängige und Dateiabruf.
- **Antworten mit Dateipfaden und Zeilennummern**: über 285+ Sprachen.
- **Tools, die nur lesen**: Die Tools von Maguyva fragen den Index ab. Keines davon ändert deine Dateien.

> Hints sagen Goose, *wie es arbeiten soll*.
> Maguyva gibt Goose *eine Karte des Codes*.

## Zwei Workflows

Erst die Karte, dann Goose machen lassen.

### 01. Einen Bug bis zur Ursache verfolgen

```text
goose> warum enden manche Exporte mit null Zeilen?

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

→ Goose liest zwei Dateien, nicht das ganze export-Paket.
[exit 0]
```

Priorisierte Ergebnisse grenzen die Suche ein, bevor Goose eine Shell öffnet.

### 02. Abhängige vor einem Refactoring prüfen

```text
goose> teil die Klasse Notifier in E-Mail und SMS auf

dependency_search("Notifier", dependents)
  11 Referenzen in 5 Paketen

→ Der Plan deckt alle elf ab, bevor die erste Änderung kommt.
[exit 0]
```

Goose bekommt die vollständige Liste der Abhängigen mit einem Aufruf statt einer Kette von greps.

## Einrichtung in Goose

Drei Schritte. Free-Stufe: 3 Repositories, Bis zu 50K indexierte Repo-Zeilen, keine Kreditkarte.

### 01. Ein Repo auf maguyva.ai indexieren

Wähl eins, das du schon kennst, damit du die Antworten bewerten kannst.

### 02. Maguyva zu extensions in config.yaml hinzufügen

`~/.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. Platzhalter ersetzen und eine Session starten

Ersetz `mgv_xxxx` durch deinen API-Schlüssel, starte `goose session` und stell eine Frage, deren Antwort du schon kennst. YAML reagiert auf Einrückung: Leerzeichen statt Tabs.

Die [Extension-Doku](https://goose-docs.ai/docs/getting-started/using-extensions/) von Goose erklärt Remote-Extensions, Timeouts und Tool-Filter.

## Indexiere ein Repo, das du schon kennst.

Verbinde Goose über MCP und stell eine Frage, die du überprüfen kannst.
