Gemini CLI: Знакомство и первые шаги
Дисклеймер. На пикабу все еще не завезли редактор кода, поэтому картинки. Кто не любит картинки может почитать статью на github
Gemini CLI — это инструмент, который работает прямо в вашем терминале, понимает вашу кодовую базу и помогает исправлять ошибки с помощью запросов на естественном языке. Это ответ Google на Claude Code от Anthropic. Вы можете использовать Gemini 2.5 Pro (при достижении лимита инструмент переключится на Gemini 2.5 Flash) и его контекстное окно в 1 миллион токенов для выполнения до 60 запросов в минуту и 1000 запросов в день, и все это бесплатно.
Содержание
Понимание и навигация по большим кодовым базам
Обнаружение и исправление ошибок
Написание и тестирование кода
Инструменты Gemini CLI
Интеграция Google CLI с MCP
Ключевые возможности Gemini CLI:
Редактирование и рефакторинг: Автоматически улучшает и упрощает ваш код под руководством ИИ.
Обнаружение и исправление ошибок: Находит баги и предлагает исправления.
Понимание кода: Gemini CLI может обобщать архитектуру, объяснять роли модулей или строить карты потоков выполнения.
Генерация тестов: Автоматически создает тестовые задания для pytest
Поддержка документации: Вы можете создавать структурированные markdown-документы, списки изменений (changelogs) и ответы на GitHub issues прямо в терминале.
Исполнение команд: Gemini CLI может выполнять команды оболочки, такие как git, npm, pip и другие, что позволяет вам управлять проектами без выхода из CLI.
Шаг 1: Предварительные требования
Для начала установите Node.js (версия 18 или выше). Вы можете скачать установщик по вашему выбору или выполнить следующие bash-команды в вашем терминале:
Скачивание и установка nvm (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install... | bash
Инициализация nvm в текущей сессии терминала
. "$HOME/.nvm/nvm.sh"
Скачивание и установка Node.js (например, версии 22):
nvm install 22
Проверка версии Node.js:
node -v # Должно вывести "v22.17.0" или похожее
Проверка версии npm:
npm -v # Должно вывести "10.9.2" или похожее
Шаг 2: Настройка Gemini CLI
Шаг 2.1: Установка Gemini CLI
Когда Node.js и npm установлены и проверены, установите Gemini CLI, выполнив следующую команду в вашем терминале:
npx https://github.com/google-gemini/gemini-cli
Или используйте npm для глобальной установки:
npm install -g @google/gemini-cli gemini
После установки введите gemini в терминале, чтобы получить доступ к инструменту.
Шаг 2.2: Аутентификация
Вы можете использовать ваш личный аккаунт Google для аутентификации.
Это предоставит вам до 60 запросов в минуту и 1000 запросов в день при использовании Gemini. В этом руководстве я использовал Вход через Google, но вы также можете использовать API-ключ (установленный как переменная окружения или в файле .env) или аутентификацию через Vertex AI.
Чтобы сгенерировать новый API-ключ, войдите в AI Studio с вашим аккаунтом Google и нажмите "Создать API-ключ".
Установка ключа как переменной окружения
export GEMINI_API_KEY="Your_API_Key"
или создайте файл .env
GEMINI_API_KEY="Your_API_Key"
Вы можете использовать команду /auth в текстовом поле для переключения метода аутентификации по мере необходимости.
Шаг 3: Настройка проекта в Gemini CLI
Введите в терминале команду gemini
Когда CLI запущен, мы можем начать взаимодействовать с Gemini из терминала. Есть два способа работы с проектом.
1. Начать новый проект
Чтобы начать проект с нуля, выполните следующие команды:
cd new-project/
gemini
Внутри CLI используйте промпт для решения интересующей вас проблемы, например:
Напиши код кодировщика для трансформера с нуля.
Дайте разрешение на запись файлов:
2. Работать с существующим проектом
Если у вас уже есть кодовая база, вы можете работать с ней, выполнив следующие команды:
git clone https://github.com/username/project.git
gemini
Внутри CLI используйте промпт, например:
Предоставь мне сводку всех изменений, внесенных в кодовую базу за последний месяц.
Шаг 4: Эксперименты с Gemini CLI
В качестве примера я буду использовать проект Планировщик 🌍🛫 путешествий на базе ADK. С помощью Gemini CLI я покажу как:
исследовать кодовую базу
обнаружить ошибку или проблему на GitHub или в файле
провести рефакторинг кода и сгенерировать юнит-тесты
создать markdown-отчет о внесенных изменениях
визуализировать кодовую базу, сгенерировав блок-схему
Исследование и понимание кодовой базы
Начнем с того, что попросим Gemini исследовать и объяснить кодовую базу.
Промпт:
Исследуй текущий каталог и опиши архитектуру проекта.
Gemini CLI вернет структурированное резюме, объясняющее архитектуру:
Пользовательский интерфейс: Приложение на Streamlit (travel_ui.py) предоставляет интерфейс для взаимодействия.
Оркестрация: host_agent действует как центральный координатор.
Специализированные агенты: flight_agent, stay_agent, activities_agent для поиска авиабилетов, отелей и развлечений.
Коммуникация: Агенты общаются друг с другом через RESTful API на FastAPI.
Общие компоненты: shared/schemas.py определяет общие структуры данных.
Это поможет сориентироваться, не читая каждый файл вручную.
Анализ и исправление проблемы на GitHub
Исследуем некоторые открытые проблемы из репозитория GitHub.
Промпт:
Вот проблема на GitHub: [@Search https://github.com/AashiDutt/Google-Agent-Development-Kit-De...]. Проанализируй кодовую базу и предложи 3-шаговый план исправления. Какие файлы/функции следует изменить?
Gemini CLI исследовал проблему:
Используя функцию @search, он получил данные с GitHub.
Определил основную причину как ошибку сериализации JSON (в данном случае, асинхронная функция create_session() не была вызвана с await).
Предложил изменения и обработку ответа в нескольких файлах.
Далее CLI ожидает ввода от пользователя для оценки изменений. Если пользователь согласен, он внесет предложенные изменения.
Внедрение и тестирование исправления
Теперь внедрим и протестируем предложенные Gemini исправления.
Промпт:
Напиши юнит-тест для этого изменения в pytest в файле test_shared.py.
Gemini CLI:
Вставил json.dumps() перед отправкой полезной нагрузки задачи.
Создал test_agents.py для добавления юнит-тестов.
Добавил новый тестовый случай для проверки схемы и передачи вложенных сообщений агентов.
Генерация документации
Теперь, когда исправления внесены, подведем итоги изменений и запишем их в Markdown в файле .txt.
Промпт:
Напиши markdown-сводку об ошибке, исправлении и тестовом покрытии. Отформатируй это как запись в журнале изменений под версией "v0.2.0".
Затем, чтобы сохранить сводку в документ, я использовал следующий промпт:
Промпт:
Сохрани эту сводку в файл .txt и назови его summary.txt
Gemini CLI использует инструмент WriteFile для сохранения файла summary.txt в каталоге проекта.
Доступные инструменты Gemini CLI
Вызов команды /tools в Gemini CLI, покажет список доступных инструментов, которые можно использовать для выполнения различных задач, таких как редактирование кода, генерация тестов, создание документации и многое другое.
ReadFolder (ls) Перечисляет файлы и папки в директории — аналог команды ls в командной строке.
ReadFile (read-file) Читает полное содержимое одного файла, что полезно для создания сводок или анализа.
ReadManyFiles (read-many-files) Читает несколько файлов одновременно, обычно по шаблону (например, все файлы .js).
FindFiles (glob) Ищет файлы по шаблону (например, найти все файлы config.json в вашем проекте).
SearchText (grep) Ищет текст внутри файлов, например, для нахождения всех комментариев TODO.
Edit (edit) Применяет изменения в коде с помощью diff. Gemini показывает предварительный просмотр правок и запрашивает подтверждение перед их применением.
WriteFile (write-file) Создает новые файлы (например, README.md) с содержимым, предоставленным пользователем.
Shell (shell) Выполняет команды непосредственно в терминале, если вы добавляете перед ними префикс ! (например, !npm test).
WebFetch (web-fetch) Загружает контент из веба (HTML или JSON), позволяя Gemini анализировать внешние данные.
GoogleSearch (web-search) Выполняет поиск в Google, чтобы основывать ответы на реальной информации (например, для поиска объяснения ошибки).
Save Memory (memoryTool) Сохраняет факты или предпочтения во время сессии (например, «я предпочитаю async/await»), чтобы улучшить последовательность и согласованность ответов.
Расширенные возможности
Вы можете добавлять специальные инструкции для ИИ для конкретного проекта, создав файл GEMINI.md в корневом каталоге вашего проекта. Внутри этого файла вы можете определять правила проекта, стили кода и инструменты, которые должен использовать агент. Это гарантирует, что сгенерированный код соответствует стандартам вашего проекта.
Интеграция Google CLI с MCP
Для большинства повседневных задач будет достаточно встроенных инструментов. Но что, если вы хотите, чтобы Gemini CLI делал что-то узкоспециализированное, например, взаимодействовал с определенными API или использовал специализированную модель (скажем, генератор изображений или инструмент для анализа безопасности)? Именно здесь на помощь приходит MCP (протокол модельного контекста).
По сути, MCP — это открытый стандарт, который позволяет разработчикам добавлять в ИИ новые инструменты и возможности путем запуска сервера, с которым может взаимодействовать CLI. В Gemini CLI вы можете настроить «MCP-серверы» в файле настроек JSON, и CLI будет рассматривать их как дополнительные инструменты, которые он может использовать.
Как настроить MCP-сервер в Google CLI
В качестве примера я покажу вам, как настроить MCP-сервер для GitHub в Gemini CLI.
Внутри папки вашего проекта создайте папку с помощью команды:
mkdir -p .gemini && touch .gemini/settings.json
Заполните файл этим кодом:
После этого введите /quit в Gemini CLI, чтобы выйти, а затем снова откройте его. Вы увидите, что MCP-сервер GitHub запущен и готов к использованию.
Введите команду /mcp, и вы увидите список инструментов GitHub.
Удачи!
Полезно? Подпишись!
UPD:
Вторая часть: Gemini CLI: Продвинутые техники и автоматизация сценариев (Часть 2)
Третья часть: Gemini-cli. Часть 3. Интеграция с vs code