Zum Inhalt springen

Für Goose-Nutzer

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

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.

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

.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.

// Konfigurationsdatei

config.yaml

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

// Transport

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.

// Schlüssel

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.

// Tool-Filter

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.

# .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.

// workflow 01

Einen Bug bis zur Ursache verfolgen

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.

// workflow 02

Abhängige vor einem Refactoring prüfen

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.

  1. // step 01

    Ein Repo auf maguyva.ai indexieren

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

  2. // step 02

    Maguyva zu extensions in config.yaml hinzufügen

    ~/.config/goose/config.yaml

    extensions:
      maguyva:
        name: maguyva
        type: streamable_http
        uri: https://maguyva.tools/mcp
        enabled: true
        headers:
          Authorization: Bearer mgv_xxxx
        timeout: 300
    
  3. // step 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.