Hopp til innhold

For Goose-brukere

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

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.

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

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

Dette må du vite om Goose

Fire fakta som gjelder akkurat Goose.

// konfigurasjonsfil

config.yaml

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

// transport

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.

// nøkkel

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.

// verktøyfilter

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.

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

// workflow 01

Spor en feil tilbake til kilden

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.

// workflow 02

Sjekk avhengige før en refaktorering

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.

  1. // step 01

    Indekser et repo på maguyva.ai

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

  2. // step 02

    Legg Maguyva til i extensions i config.yaml

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

    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.