# Goose tourne grâce aux extensions. Ajoutez-en une qui connaît votre dépôt.

Canonical source: https://maguyva.ai/fr/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 travaille au moyen d’extensions, et chaque extension est un serveur MCP. Maguyva est celle qui indexe votre base de code : Goose demande où se trouvent les choses au lieu de lister des répertoires.

> .goosehints pour la façon de travailler. Maguyva pour ce que dit le code aujourd’hui.

## Ce qu’il faut savoir sur Goose

Quatre faits propres à Goose.

### config.yaml

Les extensions se placent sous `extensions` dans `~/.config/goose/config.yaml`. `goose configure` → Add Extension écrit le même genre d’entrée pour vous.

### Une extension distante

Maguyva est une extension `streamable_http` : Goose se connecte lui-même au point de terminaison, sans processus local ni Node.js. L’URL va dans `uri`, pas dans `url`.

### headers

Goose envoie la table `headers` à chaque requête : la clé va donc dans l’en-tête `Authorization`. Goose peut aussi la remplir depuis une variable d’environnement listée sous `env_keys`.

### available_tools

Une extension peut n’exposer qu’une partie de ses outils : listez ceux que vous voulez sous `available_tools`, ou laissez vide pour tous.

## Les hints de Goose sont un accord de travail. Utilisez-les.

```text
# .goosehints
- Utilise pnpm, pas npm.
- Lance les tests d’intégration avant de déclarer une modification terminée.
```

Goose charge par défaut `AGENTS.md` et `.goosehints` : les hints globaux depuis `~/.config/goose/.goosehints`, ceux du projet depuis le dépôt, et les fichiers imbriqués quand il travaille dans des sous-dossiers. Les hints nécessitent l’extension Developer. C’est le bon endroit pour :

- Les choix d’outillage et les commandes.
- Les conventions que Goose doit suivre.
- L’emplacement de la documentation.

Les hints décrivent le projet. Ils ne répondent pas à “qu’est-ce qui dépend de ça ?”

## Là où les hints et le shell ne suffisent plus

Trois lacunes que Goose comble avec des commandes shell, un fichier à la fois.

### // un listing n’est pas une carte

Dans un dépôt inconnu, Goose s’oriente avec des listings de répertoires et des lectures de fichiers. Chacun consomme du contexte avant même que la tâche commence.

### // grep trouve des chaînes, pas des appelants

Une recherche textuelle ne distingue pas un vrai appel d’un commentaire, d’un mock ou d’une méthode homonyme.

### // les hints dérivent

Un fichier de hints écrit le trimestre dernier décrit l’organisation du trimestre dernier. Goose le suit quand même.

## Maguyva comme extension Goose

Une entrée extensions donne à Goose :

- **11 outils sur votre dépôt indexé**: recherche sémantique, structurelle (AST), par graphe et textuelle, plus recherche de symboles, dépendants et récupération de fichiers.
- **Des réponses avec chemins de fichiers et numéros de ligne**: sur plus de 285 langages.
- **Des outils en lecture seule**: Les outils de Maguyva interrogent l’index. Aucun ne modifie vos fichiers.

> Les hints disent à Goose *comment travailler*.
> Maguyva donne à Goose *une carte du code*.

## Deux flux de travail

La carte d’abord, puis laissez Goose tourner.

### 01. Remonter un bug jusqu’à sa source

```text
goose> pourquoi certains exports se terminent-ils avec zéro ligne ?

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

→ Goose lit deux fichiers, pas tout le paquet export.
[exit 0]
```

Les résultats classés réduisent la recherche avant que Goose n’ouvre un shell.

### 02. Vérifier les dépendants avant un refactoring

```text
goose> sépare la classe Notifier en e-mail et SMS

dependency_search("Notifier", dependents)
  11 références dans 5 paquets

→ Le plan couvre les onze avant la première modification.
[exit 0]
```

Goose obtient la liste complète des dépendants en un seul appel, au lieu d’une chaîne de grep.

## Configuration dans Goose

Trois étapes. Palier Free : 3 dépôts, Jusqu'à 50 000 lignes de dépôt indexées, sans carte bancaire.

### 01. Indexez un dépôt sur maguyva.ai

Choisissez-en un que vous connaissez déjà, pour pouvoir évaluer les réponses.

### 02. Ajoutez Maguyva aux extensions dans 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. Remplacez le placeholder et lancez une session

Remplacez `mgv_xxxx` par votre clé API, lancez `goose session` et posez une question dont vous connaissez déjà la réponse. YAML est sensible à l’indentation : des espaces, pas de tabulations.

La [documentation des extensions](https://goose-docs.ai/docs/getting-started/using-extensions/) de Goose couvre les extensions distantes, les délais d’expiration et les filtres d’outils.

## Indexez un dépôt que vous connaissez déjà.

Connectez Goose via MCP, puis posez une question que vous pouvez vérifier.
