Crawler Summary

voicelayer-mcp answer-first brief

Voice I/O layer for AI coding assistants — local TTS, STT, session booking. MCP server. VoiceLayer Voice I/O layer for AI coding assistants — local TTS, STT, session booking. MCP server. $1 $1 $1 $1 VoiceLayer adds **voice input and output** to Claude Code sessions via the Model Context Protocol (MCP). Speak questions aloud, record voice responses, and transcribe locally with whisper.cpp — all inside your terminal. **Local-first, free, open-source.** All processing happens on your machine — no cloud API Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.

Freshness

Last checked 2/25/2026

Best For

voicelayer-mcp is best for mcp, voice, tts workflows where MCP compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB MCP, runtime-metrics, public facts pack

Claim this agent
Agent DossierGitHubSafety: 89/100

voicelayer-mcp

Voice I/O layer for AI coding assistants — local TTS, STT, session booking. MCP server. VoiceLayer Voice I/O layer for AI coding assistants — local TTS, STT, session booking. MCP server. $1 $1 $1 $1 VoiceLayer adds **voice input and output** to Claude Code sessions via the Model Context Protocol (MCP). Speak questions aloud, record voice responses, and transcribe locally with whisper.cpp — all inside your terminal. **Local-first, free, open-source.** All processing happens on your machine — no cloud API

MCPself-declared

Public facts

4

Change events

1

Artifacts

0

Freshness

Feb 25, 2026

Verifiededitorial-contentNo verified compatibility signals

Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.

Trust evidence available

Trust score

Unknown

Compatibility

MCP

Freshness

Feb 25, 2026

Vendor

Etanhey

Artifacts

0

Benchmarks

0

Last release

2.0.0

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.

Setup snapshot

git clone https://github.com/EtanHey/voicelayer.git
  1. 1

    Setup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Etanhey

profilemedium
Observed Feb 25, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

MCP

contractmedium
Observed Feb 25, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB MCP

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Executable Examples

bash

curl -L -o ~/.cache/whisper/ggml-large-v3-turbo.bin \

bash

# 1. Install prerequisites
brew install sox                    # Mic recording
pip3 install edge-tts               # Microsoft neural TTS (free)
brew install whisper-cpp            # Local STT (recommended)

# 2. Download a whisper model
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

# 3. Add to your Claude Code .mcp.json

json

{
  "mcpServers": {
    "voicelayer": {
      "command": "bunx",
      "args": ["voicelayer-mcp"]
    }
  }
}

bash

git clone https://github.com/EtanHey/voicelayer.git
cd voicelayer && bun install

json

{
  "mcpServers": {
    "voicelayer": {
      "command": "bun",
      "args": ["run", "/absolute/path/to/voicelayer/src/mcp-server.ts"]
    }
  }
}

text

Claude Code  ─── MCP ───>  VoiceLayer
                            ├── edge-tts speaks question (speakers)
                            ├── sox records mic (16kHz mono PCM)
                            ├── whisper.cpp transcribes locally (~300ms)
                            └── Returns transcription to Claude

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB MCP

Docs source

GITHUB MCP

Editorial quality

ready

Voice I/O layer for AI coding assistants — local TTS, STT, session booking. MCP server. VoiceLayer Voice I/O layer for AI coding assistants — local TTS, STT, session booking. MCP server. $1 $1 $1 $1 VoiceLayer adds **voice input and output** to Claude Code sessions via the Model Context Protocol (MCP). Speak questions aloud, record voice responses, and transcribe locally with whisper.cpp — all inside your terminal. **Local-first, free, open-source.** All processing happens on your machine — no cloud API

Full README

VoiceLayer

Voice I/O layer for AI coding assistants — local TTS, STT, session booking. MCP server.

License: MIT MCP Tests Docs

VoiceLayer adds voice input and output to Claude Code sessions via the Model Context Protocol (MCP). Speak questions aloud, record voice responses, and transcribe locally with whisper.cpp — all inside your terminal.

