Yandex Station TTS skill

claude-skill-yandex-tts

A Claude Code skill that speaks answers in Alice's voice on a Yandex Station over the local network

SkillHigh riskRussian stack

rasperepodvipodvert/claude-skill-yandex-tts

Install

git clone git@github.com:rasperepodvipodvert/claude-skill-yandex-tts.git ~/.claude/skills/speak
cp ~/.claude/skills/speak/.env.example ~/.claude/skills/speak/.env

Then fill in MUSIC_TOKEN, DEVICE_ID and DEVICE_PLATFORM in .env.

This is third-party code. Review the repository files before installing.

What it does

The /speak skill sends short text to a Yandex Station, which reads it aloud in Alice's voice. The tts.py script gets a conversation_token via the Yandex Quasar API, connects to the station over the Glagol WebSocket protocol on port 1961 and sends a repeat_phrase command. The station IP is found via mDNS, and the session token is cached for 25 minutes. Markup is stripped and long texts are cut to 500 characters.

Who it is for. For Yandex Station owners who want to hear short Claude Code results spoken aloud.

Good fit when

  • You want a voice notification when a long build or task finishes
  • You want a short answer spoken through the speaker

Not a fit when

  • The computer and the station are on different networks
  • You do not want to obtain a Yandex OAuth token from the Session_id cookie

Example request

/speak Say through the speaker that the build has finished

Limitations

Station auto-discovery works on macOS via dns-sd; on Linux you set the IP manually. Requires Python 3.10+ and the station on the same local network. MUSIC_TOKEN is obtained with public Yandex Music app client IDs and lasts about a year. Only Russian text up to 500 characters is spoken.

How to disable. Remove ~/.claude/skills/speak together with the .env file that stores the token.

Security check

  • The token is derived from the Yandex account Session_id cookie
  • An OAuth token with broad access is stored in .env for about a year
  • The script connects to devices on the local network

README in short

The README describes a Claude Code skill that speaks text on a Yandex Station via the local Glagol protocol. Setup covers cloning into ~/.claude/skills/speak, creating .env, getting MUSIC_TOKEN using the AlexxIT/YandexStation method and choosing a device. It lists config variables, features such as text cleanup and the 500-character limit, and a table of compatible speakers.

SKILL.md

---
name: speak
description: Озвучить текст через Яндекс Станцию. Используй когда пользователь просит озвучить ответ, сказать что-то через колонку, или когда в разговоре уместно озвучить ответ голосом.
---

# Speak — озвучка через Яндекс Станцию

Отправляет текст на Яндекс Станцию для озвучки голосом Алисы.

## Использование

Запусти через Bash:
```bash
~/.claude/skills/speak/scripts/tts.py "текст для озвучки"
```

## Правила

- Текст должен быть на русском языке
- Максимум 500 символов — если ответ длиннее, озвучь только ключевую мысль
- НЕ озвучивай код, JSON, технические команды
- Озвучивай краткую суть ответа, а не весь ответ целиком
- Формулируй текст для устной речи — без markdown, без скобок, без спецсимволов
- Если скрипт вернул ошибку — сообщи пользователю текст ошибки. НЕ повторяй попытку автоматически.

## Примеры

Хорошие тексты для озвучки:
- "Сборка завершена успешно, все тесты прошли."
- "Добрый вечер! Температура на улице минус три градуса."
- "Задача выполнена. Файл сохранён в папку загрузок."

FAQ

Which speakers are supported?

Any with the Glagol protocol: Yandex Station models, Yandex Modules, plus JBL Link, Elari SmartBeat and DEXP Smartbox.

Are external dependencies needed?

No, it uses only the Python standard library with a hand-written WebSocket client.

Editors’ pick

Official Remotion skills for making videos in React: compositions, animation, captions, maps and rendering

SkillLow risk4.6K

Five skills: recordable web presentations, web design, GPT Image 2 prompting, local knowledge base retrieval and articles

SkillMedium risk12.4K

GigaChat image generation MCP

mcp-server-gigachat-image-generation

MCP server packaged as a Docker image for generating images with GigaChat, configured with GIGACHAT_CREDENTIALS

MCP serverMedium riskRussian stack1