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 локально, следуйте приведенным ниже инструкциям. Обратите внимание, что Gemini CLI предустановлен в Cloud Shell и Cloud Workstations .
Первый шаг — установка 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, в этой лабораторной работе.
Если вы достигли лимита текущей бесплатной квоты для учетных записей Google, вы можете использовать ключ API Gemini или даже Google Cloud Vertex AI, для чего вам потребуется идентификатор проекта и название местоположения этого проекта. Если вы планируете использовать другие методы аутентификации, обратитесь к разделу «Аутентификация» в документации.

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

В данном случае мы выбрали опцию Vertex AI, но в вашем случае это может быть и личный аккаунт. Обратите внимание, что мы выбрали модель Gemini 2.5 (видна в правом нижнем углу). Вы можете в любой момент выбрать свою конкретную модель, используя команду /model .
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 . Если бы вы выбрали другую тему, вы бы увидели её название там.
{
"security": {
"auth": {
"selectedType": "oauth-personal" or "cloud-shell"
}
},
"ui": {
"theme": "Default"
}
}
5. Наше первое взаимодействие с Gemini CLI
Начнём работу с Gemini CLI и введём свой первый запрос, как показано ниже:
Give me a famous quote on Artificial Intelligence and who said that?
Ожидаемый ответ показан ниже:
> Give me a famous quote on Artificial Intelligence and who said that?
✦ "The only way to do great work is to love what you do." - Steve Jobs (While not directly about AI, it's a famous quote related to technology and innovation, which underpins AI development.)
Alternatively:
"The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking
Быстрый способ разобраться в Gemini CLI и различных командах, которые он поддерживает, — это ввести /help (косая черта), и вы увидите множество команд и сочетаний клавиш.
Давайте пока закроем Gemini CLI. Это можно сделать либо с помощью команды /quit , либо дважды нажав Ctrl-C в интерактивном терминале Gemini CLI. После выхода из Gemini CLI отобразится статистика вашей сессии, которая даст вам представление о вашей сессии, использовании моделей и других показателях.
6. Gemini CLI — Параметры команды
При запуске Gemini CLI можно указать несколько параметров командной строки. Чтобы получить полный список параметров, используйте опцию --help как показано ниже.
gemini --help
Здесь должен быть представлен полный спектр доступных опций. Рекомендуем ознакомиться с документацией здесь .
Рассмотрим несколько из них. Первый — это настройка Gemini CLI для использования определенного режима Gemini. На момент обновления этой лабораторной работы список поддерживаемых моделей выглядит следующим образом. Чтобы использовать определенную модель, это можно сделать при запуске Gemini CLI с помощью параметра -m как показано ниже:
gemini -m "gemini-2.5-flash"
Вы заметите, что если вы запустите программу описанным выше способом, то сможете проверить модель в правом нижнем углу терминала Gemini CLI.
После запуска приложения Gemini CLI вы можете использовать команду /model для открытия диалогового окна, позволяющего выбрать модель. Пример запуска показан ниже, и в зависимости от ваших требований и предоставленных рекомендаций вы можете переключать модели, выбирая наиболее подходящую для задачи в зависимости от сложности и необходимости контроля затрат.

Неинтерактивный режим
Интересный вариант — запуск Gemini CLI в неинтерактивном режиме. Это означает, что вы напрямую указываете ему командную строку, и он ответит на неё, без открытия интерактивного терминала Gemini CLI. Это очень полезно, если вы планируете использовать Gemini CLI в автоматизированном режиме в рамках скрипта или любого другого процесса автоматизации. Для указания командной строки Gemini CLI используется параметр -p , как показано ниже:
gemini -p "What is the gcloud command to deploy to Cloud Run"
Имейте в виду, что возможности продолжить разговор с помощью дополнительных вопросов отсутствуют. Этот режим также не позволяет авторизовать инструменты (включая WriteFile) или запускать команды оболочки.
Помните, что если вы пропустите параметр -p и укажете только следующее, откроется Gemini CLI с приглашением командной строки, и вы продолжите работу в этом окне.
gemini "What is the gcloud command to deploy to Cloud Run"
7. Gemini CLI — встроенные инструменты
Gemini CLI поставляется с набором встроенных инструментов, и в документации к ним говорится: «Модель Gemini использует эти инструменты для взаимодействия с вашей локальной средой, доступа к информации и выполнения действий. Эти инструменты расширяют возможности CLI, позволяя ему выходить за рамки генерации текста и помогать в решении широкого спектра задач».
Чтобы получить список встроенных инструментов, выполните команду /tools как показано ниже:
Available Gemini CLI tools:
- Activate Skill (activate_skill)
- Ask User (ask_user)
- Edit (replace)
- Enter Plan Mode (enter_plan_mode)
- FindFiles (glob)
- GoogleSearch (google_web_search)
- Invoke Subagent (invoke_agent)
- List Background Processes (list_background_processes)
- Read Background Output (read_background_output)
- ReadFile (read_file)
- ReadFolder (list_directory)
- SearchText (grep_search)
- Shell (run_shell_command)
- Update Topic Context (update_topic)
- WebFetch (web_fetch)
- WriteFile (write_file)
Первое, что должно сразу же насторожить, это вопрос: может ли 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 для поиска в интернете и получения результатов, как показано ниже:
Searching for Finance News:
I will first search for the latest finance headlines and then save them to a file.
✓ GoogleSearch Searching the web for: "latest finance headlines"
→ Search results for "latest finance headlines" returned.
Saving Finance News: I will now save the finance headlines to the file 'finance-news-today.txt'.
После этого программа будет готова записать данные в файл, используя инструмент WriteFile , но поскольку это конфиденциальная операция ( запись ), она запросит ваше разрешение. Вы можете выбрать тип разрешения, например, разрешить один раз, разрешить всегда и т. д. Пока что выберите «Разрешить один раз».
После этого информация будет записана в файл, и ниже отобразится сообщение об успешном завершении:
✦ I have saved the latest finance news to finance-news-today.txt.
Finance News Saved: The task is complete.
Как проверить, записан ли файл? Можно использовать символ @file , чтобы запросить чтение содержимого. Когда вы вводите @ , отображается список файлов в текущей папке, и на экране появляется только что созданный файл. Выберите его и отправьте запрос. Мой запрос показан ниже:
read the contents of @finance-news-today.txt
В результате запускаются необходимые инструменты (ReadManyFiles, ReadFile), и отображается содержимое, как показано ниже:
✓ ReadManyFiles Attempting to read files from finance-news-today.txt → Read 1 file(s)
Topic: Summarizing the financial news headlines.
✦ The latest finance headlines as of May 15, 2026, include:
Global Markets & Economy:
* The Dow Jones Industrial Average surpassed 50,000 for the first time, driven by strong earnings from Cisco
Systems and a 2% rise in Nasdaq due to tech stocks.
* Inflation concerns are growing, hinting at potential Fed interest rate hikes.
* Kevin Warsh has been confirmed as the new Federal Reserve head.
* A "constructive" U.S.-China summit took place in Beijing between President Trump and President Xi, with
markets watching for impacts from proposed tariffs.
Corporate & Tech News:
<REST OF THE CONTENT>
8. Gemini CLI — режим командной оболочки
Сейчас самое время научиться работать непосредственно с оболочкой из Gemini CLI. Вы можете перейти в режим оболочки, нажав восклицательный знак ! в окне сообщения. Это переключит вас в режим оболочки. Вернуться в этот режим можно, снова нажав восклицательный знак ! или клавишу ESC .
В режиме командной оболочки вы увидите восклицательный знак ! в начале приглашения командной строки, как показано ниже:

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

Вы также можете распечатать содержимое файла с помощью команды cat , например, ` cat finance-news-today.txt .
Упражнение : Вот небольшое упражнение для самостоятельной работы. Выберите любую 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, а также сторонних разработчиков:
- Откройте в браузере следующую ссылку:
https://geminicli.com/extensions/ - Эта галерея служит инструментом поиска информации в экосистеме. Здесь вы можете увидеть расширения от таких компаний, как 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.
gemini extensions config [name] [setting]
Configure extension settings.
Options:
Команды довольно простые (install/uninstall, list, update, enable/disable и т. д.), и некоторые из них мы будем использовать в этом практическом занятии.
Проверьте текущий список расширений.
Прежде чем что-либо устанавливать, давайте начнем с чистого листа.
- Выполните команду
gemini extensions list: - Вы должны увидеть следующий вывод, подтверждающий, что никакие расширения еще не установлены.
No extensions installed.
Настройка сервера 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 запросит у вас идентификатор вашего проекта Google и местоположение проекта Google. Предоставьте эти данные. После этого расширение Cloud Run должно успешно установиться.
Если теперь выполнить команду gemini extensions list , вы должны увидеть установленное расширение Cloud Run, как показано ниже:
✓ cloud-run (1.0.0)
ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
Path: /Users/romin/.gemini/extensions/cloud-run
Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: github-release)
Release tag: v1.10.0
Enabled (User): true
Enabled (Workspace): true
Context files:
/Users/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
MCP servers:
cloud-run
Settings:
Project ID: YOUR_GCP_PROJEC_ID (User - /Users/romin/.gemini/extensions/cloud-run/.env)
Region: YOUR_GCP_PROJECT_LOCATION (User - /Users/romin/.gemini/extensions/cloud-run/.env)
Если вы сейчас запустите Gemini CLI и выполните команду /mcp list , вы увидите следующее. Обратите внимание на инструменты и подсказки сервера Cloud Run MCP.
Configured MCP servers:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
Tools:
- mcp_cloud-run_create_project
- mcp_cloud-run_deploy_container_image
- mcp_cloud-run_deploy_file_contents
- mcp_cloud-run_deploy_local_folder
- mcp_cloud-run_get_service
- mcp_cloud-run_get_service_log
- mcp_cloud-run_list_projects
- mcp_cloud-run_list_services
Prompts:
- deploy
- logs
Это лишь один из примеров расширения Gemini CLI, настройку которого мы показали. Вы можете посмотреть галерею расширений , чтобы узнать о других.
10. Варианты использования для тестирования
Gemini CLI может применяться в самых разных сценариях, актуальных как для разработчиков, так и для тех, кто не занимается разработкой. Здесь представлены несколько сценариев, и в зависимости от ваших интересов вы можете попробовать любой из них или все сразу.
В каждом из этих случаев отображается приглашение к вводу. Вы можете попробовать это в интерактивном или неинтерактивном режиме Gemini CLI, используя параметр -p при запуске Gemini CLI.
Программирование на Vibe с использованием Gemini CLI
Давайте воспользуемся Gemini CLI для создания приложения с помощью Vibe Code. В этом задании вы попросите Gemini CLI сгенерировать приложение, а затем загрузить его начальную версию в репозиторий GitHub.
Предварительное условие
Для выполнения заданий в этом разделе необходимо выполнить несколько предварительных условий:
- Гит
- Gemini CLI
- Настройте
gh( инструмент командной строки GitHub ). - Знание основ Git и базовые навыки программирования.
Предположим, вы запустили Gemini CLI из выбранной вами папки . В нашем случае мы запустили Gemini CLI из исходной домашней папки: gemini-cli-projects и расположенной внутри неё папки event-website .
Начните с первоначального запроса. Рассматривайте его как спецификацию вашего приложения. Вы можете изменять его по своему усмотрению. Помните, что на протяжении всего сеанса работы с 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 разработает план и запросит у вас подтверждения/уточнения или продолжит. Пожалуйста, следуйте инструкциям. В качестве примера, вот мой образец диалога:
✦ Of course. I will start by creating a plan for the application.
Plan:
1. Backend (Node.js):
* I'll set up a simple Node.js server using the Express.js framework.
* This server will have two main purposes:
1. Serve the static frontend files (HTML, CSS, JavaScript).
2. Provide an API endpoint (e.g., /api/talks) that will send the event schedule data to the frontend as a JSON object.
* The talk data will be stored in a separate talks.json file for easy management.
2. Frontend (HTML, CSS, JS):
* HTML: A single index.html file will define the structure of the page, including a container for the schedule and a search input field for filtering by category.
* CSS: A style.css file will be used to style the website for a clean and professional look, ensuring the schedule is easy to read.
* JavaScript: A script.js file will handle the dynamic aspects of the site:
1. It will fetch the talk data from the backend API when the page loads.
2. It will dynamically render the schedule on the page based on the fetched data.
3. It will implement the search functionality. As the user types in the search box, it will filter the displayed talks based on the category keywords.
3. Project Structure:
I will organize the project with a clear and standard structure:
1 /
2 ├── public/
3 │ ├── index.html
4 │ ├── style.css
5 │ └── script.js
6 ├── talks.json
7 └── server.js
8 └── package.json
Before I proceed with generating the code, I have a few questions to ensure the final product meets your expectations:
Оно даже задает мне несколько вопросов (показаны ниже, и я на них отвечаю):

Затем программа генерирует код, запрашивая у меня подтверждения в нескольких местах, и я предоставляю необходимые разрешения для продолжения работы.
Наконец, сервер запустился и предложил мне проверить страницу:
The server is now running in the background.
3. View Your Website
You can now open your web browser and navigate to the following address to see your website:
http://localhost:3000 (http://localhost:3000)
4. Test the Search Functionality
Once the page is loaded, you can test the search functionality by typing a category into the search bar (e.g., "AI", "Frontend", "Cybersecurity"). The list of talks
will filter in real-time.
This completes the setup and implementation of your event website. Let me know if you have any other questions.
Вот пример сгенерированной страницы:

С помощью 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 и
gh( инструмент командной строки GitHub ). - Знание основ Git и базовые навыки программирования (в этом примере мы будем использовать Node.js, поскольку у вас, возможно, уже установлена соответствующая среда, так как вы установили Gemini CLI). Но позже вы можете выбрать любой репозиторий с другим языком программирования и фреймворком.
- Вы должны были завершить предыдущий раздел и иметь под рукой репозиторий, где мы создали веб-сайт для выступлений на мероприятиях.
Продолжайте использовать Gemini CLI из папки/каталога, который вы использовали для создания приложения Event Talks, или, если необходимо, вы можете клонировать репозиторий на свой локальный компьютер, а затем запустить Gemini CLI из этого каталога. Попробуйте следующие сценарии, перечисленные ниже:
Понимание кодовой базы
- Я хотел бы подробно разобраться в этом проекте. Помогите мне понять основные функции, а затем разбейте его на серверную и клиентскую части. Приведите примерный сценарий и покажите, как работают запросы и ответы.
-
Explain @server.js
Создание файла README
- Сгенерируйте файл
READMEдля этого проекта.
Внедрение новой функции
- Я хотел бы добавить новую функцию, которая позволит пользователю осуществлять поиск по конкретному спикеру. Сначала покажите план реализации этого изменения, а затем мы сможем сгенерировать код.
Вам будет предоставлен план, который вы сможете утвердить. После утверждения Gemini CLI внесет необходимые изменения. Проверьте внесенные изменения, и если обнаружатся ошибки (что вполне вероятно), попросите 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.
- Извлечение заголовков новостей и источников с новостного сайта: Перейдите по ссылке «https://news.google.com/» (или аналогичному новостному сайту). Извлеките основные заголовки с главной страницы и соответствующие им источники новостей. Представьте их в виде маркированного списка.
- Найдите технические характеристики товара на странице интернет-магазина: перейдите по ссылке 'https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441' (пример для книги). Извлеките название книги, автора и другие данные. Представьте эту информацию в структурированном формате JSON.
- Извлеките фрагмент видео определенного формата (например, "2h37m42s").
Отвечать на вопросы, основываясь на содержании (поведение, подобное RAG)
Для каждого из описанных ниже сценариев вы можете изменить URL-адрес, интересующую вас тему и имена локальных файлов по своему усмотрению. Приведенные имена файлов являются примерами, вы можете заменить их именами файлов, которые есть в вашей системе.
Попробуйте выполнить любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):
- Вопрос-ответ по локальному документу: Я прикрепляю файл 'user_manual.pdf'. Какие шаги необходимо предпринять для устранения проблем с сетевым подключением?
- Вопросы и ответы на веб-странице: Используя информацию с сайта 'https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health', каковы основные риски для здоровья, связанные с изменением климата, по мнению ВОЗ?
- Сравните информацию из нескольких источников: у меня есть две новостные статьи: «article1.txt» и «article2.txt», в обеих обсуждаются недавние изменения в экономической политике. Сравните и сопоставьте их взгляды на потенциальное влияние на малый бизнес.
Создание контента на основе извлеченной информации.
Для каждого из описанных ниже сценариев вы можете изменить URL-адрес, интересующую вас тему и имена локальных файлов по своему усмотрению.
Попробуйте выполнить любой из следующих сценариев (подсказки приведены рядом с каждым сценарием):
- Создайте краткую новость на основе статьи: прочитайте @tech_innovation_article.txt. Напишите короткую, увлекательную новость (около 150 слов), подходящую для корпоративной рассылки, в которой будет освещена новая технология и ее потенциал.
- Составьте электронное письмо с кратким изложением стенограммы совещания: Вот файл со стенограммой совещания: @meeting_transcript.txt. Составьте электронное письмо команде с кратким изложением принятых ключевых решений и назначенных задач, включая ответственных за каждую из них.
Поддержка многорежимного режима в Gemini CLI
Gemini CLI поддерживает работу с несколькими моделями файлов, и вы можете настроить его на обработку файлов различных форматов в соответствии с вашими требованиями.
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.
В результате получается следующий вывод:

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:
- Сколько сотрудников в компании?
- 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.