К основному содержанию
скилл Claude Code Gemini CLI CX Codex официальный · Google

gemini-live-api — скилл для Claude Code: что делает и установка

Скилл создаёт клиент Gemini LiveAPI для двустороннего обмена по WebSocket. Подойдёт для генерации сервиса с сессиями, авторизацией и потоковыми данными.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add google/skills --skill gemini-live-api -a claude-code
Открыть на GitHub

Что делает gemini-live-api

Скилл генерирует класс клиентского сервиса на выбранном языке для Gemini Enterprise LiveAPI. Клиент подключается по WebSocket, обменивается сообщениями ClientMessage и ServerMessage, поддерживает текст, аудио, видео и транскрипцию. Асинхронный API включает отправку realtime-данных, контента с историей и приём сообщений от модели.

В комплект входят proto-файлы, материалы для управления сессиями, тест с текстом, аудио и видео, how_to_run.md, а также демо с фронтендом и бэкендом. Для работы нужны проект Google Cloud с включёнными Vertex AI / Gemini Enterprise Agent Platform APIs и Application Default Credentials, которые настраиваются командой gcloud auth application-default login. Код и окружение создаются в выбранной папке вывода. Ставьте скилл, если нужен живой двусторонний канал; для generateContent, embeddings или генерации изображений нужен другой скилл.

Какие задачи решает

  • создать клиент Gemini LiveAPI на выбранном языке
  • подключить сервис к WebSocket endpoint
  • обрабатывать возобновление сессии после разрыва
  • передавать модели текст, аудио и видео
  • проверить клиент через демо с фронтендом и бэкендом

Примеры запросов агенту

  • Создай Python-клиент Gemini LiveAPI для `project_id`, `location` и `model_id`.
  • Сгенерируй сервис с отправкой `realtime_input`, `client_content` и приёмом `ServerMessage`.
  • Подготовь демо с текстом, аудио, видео и обработкой `setup_complete`.

Как установить gemini-live-api

1Через Skills CLI (Vercel)

npx skills add google/skills --skill gemini-live-api -a claude-code

2Вручную: положить файлы

~/.claude/skills/gemini-live-api/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/gemini-live-api/

Из того же набора172

Весь набор →
bigquery-basics официальный google Управляет ресурсами BigQuery и запускает SQL-запросы. Подходит для создания датасетов, таблиц, представлений и базовой загрузки данных. Claude Code Gemini CLI CX Codex 17 678установок cloud-run-basics официальный google Скилл помогает управлять Cloud Run: разворачивать HTTP-сервисы, запускать задачи по событию или расписанию и вести фоновые worker pools. Claude Code Gemini CLI CX Codex 17 532установок gemini-api официальный google Подключает Gemini API из Agent Platform Google Cloud к агенту. Даёт доступ к моделям Gemini, мультимодальному вводу, вызову функций и кешированию контекста. Claude Code Gemini CLI CX Codex 17 116установок google-cloud-recipe-auth официальный Google LLC Скилл объясняет аутентификацию и права доступа в Google Cloud. Пригодится для настройки IAM, ADC и сервисных аккаунтов в разработке и продакшене. Claude Code Gemini CLI CX Codex 15 450установок google-cloud-recipe-onboarding официальный Google LLC Проводит разработчика через старт в Google Cloud: проверяет CLI, вход, проект и биллинг. Подходит для первого личного проекта. Claude Code Gemini CLI CX Codex 15 390установок cloud-sql-basics официальный google Скилл помогает создавать и объяснять Cloud SQL для MySQL, PostgreSQL и SQL Server. Пригодится при настройке базы в Google Cloud. Claude Code Gemini CLI CX Codex 14 679установок google-cloud-waf-security официальный google Скилл оценивает безопасность рабочих нагрузок в Google Cloud и предлагает меры для IAM, сетевой защиты, данных и операционной безопасности. Claude Code Gemini CLI CX Codex 14 620установок google-cloud-waf-cost-optimization официальный google Проверяет расходы Google Cloud по pillar Cost Optimization из Well-Architected Framework. Нужен для поиска простаивающих ресурсов, выбора скидок и правки размеров сервисов. Claude Code Gemini CLI CX Codex 14 266установок

Похожие

Вопросы о gemini-live-api

Как установить gemini-live-api в Claude Code?

Выполните npx skills add google/skills --skill gemini-live-api -a claude-code. Файл скилла появится по пути ~/.claude/skills/gemini-live-api/SKILL.md.

Что делает gemini-live-api?

Скилл создаёт асинхронный клиент Gemini Enterprise LiveAPI. Он открывает WebSocket-соединение, обновляет bearer-токен, возобновляет сессию и обменивается ClientMessage и ServerMessage.

