1. Введение
В этом практическом занятии вы познакомитесь с Gemini CLI — агентом искусственного интеллекта с открытым исходным кодом, который переносит возможности Gemini непосредственно в ваш терминал.
Что вы узнаете
- Установка и настройка Gemini CLI
- Изучение инструментов, встроенных команд и настройка серверов MCP в Gemini CLI.
- Настройка Gemini CLI через файл
GEMINI.md - Рассмотрим несколько вариантов использования Gemini CLI.
Что вам понадобится
Данный практический урок можно выполнить полностью в Google Cloud Shell, в котором предустановлен Gemini CLI.
В качестве альтернативы, если вы предпочитаете работать на своем компьютере, есть раздел для локальной установки Gemini CLI.
Вам потребуется следующее:
- Веб-браузер Chrome
- Аккаунт Gmail
Этот практический курс предназначен для пользователей и разработчиков всех уровней (включая начинающих). Примеры использования в курсе разделены на задачи для разработчиков и задачи для неразработчиков. Примеры для разработчиков демонстрируют, как работать с Gemini CLI и репозиторием Github для выполнения распространенных задач разработки, таких как объяснение/понимание кода, создание документации, исправление ошибок и многое другое. Рекомендуется выполнить эти примеры в курсе. В конце есть дополнительный раздел, посвященный нескольким повседневным задачам, не ориентированным на разработчиков.
2. Прежде чем начать
Создать проект
- В консоли Google Cloud на странице выбора проекта выберите или создайте проект Google Cloud.
- Убедитесь, что для вашего облачного проекта включена функция выставления счетов. Узнайте, как проверить, включена ли функция выставления счетов для проекта .
- Вы будете использовать Cloud Shell — среду командной строки, работающую в Google Cloud и поставляемую с предустановленным bq. Нажмите «Активировать Cloud Shell» в верхней части консоли Google Cloud.

- После подключения к Cloud Shell необходимо проверить, прошли ли вы аутентификацию и установлен ли идентификатор вашего проекта, используя следующую команду:
gcloud auth list
- Выполните следующую команду в Cloud Shell, чтобы убедиться, что команда gcloud знает о вашем проекте.
gcloud config list project
- Если ваш проект не задан, используйте следующую команду для его установки:
gcloud config set project <YOUR_PROJECT_ID>
3. Установка
Прежде чем приступать к настройке и запуску Gemini CLI, давайте создадим папку, которую будем использовать в качестве домашней папки для всех проектов, создаваемых внутри неё. Это отправная точка для работы Gemini CLI, хотя она также будет ссылаться на некоторые другие папки в вашей системе, к которым вы вернетесь позже по мере необходимости.
Создайте тестовую папку ( gemini-cli-projects ) и перейдите в неё с помощью команд, показанных ниже. Если вы предпочитаете использовать другое имя папки, пожалуйста, сделайте это.
mkdir gemini-cli-projects
Давайте перейдём в эту папку:
cd gemini-cli-projects
Вы можете запустить Gemini CLI напрямую с помощью команды gemini .
Пожалуйста, перейдите непосредственно к следующему разделу (Настройка Gemini CLI через settings.json).
Если вы хотите установить Gemini CLI локально, следуйте приведенным ниже инструкциям.
Первый шаг — установка Node 20+ на ваш компьютер. После этого вы можете установить и запустить Gemini CLI одним из следующих способов:
- Для начала можно установить Gemini CLI глобально на всю систему. Для этого может потребоваться доступ администратора.
# option 1: install Gemini CLI
npm install -g @google/gemini-cli
# .. and then run
gemini
- Запустите его с помощью следующей команды:
# option 2: run without installing Gemini CLI
npx https://github.com/google-gemini/gemini-cli
Вы можете убедиться в установке CLI, выполнив следующую команду:
gemini --version
Предполагая, что вы запустили Gemini CLI одним из описанных выше способов, вы должны увидеть следующий экран с запросом на выбор темы оформления. Выберите понравившуюся тему:

После выбора этого параметра система запросит метод аутентификации. Рекомендуется использовать вашу личную учетную запись Google, а не учетные записи, не относящиеся к Google или связанные с Google Workspace, в этой лабораторной работе. Бесплатная лицензия предоставляет доступ к Gemini 2.5 Pro и его контекстному окну с 1 миллионом токенов. Бесплатный уровень позволяет отправлять 60 запросов к моделям в минуту и 1000 запросов в день без дополнительной платы.
Если вы достигли лимита текущей бесплатной квоты для учетных записей Google, вы можете использовать ключ API Gemini или даже Google Cloud Vertex AI, для чего вам потребуется идентификатор проекта и название местоположения этого проекта. Если вы планируете использовать другие методы аутентификации, обратитесь к разделу «Аутентификация» в документации.

Нажмите Enter. Откроется страница аутентификации Google в браузере. Пройдите аутентификацию с помощью своей учетной записи Google, примите условия, и после успешной аутентификации вы увидите, что Gemini CLI готов и ожидает ваших команд. Пример скриншота приведен ниже:

4. Настройка Gemini CLI через settings.json
Если вы выберете Cloud Shell для запуска Gemini, тема оформления Gemini CLI по умолчанию и метод аутентификации уже будут выбраны и настроены для вас.
Если вы установили Gemini CLI на свой компьютер и запустили его в первый раз, вы выбрали тему оформления, а затем способ аутентификации.
Теперь при последующих запусках Gemini CLI вам больше не потребуется выбирать тему оформления и метод аутентификации. Это означает, что эти данные сохраняются где-то, и используемый файл называется settings.json , и именно так можно настроить Gemini CLI.
Настройки применяются в следующем порядке приоритета (Cloud Shell предоставляет доступ только к пользовательским настройкам):
- Системные настройки:
/etc/gemini-cli/settings.json(применяются ко всем пользователям, переопределяют настройки пользователя и рабочей области). - Рабочая область:
.gemini/settings.json(переопределяет пользовательские настройки). - Пользователь:
~/.gemini/settings.json.
Пользователь Windows : %USERPROFILE%.gemini\settings.json (который обычно расшифровывается как C:\Users<ВашеИмяПользователя>.gemini\settings.json)
Система : %ProgramData%\gemini-cli\settings.json (обычно это C:\ProgramData\gemini-cli\settings.json)
Пользователь Mac : ~/.gemini/settings.json (который разворачивается в /Users/<ВашеИмяПользователя>/.gemini/settings.json)
Система : /etc/gemini-cli/settings.json
Если вы помните, при выборе темы вы указали, что настройки должны сохраняться в пользовательских настройках. Поэтому зайдите в ~/.gemini folder , и вы увидите файл settings.json .
Ниже представлен мой файл settings.json . Если бы вы выбрали другую тему, вы бы увидели её название там.
{
"theme": "Default",
"selectedAuthType": "oauth-personal" or "cloud-shell"
}
5. Наше первое взаимодействие с Gemini CLI
Начнём работу с Gemini CLI и введём свой первый запрос, как показано ниже:
Give me a famous quote on Artificial Intelligence and who said that?
Ожидаемый ответ показан ниже:
GoogleSearch Searching the web for: "famous quote on Artificial Intelligence and who said it" ...
Search results for "famous quote on Artificial Intelligence and who said it" returned.
✦ "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking.
Вы заметите, что наш запрос привел к запуску инструмента GoogleSearch (встроенного инструмента в Gemini CLI). Другими словами, вы уже использовали один из мощных встроенных инструментов Gemini CLI, а именно GoogleSearch , который формирует свои ответы на основе информации, полученной из интернета. Подробнее об инструментах вы узнаете в следующем разделе.
Быстрый способ разобраться в Gemini CLI и различных командах, которые он поддерживает, — это ввести /help (косая черта), и вы увидите множество команд и сочетаний клавиш.
Давайте пока закроем Gemini CLI. Это можно сделать либо с помощью команды /quit , либо дважды нажав Ctrl-C в интерактивном терминале Gemini CLI.
6. Gemini CLI — Параметры команды
При запуске Gemini CLI можно указать несколько параметров командной строки. Чтобы получить полный список параметров, используйте опцию --help как показано ниже.
gemini --help
Здесь должен быть представлен полный спектр доступных опций. Рекомендуем ознакомиться с документацией здесь .
Рассмотрим несколько из них. Первый — настройка Gemini CLI для использования либо модели Pro, либо модели Flash. На момент написания этой лабораторной работы поддерживаются только эти две модели. По умолчанию используется модель Gemini 2.5 Pro, но если вы хотите использовать модель Flash, вы можете сделать это при запуске Gemini CLI с помощью параметра -m , как показано ниже:
gemini -m "gemini-2.5-flash"
Вы заметите, что если вы запустите программу описанным выше способом, то сможете проверить модель в правом нижнем углу терминала Gemini CLI, как показано ниже:

После запуска приложения Gemini CLI вы можете использовать команду /model для открытия диалогового окна, позволяющего выбрать модель. Пример запуска показан ниже, и в зависимости от ваших требований и предоставленных рекомендаций вы можете переключать модели, выбирая наиболее подходящую для задачи в зависимости от сложности и необходимости контроля затрат.

Неинтерактивный режим
Интересный вариант — запуск Gemini CLI в неинтерактивном режиме. Это означает, что вы напрямую указываете ему командную строку, и он ответит на неё, без открытия интерактивного терминала Gemini CLI. Это очень полезно, если вы планируете использовать Gemini CLI в автоматизированном режиме в рамках скрипта или любого другого процесса автоматизации. Для указания командной строки Gemini CLI используется параметр -p , как показано ниже, или просто позиционный аргумент.
gemini "What is the gcloud command to deploy to Cloud Run"
Имейте в виду, что возможности продолжить разговор с помощью дополнительных вопросов отсутствуют. Этот режим также не позволяет авторизовать инструменты (включая WriteFile) или запускать команды оболочки.
7. Gemini CLI — встроенные инструменты
Gemini CLI поставляется с набором встроенных инструментов, и в документации к ним говорится: «Модель Gemini использует эти инструменты для взаимодействия с вашей локальной средой, доступа к информации и выполнения действий. Эти инструменты расширяют возможности CLI, позволяя ему выходить за рамки генерации текста и помогать в решении широкого спектра задач».
Чтобы получить список встроенных инструментов, выполните команду /tools как показано ниже:
Available Gemini CLI tools:
- Codebase Investigator Agent (codebase_investigator)
- Edit (replace)
- FindFiles (glob)
- GoogleSearch (google_web_search)
- ReadFile (read_file)
- ReadFolder (list_directory)
- SaveMemory (save_memory)
- SearchText (search_file_content)
- Shell (run_shell_command)
- WebFetch (web_fetch)
- WriteFile (write_file)
- WriteTodos (write_todos)
Первое, что должно сразу же насторожить, это вопрос: может ли Gemini CLI просто вызывать эти инструменты, когда ему это нужно? Ответ по умолчанию — нет , когда речь идёт о конфиденциальных операциях, которые могут включать запись в локальную систему, чтение из внешней системы, подключение к внешней сети и так далее.
Хотя при запуске CLI доступна опция --yolo (обычно это не рекомендуется), Gemini CLI запросит у вас разрешение на запуск выбранного инструмента. Вы можете отказать в разрешении, разрешить ему запуститься один раз или предоставить ему полное разрешение на постоянный запуск. Вы полностью контролируете ситуацию и должны это делать.
Давайте воспользуемся командной строкой, которая заставит Gemini CLI выбрать один из встроенных инструментов для выполнения, и это даст вам хорошее представление о том, как все это работает.
Представьте ситуацию, когда вам нужно получить информацию о последних финансовых новостях со всего мира и сохранить её в файл в локальном рабочем каталоге, из которого вы запустили Gemini CLI. Используйте следующую командную строку:
Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt
Представьте на мгновение, что оно должно делать. В идеале оно должно выполнить поиск в Google, чтобы получить новости из соответствующих источников информации, которые могут предоставить ей финансовые новости. Затем оно должно создать файл с именем finance-news-today.txt (операция записи в вашей локальной системе, которая потребует вашего разрешения) со своим содержимым.
Посмотрим, что произойдёт (вам следует проделать то же самое на своём компьютере).
Первым делом программа запускает инструмент GoogleSearch для поиска в интернете и получения результатов, как показано ниже:
GoogleSearch Searching the web for: "latest finance headlines today"
Search results for "latest finance headlines today" returned.
После этого программа будет готова записать данные в файл, используя инструмент WriteFile , но поскольку это конфиденциальная операция ( запись ), она запросит ваше разрешение. Вы можете выбрать тип разрешения, например, разрешить один раз, разрешить всегда и т. д. Пока что выберите «Разрешить один раз».

После этого информация будет записана в файл, и ниже отобразится сообщение об успешном завершении:
✦ I have successfully saved the latest finance headlines into the file finance-news-today.txt.
Как проверить, записан ли файл? Можно использовать символ @file , чтобы запросить чтение содержимого. Когда вы вводите @ , отображается список файлов в текущей папке, и на экране появляется только что созданный файл. Выберите его и отправьте запрос. Мой запрос показан ниже:
read the contents of @finance-news-today.txt
В результате запускаются необходимые инструменты (ReadManyFiles, ReadFile), и отображается содержимое, как показано ниже:

8. Gemini CLI — режим командной оболочки
Сейчас самое время научиться работать непосредственно с оболочкой из Gemini CLI. Вы можете перейти в режим оболочки, нажав восклицательный знак ! в окне сообщения. Это переключит вас в режим оболочки. Вернуться в этот режим можно, снова нажав восклицательный знак ! или клавишу ESC .
В режиме командной оболочки вы увидите восклицательный знак ! в начале приглашения командной строки, как показано ниже:

Вы можете проверить это напрямую, используя стандартные команды, такие как pwd и ls как показано ниже. Обратите внимание, что команды предполагают операционную систему типа Linux. Если вы используете другую операционную систему (Windows), используйте эквивалентные команды, такие как ( cd , dir и type ). Обратите внимание, что вывод этих вызовов отображается в контекстном окне модели.

Сегодня вы можете распечатать содержимое файла с помощью команды cat .

Упражнение : Вот небольшое упражнение для самостоятельной работы. Выберите любую RSS-ленту. Дайте Gemini CLI команду получить содержимое RSS-ленты и отформатировать результаты в нужном вам формате. Это хороший способ автоматизировать что-то в начале дня. Вы даже можете попросить Gemini CLI определить, есть ли RSS-лента для определенной области, например, для заметок о выпуске Google Cloud Platform.
Пример запроса показан ниже:
Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.
В идеале, эта команда должна сначала вызвать инструмент GoogleSearch для поиска RSS-ленты Google Cloud Platform, а затем использовать инструмент WebFetch для получения содержимого RSS-ленты и его отображения.
9. Расширения Gemini CLI
Как указано в документации, расширения Gemini CLI упаковывают подсказки, серверы MCP и пользовательские команды в привычный и удобный для пользователя формат. С помощью расширений вы можете расширить возможности Gemini CLI и поделиться этими возможностями с другими. Это основной механизм расширения функциональности Gemini CLI за пределы встроенных инструментов.
Расширение — это самодостаточный, версионируемый и легко распространяемый пакет. Представьте его как «контейнер для доставки» ваших настроек Gemini CLI, объединяющий все необходимое для конкретного рабочего процесса в один аккуратный пакет.

Расширение может включать в себя любую комбинацию следующих элементов:
- Пользовательские команды со слэшем (ваши файлы .toml).
- Настройки сервера MCP (которые ранее находились в файле settings.json).
- Контекстные файлы (GEMINI.md) содержат конкретные инструкции и указания для модели.
- Ограничения на использование инструментов (excludeTools) для создания более безопасной и целенаправленной рабочей среды.
Изучите галерею расширений.
Галерея расширений — это центральная площадка для поиска всех официальных расширений, разработанных Google, а также сторонних разработчиков:
- Откройте в браузере следующий URL-адрес:
https://geminicli.com/extensions/browse/. - Эта галерея служит инструментом поиска информации в экосистеме. Здесь вы можете увидеть расширения от таких компаний, как GitHub, Redis и DynaTrace, демонстрирующие широкий спектр доступных инструментов.
- Прокрутите вниз и найдите карточку расширения для Cloud Run.
- Обратите внимание, что карточка содержит описание, автора (Google) и кнопку
Copy» для быстрого доступа. Это самый простой способ получить команду установки для расширения.
Расширения Gemini CLI — Команды управления
Команда gemini extensions — это точка входа для управления локальными расширениями.
Запустите эту команду в терминале, чтобы увидеть список доступных команд.
gemini extensions <command>
Manage Gemini CLI extensions.
Commands:
gemini extensions install <source> [--auto-update] [--pre-release]
Installs an extension from a git repository URL or a local path.
gemini extensions uninstall <names..>
Uninstalls one or more extensions.
gemini extensions list
Lists installed extensions.
gemini extensions update [<name>] [--all]
Updates all extensions or a named extension to the latest version.
gemini extensions disable [--scope] <name>
Disables an extension.
gemini extensions enable [--scope] <name>
Enables an extension.
gemini extensions link <path>
Links an extension from a local path. Updates made to the local path
will always be reflected.
gemini extensions new <path> [template]
Create a new extension from a boilerplate example.
gemini extensions validate <path>
Validates an extension from a local path.
Команды довольно простые (install/uninstall, list, update, enable/disable и т. д.), и некоторые из них мы будем использовать в этом практическом занятии.
Проверьте текущий список расширений.
Прежде чем что-либо устанавливать, давайте начнем с чистого листа.
- Выполните команду
gemini extensions list: - Вы должны увидеть следующий вывод, подтверждающий, что никакие расширения еще не установлены.
No extensions installed.
Настройка сервера Github MCP
Одним из типов расширений Gemini CLI является MCP-сервер. MCP-сервер — это приложение, которое предоставляет Gemini CLI инструменты и ресурсы через протокол контекста модели (MCP), позволяя ему взаимодействовать с внешними системами и источниками данных. MCP-серверы выступают в качестве моста между моделью Gemini и вашей локальной средой или другими сервисами, такими как API.
В галерее расширений Gemini доступен Github MCP Server . Щёлкните по нему, и откроется карточка расширений, где вы также увидите команду для установки расширения:

Просто скопируйте это или воспользуйтесь командой ниже:
gemini extensions install https://github.com/github/github-mcp-server
Предоставьте необходимые права доступа. После установки вы сможете увидеть это расширение в списке расширений, когда выполните команду gemini extensions list .
✓ github (1.0.0)
ID: faa318861b48de8d83c95eb8cd5e82c02393493978d198a0e7bf67fcb1bd22cb
name: c0b0109d9439de57fe3cf03abeccbc52f4c98170c732d3b69af5e6395ace574e
Path: /home/romin/.gemini/extensions/github
Source: https://github.com/github/github-mcp-server (Type: git)
Enabled (User): true
Enabled (Workspace): true
MCP servers:
github
Вы можете увидеть путь к расширению, и в этой папке вы найдете файл с именем gemini-extension.json , содержимое которого показано ниже:
{
"name": "github",
"version": "1.0.0",
"mcpServers": {
"github": {
"description": "--description–",
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer $GITHUB_MCP_PAT"
}
}
}
}
Вы заметите, что персональный токен доступа (PAT) считывается через переменную окружения. Для этого вам сначала потребуется получить персональный токен доступа (PAT) от Github . После этого убедитесь, что вы создали файл .env и указали в нём это значение, или создайте переменную окружения следующим образом (замените PAT_VALUE на фактическое значение):
export GITHUB_MCP_PAT=PAT_VALUE
Вам следует перезапустить Gemini CLI. После запуска вы можете использовать команду /mcp list, чтобы увидеть список MCP-серверов и доступных для них инструментов. Вы должны увидеть GitHub MCP Server, выделенный зелёным цветом, вместе с его инструментами (более 30 из них). Частичный список показан ниже:
🟢 github (из github) - Готово (40 инструментов)
Инструменты:
- add_comment_to_pending_review
- добавить_выпуск_коммент
- assign_copilot_to_issue
- создать_ветку
- создать_или_обновить_файл
- создать_запрос_на_выполнение_запроса
- создать_репозиторий
- удалить_файл
- fork_repository
- get_commit
- get_file_contents
- get_label
- get_latest_release
- get_me
- get_release_by_tag
- get_tag
- get_team_members
- get_teams
- issue_read
Начнём с запроса, который вызовет один из инструментов с сервера Github MCP. Введите следующий запрос (кто я на GitHub?). В результате Gemini CLI выберет нужный инструмент и запросит ваше разрешение.

После подтверждения система получит результат, показанный ниже:
✦ You are rominirani, a Developer Advocate at Google Cloud, located in Mumbai. You have 125 public repositories and 256 followers.
Теперь вам следует поработать с одним из своих проектов на GitHub. Задавайте запросы на естественном языке, например:
- Опишите мне, пожалуйста, <название репозитория>?
- Скопируйте репозиторий <repo-name> на свой локальный компьютер.
- Describe @<file-name> or @<directory-name>/
- Из каких компонентов состоит этот репозиторий?
- Я внес необходимые изменения. Не могли бы вы отправить эти изменения на GitHub и использовать для этого инструменты GitHub MCP Server?
Подробное описание работы с Github MCP Server вы найдете в дальнейшем в ходе лабораторной работы.
Настройка сервера Cloud Run MCP
Расширение Cloud Run, доступное в галерее расширений Gemini CLI, представляет собой MCP-сервер, позволяющий развертывать приложения в Cloud Run.
Ниже представлена карточка расширения Cloud Run из галереи расширений:

Для начала установим расширение Cloud Run, нажав на кнопку «Скопировать команду установки» , как показано выше. Затем вставьте эту команду в терминал Cloud Shell (она должна выглядеть примерно так):
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
После выполнения указанной выше команды вам потребуется подтвердить действие. Подтвердите это. После этого расширение Cloud Run должно успешно установиться.
Если теперь выполнить команду gemini extensions list , вы должны увидеть установленное расширение Cloud Run, как показано ниже:
✓ cloud-run (1.0.0)
ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
Path: /home/romin/.gemini/extensions/cloud-run
Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: git)
Enabled (User): true
Enabled (Workspace): true
Context files:
/home/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
MCP servers:
cloud-run
Если вы сейчас запустите Gemini CLI и выполните команду /mcp list , вы увидите следующее:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
Tools:
- create_project
- deploy_container_image
- deploy_file_contents
- deploy_local_folder
- get_service
- get_service_log
- list_projects
- list_services
Prompts:
- deploy
- logs
Выше приведены лишь несколько примеров расширений Gemini CLI, которые мы показали, как настраивать. Вы можете посмотреть галерею расширений , чтобы узнать больше, или даже выполнить практическое задание « Начало работы с расширениями Gemini CLI ».
10. Варианты использования для тестирования
Gemini CLI может применяться в самых разных сценариях, актуальных как для разработчиков, так и для тех, кто не занимается разработкой. Здесь представлены несколько сценариев, и в зависимости от ваших интересов вы можете попробовать любой из них или все сразу.
В каждом из этих случаев отображается приглашение к вводу. Вы можете попробовать это в интерактивном или неинтерактивном режиме Gemini CLI, используя параметр -p при запуске Gemini CLI.
Программирование на Vibe с использованием Gemini CLI
Давайте воспользуемся Gemini CLI для создания приложения с помощью Vibe Code. В этом задании вы попросите Gemini CLI сгенерировать приложение, а затем загрузить его начальную версию в репозиторий Github.
Предварительное условие
Для выполнения заданий в этом разделе необходимо выполнить несколько предварительных условий:
- Гит
- Gemini CLI с расширением Github Gemini CLI (мы это сделали ранее) или, если у вас уже настроен
gh( инструмент командной строки Github ), это тоже сработает. - Знание основ Git и базовые навыки программирования.
Предположим, вы запустили Gemini CLI в выбранной вами папке .
Начните с первоначального запроса. Можете изменить его по своему усмотрению. Имейте в виду, что на протяжении всего сеанса работы с Gemini CLI вам будут запрашиваться разрешения на создание файлов и т.д. Предоставьте необходимые разрешения.
В этом задании нам не требуется использовать Gemini CLI для запуска или тестирования приложения, поскольку мы хотели бы иметь больший контроль. Но вы можете сделать это самостоятельно, если захотите.
Generate a website for a 1-day event filled with technical talks. There are going to be 6 talks in a single track of 1 hour each. Each talk has the following information: title, 1 or maximum of 2 speakers, category (1 or maximum of 3 keywords), duration and a description. The website has a single page where users can see the schedule for the entire day with the timings. There will be one lunch break of an hour and the event starts at 10:00 AM. Keep a 10 minute transition between talks. I would like to use Node.js on the server side and standard HTML, JavaScript and CSS on the front-end. The users should be able to search the talks based on category.
I would like you to proceed in the following way:
1. Plan out how you would design and code this application.
2. Ask me for any clarifications along the way.
3. Once I am fine with it, do generate the code and provide me instructions to run and test locally.
Следующие несколько подсказок и ответов представляют собой пример наблюдаемого сценария. Gemini CLI разработает план и запросит у вас подтверждения/уточнения или продолжит. Пожалуйста, следуйте инструкциям. В качестве примера, вот мой образец диалога:
1. Backend (Node.js/Express):
* Set up an Express server to serve the static frontend files.
* Create an /api/schedule endpoint that will:
* Generate the event schedule dynamically, including talk timings and the lunch break, based on your requirements.
* Store mock talk data (title, speakers, category, description).
* Filter the schedule based on a category query parameter.
2. Frontend (HTML, CSS, JavaScript):
* Create an index.html file for the main structure.
* Develop style.css for a clean and responsive design.
* Write script.js to:
* Fetch the schedule data from the backend.
* Dynamically render the talks and lunch break on the page.
* Implement a search input that filters talks by category, updating the displayed schedule without a full page reload.
3. Schedule Logic:
* The backend will handle calculating the precise start and end times for each 1-hour talk, factoring in the 10:00 AM start, 10-minute transitions, and the 1-hour lunch break.
Before I proceed with the code, could you please clarify the following:
* Example Talk Data: Could you provide some example talk titles, speakers, categories (keywords), and descriptions? This will help me create realistic dummy data for the schedule.
* Lunch Break Placement: Where should the 1-hour lunch break be placed in the schedule? (e.g., after the 3rd talk, at 1 PM, etc.)
* Styling Preferences: Do you have any specific styling preferences (e.g., color scheme, modern/minimalist, etc.)? If not, I will go with a clean, simple design.
✦ I will create a single-page website for your event. Here's my plan:
✓ WriteTodos Set 7 todo(s)
✦ I am waiting for your clarifications regarding the example talk data, lunch break placement, and styling preferences before I proceed with generating the code.
В итоге я получил следующее резюме:
✦ Instructions to Run and Test Locally:
1. Start the server:
Open your terminal in the project directory (/home/romin/gemini-cli-projects/event-website/) and run:
1 node server.js
You should see a message in the terminal indicating: Server running on http://localhost:3000.
2. Open in your browser:
Open your web browser and navigate to:
http://localhost:3000
3. Test functionality:
* You should see the event schedule displayed on the page, with talks and a lunch break.
* Search by category: In the "Search by category..." input box, type a category keyword (e.g., "AI", "Web Development", "Python", "Security").
* Click the "Search" button. The schedule displayed should filter to only show talks matching that category.
* Click the "Reset" button to clear the search filter and view the full schedule again.
Let me know if you encounter any issues or if you'd like to make any modifications or additions to the website!
Следуя инструкциям по запуску сервера и переходу на главную страницу, мы получили пример сайта, показанный ниже (если вы использовали ту же подсказку, вы должны увидеть вариант похожего сайта):

С помощью Gemini CLI вы можете вносить дальнейшие изменения. Как только вы будете удовлетворены внесенными изменениями, вы можете отправить их в репозиторий Github.
Для начала создадим файл .gitignore, и вы можете воспользоваться помощью Gemini CLI.
Create a .gitignore file for this project.
Следующий шаг для вас — дать инструкции Gemini CLI для отправки этого репозитория в нашу учетную запись Github, что должно запустить инструменты Github MCP Server в фоновом режиме.
Предложите вариант ответа, аналогичный приведенному ниже:
Great! I would now like to push all of this to a new repository in my Github account. I would like to name this repository <Your-Name>-event-talks-app
Здесь будет выполнено несколько команд:
- Создайте репозиторий.
- Для управления локальным репозиторием Git будут использоваться несколько команд Git: init, add, commit.
- Затем будет настроен удалённый репозиторий Git и выполнена операция push.
Примечание: В некоторых случаях Gemini CLI может выдавать ошибку тайм-аута, использовать неверное имя пользователя и т.д. Пожалуйста, свяжитесь с нами и предложите решения проблемы.
Если всё пойдёт хорошо, у вас должен быть создан репозиторий на GitHub. Пример скриншота показан ниже:

Обратите внимание, что вы не создали файл README.md для этого проекта, и это хорошее упражнение для следующего раздела, где мы теперь будем работать с только что созданным вами репозиторием.
Использование Gemini CLI для работы с репозиторием Github.
В данном примере вам предстоит использовать Gemini CLI для работы с репозиторием Github. Вы будете выполнять ряд задач, в том числе:
- Понимание кодовой базы
- Создание документации
- Внедрение новой функции
- Зафиксируйте изменения и отправьте их обратно в репозиторий.
- Создайте задачу на GitHub и внедрите предложенные изменения.
Это должно заложить хорошую основу для дальнейшей работы с вашими репозиториями и использования Gemini CLI в качестве помощника при выполнении этих задач, специфичных для разработчиков.
Предварительное условие
Для выполнения заданий в этом разделе вам потребуется следующее:
- Гит
- Gemini CLI с расширением Gemini CLI для Github MCP (мы это сделали ранее) или, если у вас уже настроен
gh( инструмент командной строки Github ), это тоже сработает. - Знание основ Git и базовые навыки программирования (в этом примере мы будем использовать Node.js, поскольку у вас, возможно, уже установлена соответствующая среда, так как вы установили Gemini CLI). Но позже вы можете выбрать любой репозиторий с другим языком программирования и фреймворком.
- Вы должны были завершить предыдущий раздел и иметь под рукой репозиторий, где мы создали веб-сайт для выступлений на мероприятиях.
Продолжайте использовать Gemini CLI из папки/каталога, который вы использовали для создания приложения Event Talks, или, если необходимо, вы можете клонировать репозиторий на свой локальный компьютер, а затем запустить Gemini CLI из этого каталога. Попробуйте следующие сценарии, перечисленные ниже:
Понимание кодовой базы
- Я хотел бы подробно разобраться в этом проекте. Помогите мне понять основные функции, а затем разбейте его на серверную и клиентскую части. Приведите примерный сценарий и покажите, как работают запросы и ответы.
-
Explain @server.js
Создание файла README
- Сгенерируйте файл
READMEдля этого проекта.
Внедрение новой функции
- Я хотел бы добавить новую функцию, которая позволит пользователю осуществлять поиск по конкретному спикеру. Сначала покажите план реализации этого изменения, а затем мы сможем сгенерировать код.
Вам будет предоставлен план, который вы сможете утвердить. После утверждения Gemini CLI внесет необходимые изменения. Проверьте внесенные изменения, и если обнаружатся ошибки (что вполне вероятно), попросите Gemini CLI их исправить.
Как только изменения будут выглядеть корректно, вы можете выполнить те же шаги, чтобы зафиксировать их и отправить в удалённый репозиторий.
Создавайте задачи на основе предложенных функций.
Давайте попробуем кое-что интересное. Вы собираетесь обратиться к Gemini CLI с вопросом о том, как можно улучшить пользовательский опыт работы с этим приложением, и на основе его оценки он сможет создать эти предложения в виде задач в том же репозитории Github. Для этого будет использоваться инструмент " create_issue " с сервера Github MCP.
Попробуйте выполнить следующую команду:
- Я хотел бы, чтобы вы оценили приложение с точки зрения пользовательского опыта. Простота использования, скорость отклика, полезные сообщения и многое другое. Пожалуйста, составьте список улучшений, и я хотел бы, чтобы вы создали для них задачи (Issues) в репозитории Github.
В идеале, система сначала поделится с вами информацией об улучшениях, а затем, с вашего разрешения, создаст соответствующие задачи в репозитории Github. Вот пример скриншота из нашего запуска:

Создайте задачу на GitHub и внедрите предложенные изменения.
Теперь вы можете взять одну из ранее возникших проблем и попросить Gemini CLI выполнить её и реализовать.
Пример сгенерированной проблемы показан ниже:

