claude-voice-notify
by kubouchiyuya
README.md
<div align="center">
<a href="./README.md"><img src="https://img.shields.io/badge/π%20English-active-F97316?style=flat-square" /></a>
<a href="./README_ja.md"><img src="https://img.shields.io/badge/π―π΅%20ζ₯ζ¬θͺ-gray?style=flat-square" /></a>
<br/><br/>
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,20,30&height=200§ion=header&text=claude-voice-notify&fontSize=40&fontColor=fff&animation=fadeIn&desc=Multi-Provider%20Voice%20Notifications%20for%20Claude%20Code&descSize=18&descAlignY=70" width="100%"/>
<img src="https://raw.githubusercontent.com/kubouchiyuya/kubouchiyuya/main/avatar.jpg" width="120" style="border-radius:50%; margin-top:16px"/>
[](https://github.com/DenverCoder1/readme-typing-svg)
[](https://github.com/kubouchiyuya)
[](https://x.com/kubouchiyuya)
[](https://consulting-payment-tool.vercel.app)



<img src="https://komarev.com/ghpvc/?username=kubouchiyuya&label=Views&color=F97316&style=flat-square"/>
</div>
---
## What This Does
`claude-voice-notify` turns Claude Code into a voice-aware workflow. It speaks when a task completes, when a confirmation is needed, or when an error appears, so you can keep moving even if you are away from the keyboard.
The default engine is VOICEVOX, which runs locally and costs nothing to use. If you want to change the sound or the provider, the repository supports eight backends and a guided setup flow for non-engineers.
---
## Why This Exists
MASA builds tools from the perspective of a salon owner who uses AI as the execution layer.
This repository is one of the interfaces in that system:
| Layer | Role |
|---|---|
| Human intent | MASA defines the outcome |
| Claude Code | Implements the work |
| Voice layer | Tells the human what happened |
| Provider layer | Selects the best TTS engine |
---
## β¨ Features
| Feature | Description |
|---|---|
| 8 providers | VOICEVOX, COEIROINK, AivisSpeech, Style-Bert-VITS2, Google TTS, Fish Audio, ElevenLabs, OpenAI |
| Local default | VOICEVOX runs locally with no API key |
| Star gate | GitHub Star verification for community access control |
| Language switch | Japanese and English notification output |
| Terminology mode | Explains technical terms in plain language |
| VS Code support | Toggle notification behavior from the editor |
| One-command update | Keep the setup current with `./update.sh` |
---
## π Quick Start
### Star First
> This tool is designed with a GitHub Star gate. Star the repo before setup.
### Setup
```bash
cd ~/Projects
git clone https://github.com/kubouchiyuya/claude-voice-notify.git
cd claude-voice-notify
./setup.sh
```
### Test
```bash
./notify.sh "Setup successful"
```
### Hooks
Add this to `~/.claude/settings.json`:
```json
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "/path/to/claude-voice-notify/notify.sh 'Task complete' complete"
}
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "/path/to/claude-voice-notify/notify.sh 'Please confirm' confirm"
}
]
}
]
}
}
```
---
## ποΈ Architecture
```mermaid
graph TD
A[Claude Code] -->|Hook: Stop / Notification| B[notify.sh]
A -->|MCP tool call| C[MCP server dist/index.js]
B --> D{Provider router}
C --> D
D -->|voicevox| E[VOICEVOX local API]
D -->|coeiroink| F[COEIROINK local API]
D -->|aivis_speech| G[AivisSpeech local API]
D -->|style_bert_vits2| H[Style-Bert-VITS2]
D -->|google| I[Google Cloud TTS]
D -->|fish_audio| J[Fish Audio API]
D -->|elevenlabs| K[ElevenLabs API]
D -->|openai| L[OpenAI TTS API]
E --> M[Playback: afplay / paplay / PowerShell]
F --> M
G --> M
H --> M
I --> M
J --> M
K --> M
L --> M
```
---
## π οΈ Tech Stack





---
## π€ Author
<div align="center">
| | |
|---|---|
| **Yuya Kubouchi (MASA2 / MASA Sub)** | Beauty Salon Owner β AI Architect |
| Location | Osaka, Japan |
| System | AKATSUKI / Miyabi Society |
| Focus | AI Γ Beauty Industry Γ Non-Engineer Operations |
*"I do not code first. I design the system, and AI executes it."*
</div>
---
<div align="center">
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,20,30&height=100§ion=footer" width="100%"/>
**If this saved you time, please give it a star.**
</div>
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessUnresponsive