Windows TTS Notification Skill
name: windows-tts
by cmosakg · published 2026-03-22
$ claw add gh:cmosakg/cmosakg-windows-tts---
name: windows-tts
description: "Push text notifications to Windows Azure TTS service for audio broadcast via Bluetooth speakers. Perfect for family reminders, alarms, and announcements."
homepage: https://github.com/openclaw/openclaw/skills/windows-tts
metadata: { "openclaw": { "emoji": "🔊", "requires": { "bins": [] } } }
tags: ["latest", "tts", "notification", "windows", "azure", "broadcast", "reminder"]
---



# Windows TTS Notification Skill
Push text notifications from OpenClaw to your Windows PC's Azure TTS service for audio broadcast through Bluetooth speakers or any connected audio output.
> **🔥 Perfect for**: Family reminders, medication alerts, homework notifications, dinner announcements, and any cross-device audio broadcast scenarios.
When to Use
✅ **USE this skill when:**
Prerequisites
Quick Start
1. Install the Skill
cd /home/cmos/skills/windows-tts
npm install
npm run build2. Configure OpenClaw
Add plugin configuration to your `openclaw.json`:
{
"plugins": {
"windows-tts": {
"url": "http://192.168.1.60:5000",
"defaultVoice": "zh-CN-XiaoxiaoNeural",
"defaultVolume": 1.0,
"timeout": 10000
}
}
}3. Use in Agent Heartbeat
Edit your `life` agent's `HEARTBEAT.md`:
# Family Reminder Check (every 30 minutes)
- Check if it's homework time (19:00-21:00)
- Check if it's medication time
- Check if there are urgent announcements
- Use tts_notify to broadcast remindersConfiguration Reference
| Option | Type | Required | Default | Description |
|--------|------|----------|---------|-------------|
| `url` | `string` | Yes | - | Windows TTS server base URL (e.g., `http://192.168.1.60:5000`) |
| `defaultVoice` | `string` | No | `zh-CN-XiaoxiaoNeural` | Default Azure TTS voice ID |
| `defaultVolume` | `number` | No | `1.0` | Default volume level (0.0-1.0) |
| `timeout` | `number` | No | `10000` | HTTP request timeout in milliseconds |
Tool Reference
`tts_notify`
Send text to Windows TTS for immediate audio broadcast.
**Input:**
{
text: string; // Required: Text to speak
voice?: string; // Optional: Override default voice
volume?: number; // Optional: Override default volume (0.0-1.0)
}**Example Usage:**
// Basic notification
await tts_notify({
text: "程老板,该提醒孩子写作业了!"
});
// With custom voice and volume
await tts_notify({
text: "Attention: Meeting in 5 minutes",
voice: "en-US-JennyNeural",
volume: 0.8
});**Response:**
{
"status": "success",
"message": "播报完成"
}`tts_get_status`
Check Windows TTS server connection status.
**Input:** None
**Example:**
const status = await tts_get_status();
// Returns: { status: "success", connected: true, serverUrl: "http://192.168.1.60:5000" }`tts_list_voices`
List available Azure TTS voices.
**Input:**
{
language?: string; // Optional: Filter by language code (e.g., "zh-CN", "en-US")
}**Example:**
// List all Chinese voices
const voices = await tts_list_voices({ language: "zh-CN" });
// Returns: [{ name: "zh-CN-XiaoxiaoNeural", language: "zh-CN", gender: "Female", ... }]`tts_set_volume`
Set default volume level for TTS playback.
**Input:**
{
volume: number; // Required: Volume level (0.0-1.0)
}**Example:**
await tts_set_volume({ volume: 0.5 });Usage Examples
1. Homework Reminder (Daily 19:00)
Add to `life` agent's heartbeat or cron:
await tts_notify({
text: "亲爱的程老板,现在是晚上 7 点,该提醒孩子写作业了!"
});2. Medication Reminder
await tts_notify({
text: "温馨提示:该吃药了,请记得服用今天的维生素。",
volume: 0.7
});3. Dinner Announcement
await tts_notify({
text: "晚饭准备好了,快来吃饭吧!",
voice: "zh-CN-YunxiNeural"
});4. Multi-Language Support
// English announcement
await tts_notify({
text: "Good evening! Dinner is ready.",
voice: "en-US-JennyNeural"
});
// Japanese announcement
await tts_notify({
text: "夕ご飯の準備ができました。",
voice: "ja-JP-NanamiNeural"
});Error Handling
The skill throws `WindowsTtsError` when the server returns an error:
try {
await tts_notify({ text: "Test message" });
} catch (error) {
if (error instanceof WindowsTtsError) {
console.error(`TTS Server error: ${error.status}`);
} else if (error.message.includes("timeout")) {
console.error("TTS request timed out - check network connection");
}
}Best Practices
1. Network Reliability
2. Voice Selection
3. Volume Management
4. Message Design
Programmatic Usage
Use as a library in your TypeScript/JavaScript code:
import { WindowsTtsClient, validateConfig } from "./index";
const config = validateConfig({
url: "http://192.168.1.60:5000",
defaultVoice: "zh-CN-XiaoxiaoNeural",
defaultVolume: 0.8
});
const client = new WindowsTtsClient(config);
// Send notification
await client.notify({
text: "Hello from OpenClaw!"
});
// Check status
const status = await client.getStatus();
console.log(`Connected: ${status.connected}`);Troubleshooting
"Connection refused" error
"Request timeout" error
TTS plays but wrong voice
Related Skills
Version History
1.0.0
License
MIT
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...