// файл конфигурации
config.yaml
Расширения задаются в extensions в ~/.config/goose/config.yaml. Команда goose configure → Add Extension пишет такую же запись за вас.
Для пользователей Goose
Goose выполняет работу через расширения, и каждое расширение — это MCP-сервер. Maguyva — то самое, что индексирует вашу кодовую базу, поэтому Goose спрашивает, где что лежит, а не перебирает каталоги.
Тариф Free: 3 репозитория, До 50 тыс. проиндексированных строк, без банковской карты.
.goosehints — для того, как работать. Maguyva — для того, что код говорит сейчас. Четыре факта именно о Goose.
// файл конфигурации
Расширения задаются в extensions в ~/.config/goose/config.yaml. Команда goose configure → Add Extension пишет такую же запись за вас.
// транспорт
Maguyva — расширение streamable_http, так что Goose сам подключается к эндпоинту: никаких локальных процессов, никакого Node.js. URL указывается в uri, а не в url.
// ключ
Goose отправляет карту headers с каждым запросом, поэтому ключ указывается в заголовке Authorization. Goose также может подставить его из переменной окружения, перечисленной в env_keys.
// фильтр инструментов
Расширение может открывать только часть своих инструментов: перечислите нужные в available_tools или оставьте поле пустым, чтобы получить все.
# .goosehints
- Используй pnpm, а не npm.
- Запускай интеграционные тесты, прежде чем считать изменение готовым.По умолчанию Goose загружает AGENTS.md и .goosehints: глобальные подсказки из ~/.config/goose/.goosehints, подсказки проекта из репозитория и вложенные файлы, когда работает в подпапках. Для подсказок нужно расширение Developer. Им место для:
Подсказки описывают проект. На вопрос “что от этого зависит?” они не отвечают.
Три пробела, которые Goose закрывает командами оболочки, файл за файлом.
В незнакомом репозитории Goose ориентируется по спискам каталогов и чтению файлов. Каждое такое действие тратит контекст ещё до начала задачи.
Текстовый поиск не отличает настоящий вызов от комментария, мока или метода с тем же именем.
Файл подсказок, написанный в прошлом квартале, описывает структуру прошлого квартала. Goose всё равно ему следует.
Одна запись в extensions даёт Goose:
Подсказки говорят Goose, как работать.
Maguyva даёт Goose карту кода.
Сначала карта, потом пусть Goose работает.
// workflow 01
goose> почему некоторые выгрузки заканчиваются с нулём строк? semantic_search("export job empty result") src/export/runner.ts:118 flushBatch() src/export/filters.ts:40 applyTenantFilter() → Goose читает два файла, а не весь пакет export. [exit 0]
Ранжированные результаты сужают поиск ещё до того, как Goose откроет оболочку.
// workflow 02
goose> раздели класс Notifier на email и SMS dependency_search("Notifier", dependents) 11 ссылок в 5 пакетах → План покрывает все одиннадцать до первой правки. [exit 0]
Goose получает полный список зависимых одним вызовом, а не цепочкой grep.
Три шага. Тариф Free: 3 репозитория, До 50 тыс. проиндексированных строк, без банковской карты.
// step 01
Выберите тот, который вы уже знаете, чтобы оценить ответы.
// step 02
~/.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
// step 03
Замените mgv_xxxx своим API-ключом, запустите goose session и задайте вопрос, ответ на который вы уже знаете. YAML чувствителен к отступам: пробелы, а не табы.