Local-first, free, open-source. All processing happens on your machine — no cloud APIs required. TTS via edge-tts (free), STT via whisper.cpp (local). Optional cloud fallback via Wispr Flow for machines without whisper.cpp.

Quick Start

# 1. Install prerequisites
brew install sox                    # Mic recording
pip3 install edge-tts               # Microsoft neural TTS (free)
brew install whisper-cpp            # Local STT (recommended)

# 2. Download a whisper model
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

# 3. Add to your Claude Code .mcp.json
{
  "mcpServers": {
    "voicelayer": {
      "command": "bunx",
      "args": ["voicelayer-mcp"]
    }
  }
}

Requires Bun. Install with: curl -fsSL https://bun.sh/install | bash

<details> <summary>Alternative: install from source</summary>
git clone https://github.com/EtanHey/voicelayer.git
cd voicelayer && bun install

Then use this MCP config instead:

{
  "mcpServers": {
    "voicelayer": {
      "command": "bun",
      "args": ["run", "/absolute/path/to/voicelayer/src/mcp-server.ts"]
    }
  }
}
</details>

Grant microphone access to your terminal (macOS: System Settings > Privacy > Microphone).

How It Works

Claude Code  ─── MCP ───>  VoiceLayer
                            ├── edge-tts speaks question (speakers)
                            ├── sox records mic (16kHz mono PCM)
                            ├── whisper.cpp transcribes locally (~300ms)
                            └── Returns transcription to Claude
  1. Claude calls voice_ask("How does the nav look on mobile?")
  2. VoiceLayer speaks the question aloud via edge-tts
  3. Mic recording starts — user speaks their response
  4. Recording ends when user touches /tmp/voicelayer-stop or after 5s silence
  5. Audio transcribed by whisper.cpp (local) or Wispr Flow (cloud fallback)
  6. Claude receives the transcribed text and continues

Voice Tools

| Tool | What It Does | Blocking | |------|-------------|----------| | voice_speak | Non-blocking TTS — auto-selects announce/brief/consult/think from message content | No | | voice_ask | Blocking voice Q&A — speak question, record + transcribe response | Yes |

Old qa_voice_* names still work as backward-compat aliases.

User-Controlled Stop

  • Primary: touch /tmp/voicelayer-stop to end recording or playback
  • Fallback: 5s silence detection (converse mode)
  • Timeout: 300s default, configurable per call (10-3600)

Session Booking

Converse mode uses a lockfile (/tmp/voicelayer-session.lock) to prevent mic conflicts:

  • Auto-books on first converse call
  • Other sessions see "line busy" (returns isError: true)
  • Stale locks (dead PID) are auto-cleaned

STT Backends

| Backend | Type | Speed | Setup | |---------|------|-------|-------| | whisper.cpp | Local (default) | ~200-400ms on Apple Silicon | brew install whisper-cpp + model | | Wispr Flow | Cloud (fallback) | ~500ms + network | QA_VOICE_WISPR_KEY env var |

Auto-detection: whisper.cpp if available, else Wispr Flow. Override with QA_VOICE_STT_BACKEND=whisper|wispr|auto.

Use Modes

QA Mode

Systematic website testing with Playwright: browse pages, speak questions, record findings in structured checklists, generate markdown reports.

  • 6 categories, 31 checks
  • Reports saved to ~/.voicelayer/reports/

Discovery Mode

Client call assistant: track unknowns, suggest follow-up questions, detect red flags, generate project briefs.

  • 7 categories, 23 questions
  • Briefs saved to ~/.voicelayer/briefs/

Environment Variables

| Variable | Default | Description | |----------|---------|-------------| | QA_VOICE_STT_BACKEND | auto | STT backend: whisper, wispr, or auto | | QA_VOICE_WHISPER_MODEL | auto-detected | Path to whisper.cpp GGML model file | | QA_VOICE_WISPR_KEY | — | Wispr Flow API key (cloud fallback only) | | QA_VOICE_TTS_VOICE | en-US-JennyNeural | edge-tts voice ID | | QA_VOICE_TTS_RATE | +0% | Base speech rate (per-mode defaults applied on top) | | QA_VOICE_SILENCE_SECONDS | 2 | Silence seconds before end (converse uses 5) | | QA_VOICE_SILENCE_THRESHOLD | 500 | RMS energy threshold (0-32767) | | QA_VOICE_THINK_FILE | /tmp/voicelayer-thinking.md | Live thinking log path |

Platform Support

| Platform | TTS | Audio Player | STT | Recording | |----------|-----|-------------|-----|-----------| | macOS | edge-tts | afplay (built-in) | whisper.cpp | sox/rec | | Linux | edge-tts | mpv, ffplay, or mpg123 | whisper.cpp | sox/rec |

Testing

bun test    # 75 tests, 178 assertions

Project Structure

voicelayer/
├── src/
│   ├── mcp-server.ts          # MCP server (voice_speak + voice_ask + aliases)
│   ├── tts.ts                 # edge-tts + cross-platform audio player
│   ├── input.ts               # Mic recording + STT pipeline
│   ├── stt.ts                 # STT backend abstraction (whisper.cpp + Wispr Flow)
│   ├── audio-utils.ts         # Shared audio utilities (RMS calculation)
│   ├── paths.ts               # Centralized /tmp path constants
│   ├── session-booking.ts     # Lockfile-based session mutex
│   ├── session.ts             # Session lifecycle (save/load/generate)
│   ├── report.ts              # QA report renderer (JSON → markdown)
│   ├── brief.ts               # Discovery brief renderer (JSON → markdown)
│   ├── schemas/               # QA + discovery schemas
│   └── __tests__/             # 75 tests
├── scripts/
│   ├── speak.sh               # Standalone TTS command
│   └── test-wispr-ws.ts       # Wispr Flow WebSocket test
├── package.json
├── tsconfig.json
├── LICENSE
├── CLAUDE.md
└── README.md

Contributing

See CONTRIBUTING.md for development setup, testing, and PR process.

License

MIT

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB MCP

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

MCP: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
GITLAB_AI_CATALOGgitlab-mcp

Rank

83

A Model Context Protocol (MCP) server for GitLab

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_PUBLIC_PROJECTSgitlab-mcp

Rank

80

A Model Context Protocol (MCP) server for GitLab

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_AI_CATALOGrmcp-openapi

Rank

74

Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)

Traction

No public download signal

Freshness

Updated 2d ago

MCP
GITLAB_AI_CATALOGrmcp-actix-web

Rank

72

An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)

Traction

No public download signal

Freshness

Updated 2d ago

MCP
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "MCP"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_MCP",
      "generatedAt": "2026-04-17T05:29:39.756Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "MCP",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "mcp",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "voice",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "tts",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "stt",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "claude-code",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "ai-assistant",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "speech-to-text",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "text-to-speech",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "whisper",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "edge-tts",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "model-context-protocol",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "voice-cloning",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "audio-extraction",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    },
    {
      "key": "cli",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:MCP|unknown|profile capability:mcp|supported|profile capability:voice|supported|profile capability:tts|supported|profile capability:stt|supported|profile capability:claude-code|supported|profile capability:ai-assistant|supported|profile capability:speech-to-text|supported|profile capability:text-to-speech|supported|profile capability:whisper|supported|profile capability:edge-tts|supported|profile capability:model-context-protocol|supported|profile capability:voice-cloning|supported|profile capability:audio-extraction|supported|profile capability:cli|supported|profile"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Etanhey",
    "href": "https://github.com/EtanHey/voicelayer#readme",
    "sourceUrl": "https://github.com/EtanHey/voicelayer#readme",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-25T03:00:14.495Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "MCP",
    "href": "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-02-25T03:00:14.495Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/mcp-etanhey-voicelayer/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to voicelayer-mcp and adjacent AI workflows.