Skip to main content
Glama
EtanHey
by EtanHey

VoiceLayer

Your AI agent can't hear you and respond to you. VoiceLayer gives it ears and a voice.

npm License: Apache-2.0 MCP Tools

Voice I/O for AI coding assistants. Press F5, speak to Claude Code, get on-device transcription in under 1.5 seconds. Your AI speaks back. Works with any MCP client.

  You β”€β”€πŸŽ€β”€β”€> whisper.cpp ──> Claude Code ──> edge-tts β”€β”€πŸ”Šβ”€β”€> You
         STT (local)           MCP tools         TTS (free)

Local-first. Free. Open-source. No cloud APIs, no API keys, no data leaves your machine.

Website Β· Docs Β· npm

Install

macOS (recommended) β€” the tap ships the CLI/MCP package and the notarized notch app:

brew tap etanhey/layers
brew install etanhey/layers/voicelayer         # CLI + MCP server
brew install --cask etanhey/layers/voicebar    # VoiceBar notch app (owns the mic)
voicelayer setup                               # one-time runtime setup

Install the cask too β€” the formula alone gives you the CLI/MCP but no notch UI.

npm β€” if you only want the MCP server:

bun add -g voicelayer-mcp        # or: npm i -g voicelayer-mcp
brew install sox socat && pip3 install edge-tts
brew install whisper-cpp         # optional, for local STT

# whisper model (~1.5 GB) β€” needed for local STT
mkdir -p ~/.cache/whisper && curl -L -o ~/.cache/whisper/ggml-large-v3-turbo.bin \
  https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin

Point your MCP client at the daemon

VoiceLayer runs as one persistent daemon on a Unix socket; every session connects through a lightweight socat shim instead of spawning its own process. Add to .mcp.json:

{
  "mcpServers": {
    "voicelayer": {
      "command": "socat",
      "args": ["STDIO", "UNIX-CONNECT:/tmp/voicelayer-mcp.sock"]
    }
  }
}

Or migrate every repo at once: bash scripts/migrate-to-daemon.sh (--dry-run to preview). On macOS, grant your terminal microphone access (System Settings β†’ Privacy β†’ Microphone).

Updates, kill-switches, and cross-machine setup: docs/install-and-update.md.

Related MCP server: io.github.chicogong/ffvoice

The two tools

Tool

Behavior

Blocking

voice_speak

TTS with auto-mode (announce/brief/consult/think), replay, toggle

No

voice_ask

Speak a question, record the mic, transcribe the answer

Yes

Both ship full MCP ToolAnnotations. Neither is destructive; both set openWorldHint: false.

How voice_ask works: waits for any playing audio to finish β†’ speaks the question via edge-tts β†’ records the mic and resamples to 16kHz β†’ Silero VAD detects when you stop talking β†’ whisper.cpp transcribes locally (~200-400ms on Apple Silicon) β†’ returns the text to your agent.

Full tool parameters: docs/tools-reference.md.

VoiceBar β€” the notch surface (macOS)

The canonical UI (SwiftUI + AppKit). It tucks around the MacBook camera housing instead of floating over your work:

  • Liquid-Glass wings flank the camera housing, with a graceful fallback on older macOS.

  • Teleprompter with word-by-word karaoke highlighting as your agent speaks.

  • Idle-hover to summon β€” collapsed it draws no pixels; hovering reveals recent transcripts, the dictionary, and replay.

  • Morph animations between idle ↔ recording ↔ speaking, Reduce-Motion aware.

STT backends

Backend

Type

Latency

Setup

whisper.cpp

Local (default)

~200-400ms

brew install whisper-cpp + model

Wispr Flow

Cloud (fallback)

~500ms + network

Set QA_VOICE_WISPR_KEY

Auto-detected. Override with QA_VOICE_STT_BACKEND=whisper|wispr|auto.

Platform support

Platform

TTS

STT

Recording

VoiceBar

macOS

edge-tts + afplay

whisper.cpp (CoreML)

sox

SwiftUI app

Linux

edge-tts + mpv/ffplay

whisper.cpp

sox

β€”

Part of Golems

Server

What it does

Tools

BrainLayer

Persistent memory β€” knowledge graph + hybrid search

12

VoiceLayer

Voice I/O β€” local STT, neural TTS, notch VoiceBar, F5 recording

2

cmuxLayer

Terminal orchestration β€” spawn panes, read screens, coordinate agents

22

Pair with BrainLayer to remember voice conversations across sessions.

More

License

Apache-2.0

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

–Maintainers
3dResponse time
2dRelease cycle
27Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Text-to-speech MCP server using the Kokoro-82M model accelerated with MLX on Apple Silicon, enabling local Claude and Codex clients to speak text aloud and convert text to audio.
    3
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    A fully local, privacy-first MCP server that gives AI coding assistants deep repository intelligence with file-and-line-cited answers, persistent semantic memory, and agentic abilities like task planning and code reviewβ€”all without any cloud API calls.
    23

View all related MCP servers

Related MCP Connectors

  • Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/EtanHey/voicelayer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server