13

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 для аутентификации.

Gemini CLI: Знакомство и первые шаги Программирование, Инструкция, Gemini, Cli, Искусственный интеллект, IT, Длиннопост

Это предоставит вам до 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

Gemini CLI: Знакомство и первые шаги Программирование, Инструкция, Gemini, Cli, Искусственный интеллект, IT, Длиннопост

Когда CLI запущен, мы можем начать взаимодействовать с Gemini из терминала. Есть два способа работы с проектом.

1. Начать новый проект

Чтобы начать проект с нуля, выполните следующие команды:

cd new-project/
gemini

Внутри CLI используйте промпт для решения интересующей вас проблемы, например:

Напиши код кодировщика для трансформера с нуля.

Дайте разрешение на запись файлов:

Gemini CLI: Знакомство и первые шаги Программирование, Инструкция, Gemini, Cli, Искусственный интеллект, IT, Длиннопост

2. Работать с существующим проектом

Если у вас уже есть кодовая база, вы можете работать с ней, выполнив следующие команды:

git clone https://github.com/username/project.git
gemini

Внутри CLI используйте промпт, например:

Предоставь мне сводку всех изменений, внесенных в кодовую базу за последний месяц.


Шаг 4: Эксперименты с Gemini CLI

В качестве примера я буду использовать проект Планировщик 🌍🛫 путешествий на базе ADK. С помощью Gemini CLI я покажу как:

  1. исследовать кодовую базу

  2. обнаружить ошибку или проблему на GitHub или в файле

  3. провести рефакторинг кода и сгенерировать юнит-тесты

  4. создать markdown-отчет о внесенных изменениях

  5. визуализировать кодовую базу, сгенерировав блок-схему

Исследование и понимание кодовой базы

Начнем с того, что попросим 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, покажет список доступных инструментов, которые можно использовать для выполнения различных задач, таких как редактирование кода, генерация тестов, создание документации и многое другое.

Gemini CLI: Знакомство и первые шаги Программирование, Инструкция, Gemini, Cli, Искусственный интеллект, IT, Длиннопост

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

Заполните файл этим кодом:

Gemini CLI: Знакомство и первые шаги Программирование, Инструкция, Gemini, Cli, Искусственный интеллект, IT, Длиннопост

инструкция как получить токен

После этого введите /quit в Gemini CLI, чтобы выйти, а затем снова откройте его. Вы увидите, что MCP-сервер GitHub запущен и готов к использованию.

Gemini CLI: Знакомство и первые шаги Программирование, Инструкция, Gemini, Cli, Искусственный интеллект, IT, Длиннопост


Введите команду /mcp, и вы увидите список инструментов GitHub.

Gemini CLI: Знакомство и первые шаги Программирование, Инструкция, Gemini, Cli, Искусственный интеллект, IT, Длиннопост

Удачи!
Полезно? Подпишись!

UPD:

Вторая часть: Gemini CLI: Продвинутые техники и автоматизация сценариев (Часть 2)

Третья часть: Gemini-cli. Часть 3. Интеграция с vs code

А давайте встроим ии в powershell

Лига программистов

2K постов11.8K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества