yandex-station-speak
A skill speaks text on a Yandex Station in Alice's voice over the Glagol protocol: pauses music, raises volume to 80%, restores it cleanly
Low risk
We rate an entry low when it mostly gives the agent instructions and reference material.
Why this level
- The skill only speaks a phrase and temporarily changes the speaker's volume
- The MUSIC_TOKEN grants device control and is stored locally
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/yandex-station-speakDetects the agents on your machine, checks the risk and pins the version.
Other ways to install
Run in a terminal in the project folder
npx skills add realmagnum/yandex-station-speak --skill yandex-station-speak -a claude-code -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Run in a terminal in the project folder
npx skills add realmagnum/yandex-station-speak --skill yandex-station-speak -a cursor -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Run in a terminal in the project folder
npx skills add realmagnum/yandex-station-speak --skill yandex-station-speak -a github-copilot -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Run in a terminal in the project folder
npx skills add realmagnum/yandex-station-speak --skill yandex-station-speak -a codex -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Run in a terminal in the project folder
npx skills add realmagnum/yandex-station-speak --skill yandex-station-speak -a gemini-cli -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Run in a terminal in the project folder
npx skills add realmagnum/yandex-station-speak --skill yandex-station-speak -a cline -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Run in a terminal in the project folder
npx skills add realmagnum/yandex-station-speak --skill yandex-station-speak -a roo -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
A fork of Roo Code, same .roo folders.
Run in a terminal in the project folder
npx skills add realmagnum/yandex-station-speak --skill yandex-station-speak -a opencode -yThe skills tool installs the current version from the repository. Add the -g flag to use the skill in every project.
Create ~/.hermes/skills/smart-home/yandex-station-speak, place SKILL.md, speak.sh, scripts/tts_dialog.py and env.example there, fill .env with MUSIC_TOKEN, DEVICE_ID, DEVICE_PLATFORM and STATION_IP, then call speak.sh 'text'.
Other ways from the author
git clone https://github.com/Realmagnum/yandex-station-speak.git
cd yandex-station-speak
bash install.shThe script lays out files into ~/.claude/skills/speak and creates .env from env.example; after that you fill in MUSIC_TOKEN and DEVICE_ID.
This is third-party code. Review the repository files before installing.
What it does
The skill sends a phrase of up to 500 characters to a Yandex Station speaker over the Glagol WebSocket protocol on port 1961, in Alice's voice. Before speaking, music is paused and volume raised to 80%; after the phrase, volume and music are restored, and if the speaker was silent beforehand, music does not start again thanks to an hasPause detector. The project openly calls itself an evolution of an earlier skill, claude-skill-yandex-tts, keeping the same protocol base and adding a full audio cycle with music interruption and restoration.
Who it is for. For people who want voice notifications from an agent on a home Yandex Station without permanently interrupting the music.
Good fit when
- You need to speak a short status or notification on the speaker while music plays in the background
- You need a clean audio cycle: pause, phrase, then restore volume and music
- You work with Hermes Agent and already use its skill layout
Not a fit when
- You need a long text: the limit is 500 characters, no code, JSON or special characters
- The speaker is unreachable on the working host's local network and there is no ssh forwarding option
Example request
Speak this phrase on the speaker: tests passed, deployment startedLimitations
A working MUSIC_TOKEN is only issued via oauth.mobile.yandex.net, not the endpoint from the original README, which returns 403. It needs Python 3.10+; on macOS the system python3 is often 3.9 and does not work. The speaker must be on the same local network as the host, or reachable via ssh to a server that can see it.
How to disable. Delete the ~/.hermes/skills/smart-home/yandex-station-speak folder and the .env file with tokens.
Security check
- The skill only speaks a phrase and temporarily changes the speaker's volume
- The MUSIC_TOKEN grants device control and is stored locally
README in short
The README describes the full audio speak cycle, gives a ~/.hermes/skills install, a .env template with MUSIC_TOKEN, DEVICE_ID, DEVICE_PLATFORM and STATION_IP, warns about the working token endpoint and the Python version on macOS, and shows a direct call, an ssh call, and a manual python script call with --pause and --volume flags.
SKILL.md
--- name: yandex-station-speak description: Озвучка текста на колонку Яндекс Мини через Алису. --- # Озвучка на Яндекс Станцию (с поддержкой Glagol) Отправляет текст на колонку Яндекс Станция голосом Алисы через протокол Glagol (WSS, порт 1961). Решает: пауза музыки, подъем громкости до 80% для озвучки, возврат громкости и музыки после. ## Ключевые факты - Колонка: Яндекс Станция с поддержкой Glagol (проверено на Станции Мини 2). Свои deviceId, platform и статический IP берутся из .env. - Прямое подключение работает, когда рабочий хост в локальной сети колонки. Если хост не в этой сети, есть резерв через SSH на сервер, где колонка доступна. - Рабочий MUSIC_TOKEN получается только через https://oauth.mobile.yandex.net/1/token, эндпоинт из оригинального README дает 403. ## Команда для озвучки (полный цикл) ~/.hermes/skills/smart-home/yandex-station-speak/speak.sh 'ТЕКСТ ФРАЗЫ' Порядок в полном цикле: пауза, громкость 0.8, озвучка, ожидание конца фразы, возврат громкости, пауза 1 секунда, продолжение музыки.
FAQ
Why doesn't the old README's endpoint work?
oauth.yandex.ru/token returns 403 USER_IS_NOT_AUTHORIZED_FOR_API; a working token only comes from oauth.mobile.yandex.net/1/token.
What if the speaker was already playing music?
Music is paused and volume raised to 80%; after the phrase both are restored, and the hasPause detector avoids restarting music that was not playing.
Related
A self-hosted knowledge base with block-level references and a built-in MCP server for connecting AI agents to your notes
A CLI for every Google Workspace API with JSON output and agent skills: Drive, Gmail, Calendar, Sheets and more
Local search over Markdown notes, docs and meeting transcripts: keywords, semantic search and reranking, with an MCP server
A task manager for AI-driven development: breaks a PRD into dependent tasks and guides the agent through them via MCP or CLI