Возьмите полный URL-адрес проблемы и введите запрос следующего вида:
- Пожалуйста, ознакомьтесь с проблемой:
<YOUR_ISSUE_URL>и разберитесь, какие изменения необходимо внести. Сначала обсудите план действий, а затем покажите предлагаемые изменения в коде.
Вы можете одобрить изменения и отправить их в репозиторий. Также вы можете попросить закрыть проблему.
(Необязательно) Ежедневные задачи
Приведенные ниже примеры использования — это задачи, которые вы, возможно, будете выполнять регулярно. К ним относятся упорядочивание файлов по папкам, получение и обобщение контента из интернета, обработка файлов изображений и извлечение из них информации, работа с базами данных и многое другое.
Вы можете свободно изучить любые из предложенных вариантов использования, которые вам понравятся.
Организация файлов/папок
С помощью Gemini CLI вы можете упорядочивать файлы по типам в различных папках по мере необходимости. Перейдите в папку на вашем компьютере, где находятся файлы с расширениями .txt, .png, .jpg, .pdf, .mp4 и другими. Скорее всего, это ваш рабочий стол или папка «Загрузки».
Вот пример папки, содержимое которой показано ниже (у вас могут быть и другие файлы):

Перейдите в эту папку и запустите Gemini CLI. Сначала вам нужно будет попросить Gemini CLI создать несколько папок: Изображения, Документы, Видео, а затем упорядочить файлы в этих папках.
Интерфейс командной строки Gemini часто запрашивает разрешение перед выполнением команд, особенно тех, которые изменяют файловую систему (например, записывают, перемещают или удаляют файлы). Всегда внимательно проверяйте эти запросы, прежде чем предоставлять разрешение. Это ваша гарантия безопасности.
Create the following folders "Images","Documents","Videos"
Затем дайте следующий ответ:
Go through all the files in this folder and then organize them by moving all the files ending with .jpg, .jpeg, .gif into the "Images" folder. Move all ".txt" files into the "Documents" folder. Move all the ".mp4" files in the "Videos" folder.
Ниже показан пример того, каким должно быть конечное состояние папки. Вы должны увидеть созданные новые подпапки и файлы, перемещенные в соответствующие подпапки в зависимости от их типа.

Несколько других вариантов организации (подсказки приведены рядом с каждым вариантом):
- Краткое изложение: Для каждого документа в папке «Документы» создайте в той же папке текстовый файл с именем «summary_ORIGINAL_FILENAME.txt», содержащий краткое изложение основных положений документа в трех предложениях.
- Классификация по типу: Отсканируйте все файлы PDF и DOCX в этой директории. Переместите все файлы, содержащие слово «invoice» в названии или содержимом, в папку «Financial/Invoices». Переместите файлы, содержащие слово «receipt», в папку «Financial/Receipts». Все остальные файлы .docx поместите в папку «Reports».
- Извлечение ключевой информации (и «тегирование»): Для каждого PDF-файла в папке «Финансы/Счета-фактуры» прочтите его содержимое. Если вы обнаружите дату, переименуйте файл, указав эту дату в формате ГГГГ-ММ-ДД, например, «invoice_2025-07-26_original_name.pdf».
Организация изображений
Давайте посмотрим, как можно организовать графическое содержимое на вашем компьютере.
Чтобы это попробовать:
- Вам понадобится папка/каталог с различными файлами изображений (.jpg, .png и т. д.). Включите в него файлы с EXIF-данными (большинство фотографий с камер/телефонов содержат эти данные).
- Перейдите в эту директорию.
- Запустите Gemini CLI.
Попробуйте выполнить любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):
- Переименовать по дате (данные EXIF) : Переименовать все файлы .jpg и .png в этом каталоге, добавив дату их создания из данных EXIF в формате 'YYYYMMDD_HHMMSS_original_name.jpg'. Если дата EXIF не найдена, использовать дату последнего изменения файла.
- Создание описаний изображений: Для каждого изображения в этой папке опишите, что на нем изображено, и сохраните это описание в текстовом файле с именем 'description_ORIGINAL_FILENAME.txt' в том же каталоге.
- Выявление дубликатов (концептуально, требует более сложной логики): Найдите в этой папке все дубликаты изображений на основе их визуального содержимого и перечислите их имена файлов. Пока не удаляйте их.
Краткое изложение статей (в локальных файлах или в интернете)
Для каждого из описанных ниже сценариев вы можете изменить URL-адрес, интересующую вас тему и имена локальных файлов по своему усмотрению. Приведенные имена файлов являются примерами, вы можете заменить их именами файлов, которые есть в вашей системе.
Попробуйте выполнить любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):
- Кратко изложите содержание веб-статьи (по одной ссылке): Перейдите по ссылке https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 и кратко изложите 3 главных вывода из этой новостной статьи.
- Кратко изложите содержание нескольких веб-статей (например, найденных в поиске): Найдите последние новостные статьи о "Gemini CLI" с помощью поиска Google. Для 5 наиболее релевантных статей кратко опишите каждую в 2-3 предложениях и укажите их URL-адреса.
- Краткое изложение содержания локального текстового файла: Кратко изложите основные положения статьи в файле 'my_research_paper.txt'. Сосредоточьтесь на методологии и выводах.
- Кратко изложите содержание локального PDF-файла: Прочитайте файл 'financial_report_Q2_2025.pdf'. Предоставьте краткое описание финансовых результатов и упомянутых ключевых проблем.
Извлечение конкретной информации (из локальных файлов или веб-страниц)
Для каждого из описанных ниже сценариев вы можете изменить URL-адрес, интересующую вас тему и имена локальных файлов по своему усмотрению. Приведенные имена файлов являются примерами, вы можете заменить их именами файлов, которые есть в вашей системе.
Попробуйте выполнить любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):
- Извлечение объектов из локальной статьи: Из файла 'biography.txt' перечислите всех упомянутых лиц и связанные с ними важные даты.
- Извлечение данных из таблицы в PDF-файле: В файле 'quarterly_sales.pdf' извлеките данные из таблицы на странице 3, отображающей "Продажи продукции по регионам", и представьте их в формате таблицы Markdown.
- Extract news headlines and sources from a news website: Go to 'https://news.google.com/' (or a similar news site). Extract the main headlines from the front page and their corresponding news sources. Present them as a bulleted list.
- Find product specifications from an e-commerce page: Browse to 'https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441' (example for a book). Extract the book title, author and other details. Present this in a structured JSON format.
- Extract duration from a video , in a certain format (eg "2h37m42s").
Answering Questions based on Content (RAG-like behavior)
For each of the scenarios below, feel free to change the url, topic of interest and the local file names as applicable. The filenames provided are sample file names, you can replace them with filenames of files that you have on your system.
Try out any of the following scenarios (the prompts are given next to each scenario):
- Q&A on a local document: I'm attaching 'user_manual.pdf'. What are the steps to troubleshoot network connectivity issues?
- Q&A on a web page: Using the content from 'https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health', what are the primary health risks associated with climate change according to WHO?
- Compare information across multiple sources: I have two news articles: 'article1.txt' and 'article2.txt', both discussing the recent economic policy changes. Compare and contrast their views on the potential impact on small businesses.
Content Generation based on Extracted Information
For each of the scenarios below, feel free to change the url, topic of interest and the local file names as applicable.
Try out any of the following scenarios (the prompts are given next to each scenario):
- Generate a news brief from an article: Read @tech_innovation_article.txt. Write a short, engaging news brief (around 150 words) suitable for a company newsletter, highlighting the new technology and its potential.
- Draft an email summarizing a meeting transcript: Here is a meeting transcript file: @meeting_transcript.txt. Draft an email to the team summarizing the key decisions made and action items assigned, including who is responsible for each.
Gemini CLI multi-modal support
Gemini CLI has multi-model support via Gemini and you can ask it to process files of different content formats as per your requirements.
You are going to process a bunch of invoice images with Gemini CLI and extract key information from them. Follow the steps given below:
- Create a folder on your machine and download some invoices from the following Github repository .
- Launch Gemini CLI from that folder
Give the following prompt to extract out information from the invoices in the form of a table.
The current folder contains a list of invoice files in Image format. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.
You should ideally get an output that looks like this:

Here is another scenario, where you can ask for additional derived columns. Let's say that you want to show a red cross emoji for all the invoice due dates that are in the past. You can give a prompt as follows:
list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.
This produces the following output:

Apply this to any of your own files that are in formats other than text.
Using Gemini CLI to work with databases
You can use Gemini CLI to more efficiently work with various databases. You can use it for multiple scenarios: querying with natural language, exporting data, designing database schemas, generating realistic test data and more.
You shall be using SQLite3 to do this task. You will need to install SQLite3 and have the sample Chinook database .
Here are brief instructions for setting up SQLite3:
- macOS: SQLite3 comes pre-installed. Verify with
sqlite3 --version. If needed, install with Homebrew:brew install sqlite3. - Windows: Download the precompiled binaries from the SQLite website . Extract the files to a directory (eg,
C:\sqlite). Add that directory to your system's PATH environment variable. - Linux: Debian/Ubuntu:
sudo apt update && sudo apt install sqlite3
Download the sample Chinook database (here is a direct link to download it).
To run these prompts, it is suggested that you create a folder ( database-tasks ) in the gemini-cli-projects directory. Copy the Chinook database file to that folder. Ensure that the sqlite3 tool is set up on your system and available in the path, so that Gemini CLI can use that. Launch Gemini CLI.
The database schema diagram is shown below:

Let's assume that you are in a folder named database-tasks and the Chinook database file is named chinook.db .
Several prompts are given below that can help you work with databases. Let's cover the first one in brief to demonstrate the permission that will be requested.
Start off with the prompt to list down the tables that are present in the database, give the following prompt:
What tables are present in the file: chinook.db
This uses the tool to read the file and then wants to use sqlite3 utility present on your system to do the needful:

Provide the permission to run it once to get the expected output:

Try out the following prompts or any other prompt of your choice:
- How many employees are there?
- What is the schema of the invoices table?
- Which are the top 3 invoices by total and which customers have placed those invoices?
You will notice that Gemini CLI takes care of two things: Generating the correct SQL statement to meet your requirement and giving the correct sqlite3 command.
Using Gemini CLI to generate data
You can prompt Gemini CLI to produce data in various data formats. This could range from content pieces to JSON data, that you might need to mock. Let's focus here on scenarios applicable to developers/testers.
Here are some prompts to try out:
Generate JSON data of sample customer reviews
Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).
Generating Mock API Responses (JSON)
Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').
Generating Sample Database Insert Statements (SQL)
Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.
Generating CSV Data for Data Loading/Analysis
Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).
Generate a Configuration file (YAML)
Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.
Generating Test Data for Edge Cases/Validation
Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).
11. Congratulations
Congratulations, you've successfully explored Gemini CLI, its capabilities and applied it to a few use cases.