Что нужно подготовить для работы с gemini-live-api?

Нужен проект Google Cloud с включёнными Vertex AI / Gemini Enterprise Agent Platform APIs и настроенными Application Default Credentials. Также потребуется папка, куда будут записаны клиент, окружение и демо.

Исходный текст

SKILL.md · Apache-2.0
---
name: gemini-live-api
metadata:
  version: "1.0.1"
  category: AiAndMachineLearning
description: >-
  Generates a Gemini LiveAPI client service class in the user's chosen programming
  language. Use when the user wants to build, scaffold, or integrate a client
  that connects to the Gemini Enterprise LiveAPI websocket endpoint, handles
  session setup/resumption, bearer token refresh, and sending/receiving
  `ClientMessage`/`ServerMessage` protos. Don't use for general (non-live,
  non-bidirectional) Gemini API usage such as one-shot `generateContent`,
  embeddings, image/video generation, or fine-tuning — use the `gemini-api`
  skill for those.
---

# LiveAPI Service Skill

This skill provides instructions for generating a **LiveAPI client service
class** that connects to the Gemini Enterprise Live API over WebSockets. The
generated client handles bidirectional streaming, bearer-token authentication
via Application Default Credentials (ADC), transparent session resumption, and
`ClientMessage` / `ServerMessage` proto exchange.

The skill also produces a demo frontend + backend service so the user can
interactively validate the generated client (text, audio, video, transcription,
and interrupt handling).

## Attribution

**MUST READ**: Before executing any `gcloud`, REST API, or MCP command, you
MUST read [Usage Attribution](references/attribution.md). For commands executed
directly in the terminal (never in generated scripts, Terraform, or user code),
prefix `gcloud` with
`CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:gemini-live-api)"`
and append `agent-skills/1.0 (skill:gemini-live-api)` to `User-Agent` headers.

## Prerequisites

Before running the generation flow, ensure the following are available on the
host:

-   A Google Cloud project with the Vertex AI / Gemini Enterprise Agent Platform
    APIs enabled.
-   Application Default Credentials configured on the host running the generated
    client:

    ```bash
    gcloud auth application-default login
    ```

-   A destination output folder supplied by the user (e.g. `/tmp/liveapi_out`)
    where the generated code, environment, and demo will be written. **Never**
    mutate the host's system Python environment.

-   The user's chosen implementation language (Python is the default and
    reference language for this skill).

## Reference Files

Provided files in `references/` (do **not** treat these as standalone skills —
they are loaded on demand):

-   `client_server_messages.md`: Public reference for the `ClientMessage` /
    `ServerMessage` schemas used by the Live API.
-   `client_server_messages.proto`: The proto definition generated from
    `client_server_messages.md`.
-   `session_manager.md`: Describes how to correctly handle sessions, buffering,
    and resumption on disconnection.

## Steps

### Step 1: Copy the reference files

Copy `client_server_messages.md`, `client_server_messages.proto`, and
`session_manager.md` from this skill's `references/` folder into the user's
destination output folder. These files become the source of truth for the
generated client.

### Step 2: Reconcile with the public documentation

Examine the public documents linked from `client_server_messages.md`. If there
are any discrepancies between the public documents and the copied
`client_server_messages.md` / `client_server_messages.proto`, update the copies
in the destination folder so the generated client compiles and runs against the
current server contract.

### Step 3: Implement the client class

Implement a class in the user's chosen language that:

-   Imports the local `client_server_messages.proto` types (`ClientMessage`,
    `ServerMessage`).
-   Opens a WebSocket connection to the Live API endpoint.
-   Exposes async methods so the user can send and receive data to/from the
    model.

For languages that require an isolated runtime (e.g. Python), create an isolated
environment (e.g. `venv`) **inside the destination folder** and generate a bash
script (e.g. `setup.sh`) that recreates the environment and installs
dependencies. **Never** install into the system interpreter or the user's global
site-packages, and never instruct the user to run `sudo pip install`.

#### Initialization parameters

The user provides the following at construction time:

-   `project_id`
-   `location`
-   `model_id`
-   `config`: a `ClientMessage` with the `setup` field populated.

#### Authentication

Obtain a bearer token via Application Default Credentials, attach it to the
WebSocket connect request as `Authorization: Bearer <token>`, refresh the token
before or upon expiry, and reuse the refreshed token on every reconnection
(including `go_away` and unexpected disconnects). **Do not** hard-code a
long-lived API key as the only auth mechanism.

#### Public async API

The class MUST expose the following async methods, gated on receipt of a
`setup_complete` `ServerMessage` before sending:

-   `send_realtime_data(data)`: send realtime input. `data` is a `ClientMessage`
    carrying a `realtime_input` field.
-   `send_client_content(data)`: send non-realtime, turn-based content that
    contributes to history. `data` is a `ClientMessage` carrying a
    `client_content` field.
-   `receive()`: yield `ServerMessage` instances parsed from the WebSocket
    stream.

Do not expose synchronous blocking variants as the primary API surface.

### Step 4: Write a test file

Once the client is implemented, generate a test file that initializes the
connection and exercises sending `text`, `audio`, and `video` data and receiving
the responses. Ask the user for any information required to run the test
(project, model, media samples).

### Step 5: Generate `how_to_run.md`

Provide a `how_to_run.md` in the destination folder that documents the generated
class. Include full examples showing how to build `ClientMessage` payloads for
every supported modality, how to send them, and how to receive data from the
model.

### Step 6: Generate a demo frontend + backend service

Create scripts that deploy the implementation as a service with both a frontend
UI and a backend service (any language). The service MUST reuse the
`ClientMessage` / `ServerMessage` protos from Step 1 for wire traffic. Through
the UI the user should be able to:

-   Start a new connection / close the current connection.
-   Select the model to use.
-   Select input sources (audio and/or video from camera or screenshot) and
    stream them to the model.
-   Send a text message to the model.
-   Hear model audio and see the interleaved model and user transcription /
    conversation history.

While implementing audio and transcription playback, follow the guidance in
[Live API best practices](https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/live-api/best-practices).

#### Handling the `interrupt` signal

When a `ServerMessage`'s `server_content` arrives with `interrupted: true`, the
UI MUST:

-   Ensure played audio and its corresponding transcription remain time-aligned.
-   Immediately stop the currently playing model audio and stop appending to the
    in-progress transcription bubble.
-   Clear the unplayed audio buffer and any pending unrendered transcription so
    stale content does not bleed into the next turn.
-   Start new chat bubbles for the next user and model turns.

#### Handling the transcription `finished` signal

For streamed `input_transcription` / `output_transcription` chunks, append to
the currently active bubble while `finished` is unset, and close that bubble and
start a fresh one when `finished` is observed. Route `input_transcription` text
to user-role bubbles and `output_transcription` text to model-role bubbles.

### Step 7: Generate `how_to_test_with_ui.md`

Write `how_to_test_with_ui.md` describing how to launch and use the demo
service. It MUST include:

-   The exact shell command(s) or script invocation(s) to start the backend
    service.
-   The exact shell command(s) or script invocation(s) to start the frontend UI.
-   The host and port (e.g. `http://localhost:PORT`) the user should open in
    their browser.
-   How to start a session, select a model, choose input sources (mic, camera,
    screen), send a text message, and observe model audio and transcription in
    the UI.

## Validation Checklist

Before considering the generation complete, verify each item:

-   [ ] `client_server_messages.md`, `client_server_messages.proto`, and
    `session_manager.md` were copied into the destination folder.
-   [ ] The generated client imports the local proto-generated `ClientMessage`
    and `ServerMessage` types.
-   [ ] The client connects to the Live API WebSocket at
    `wss://{location}-aiplatform.googleapis.com/ws/google.cloud.aiplatform.v1beta1.LlmBidiService/BidiGenerateContent`
    (or the `wss://aiplatform.googleapis.com/...` global variant), and formats
    the setup `model` field as
    `projects/{project_id}/locations/{location}/publishers/google/models/{model_id}`.
-   [ ] Authentication uses ADC-provided bearer tokens sent as `Authorization:
    Bearer <token>`, is refreshed before expiry, and reattached on every
    reconnect.
-   [ ] Public async methods `send_realtime_data`, `send_client_content`, and
    `receive` are present, correctly typed, and gated on `setup_complete`.
-   [ ] Transparent session resumption is enabled
    (`session_resumption.transparent = true`), the latest `new_handle` is
    tracked, sent-message indexing starts at 1, the buffer is pruned via
    `last_consumed_client_message_index`, and buffered messages are replayed on
    reconnect (including on `go_away` and WebSocket close codes 1000 / 1006).
-   [ ] If using python, an isolated environment (e.g. `venv`) plus a `setup.sh`
    and `requirements.txt` (or equivalent) exist inside the destination folder;
    no changes were made to system or user-global Python.
-   [ ] `how_to_run.md` and `how_to_test_with_ui.md` are present, and the demo
    UI reuses the same `ClientMessage` / `ServerMessage` protos.
-   [ ] Interrupt handling and transcription `finished` handling behave as
    described above.
-   [ ] The client does **not** target `generativelanguage.googleapis.com` and
    does **not** authenticate via API key in a query string.

© google · Apache-2.0 · google/skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой