Install
$ agentstack add mcp-drakulavich-kesha-voice-kit Open-source listing, not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Kesha Voice Kit
Give your local tools and LLM agents a voice.Fast speech-to-text, text-to-speech, voice-activity detection, and language detection in one local-first CLI: Apple Silicon CoreML first, ONNX fallback on supported Linux/Windows builds.
- Transcribe locally — [25 languages](docs/languages.md#speech-to-text-25), up to ~19x faster than Whisper on Apple Silicon, ~2.5x on CPU
- Speak back — text-to-speech in [9 languages](docs/languages.md#text-to-speech)
- Plug into agents — ship voice workflows as CLI commands, an MCP server, an OpenClaw skill, or a Hermes agent
- Small Rust engine — single ~60MB binary, no ffmpeg, no Python, no native Node addons
Quick Start
Runtime: Bun >= 1.3.0 · Platforms: macOS arm64, Linux x64, Windows x64. Linux and Windows run the ONNX engine — everything except microphone capture (kesha record), macOS system voices, speaker diarization, and text language detection, which need Apple frameworks.
# 1. Install Bun (skip if you have it) — Linux & macOS:
curl -fsSL https://bun.sh/install | bash # or: brew install oven-sh/bun/bun
# Windows: powershell -c "irm bun.sh/install.ps1 | iex"
# if `bun --version` fails, reload PATH: exec $SHELL -l
# 2. Install Kesha:
bun add -g @drakulavich/kesha-voice-kit
kesha --version # confirms `kesha` resolved on PATH
kesha install --plan # preview exact download/disk sizes first — downloads nothing
kesha install # ~2.5 GB on Linux/Windows; ~0.6 GB on Apple Silicon, whose CoreML
# engine uses a different, smaller model set. Explicit — never automatic.
# No progress bar during the model step; can take several minutes.
# Prefer a guided wizard? `kesha init` walks through the same choices interactively.
# 3. Transcribe:
kesha audio.ogg # transcript to stdout
Prefer Homebrew, .deb/.rpm, Docker, or Nix? See [Other install methods](#other-install-methods). Air-gapped or behind a corporate mirror? See [docs/model-mirror.md](docs/model-mirror.md).
Speech-to-text
kesha audio.ogg # transcribe (plain text)
kesha --format transcript audio.ogg # text + language/confidence
kesha --format json audio.ogg # full JSON with lang fields
kesha --json --timestamps audio.ogg # JSON with timestamped segments
kesha --toon audio.ogg # compact LLM-friendly TOON
kesha status # show installed backend info
kesha status --disk # + recursive cache disk usage
kesha status --json # machine-readable, for scripts
Multiple files get head-style headers; stdout is the transcript, stderr is errors — pipe-friendly:
$ kesha freedom.ogg tahiti.ogg
=== freedom.ogg ===
Свободу попугаям! Свободу!
=== tahiti.ogg ===
Таити, Таити! Не были мы ни в какой Таити! Нас и тут неплохо кормят.
- Record from the mic (macOS):
kesha record --out hello.wavwrites microphone audio to a WAV file (kesha hello.wavtranscribes it). macOS prompts for microphone access on first use — grant it under System Settings → Privacy & Security → Microphone if it was denied. On Linux/Windows or headless boxes, pass any existing audio file straight tokeshainstead. - Long / silence-heavy audio: install VAD (
kesha install --vad); Kesha auto-uses it past 120 s. Without VAD, long audio falls back to fixed ASR chunks. See [docs/vad.md](docs/vad.md). - Speaker diarization (darwin-arm64):
kesha install --diarize, thenkesha --json --vad --speakers meeting.m4astamps each segment with aspeakerid. Linux/Windows return a clear "darwin-arm64 only" error (#199).
Text-to-speech
Kesha speaks back in [9 languages](docs/languages.md#text-to-speech), auto-picking the voice from the text's language. Override with --lang or --voice .
kesha install --tts # English voices; sizes differ per platform — preview: kesha install --plan
kesha install --tts en ru # + Russian (+~890 MB, Vosk)
kesha say "Hello, world" > hello.wav
kesha say "Привет, мир" > privet.wav # auto-routes by language
kesha say --voice ru-vosk-m02 "Голос в текст." > ru.wav
Output formats (--format, or inferred from the --out extension):
kesha say "Hello" --out hi.wav # WAV (default, uncompressed)
kesha say "Hello" --format ogg-opus --out hi.ogg # OGG/Opus — messenger voice notes
kesha say "Hello" --format flac --out hi.flac # FLAC — lossless, plays in every browser incl. Safari/iOS
kesha say --list-voices lists what's installed. Voices, the full catalogue, macOS system voices, SSML, speaking rate (--rate, ``), Russian word stress, and Russian/English abbreviation handling are all in [docs/tts.md](docs/tts.md).
Languages
Speech-to-text spans 25 languages and text-to-speech covers English, Russian, and select multilingual voices — full tables with codes and flags in [docs/languages.md](docs/languages.md). Audio language detection identifies 107 languages.
Performance
> Up to ~19x faster than Whisper on Apple Silicon (M2), ~2.5x faster on CPU
Compared against Whisper large-v3-turbo, all engines auto-detecting language:
Full per-file breakdown (Russian + English): [BENCHMARK.md](BENCHMARK.md).
Other install methods
All of these install the Bun CLI wrapper; engine + models still download explicitly via kesha install.
- Homebrew —
brew install drakulavich/tap/kesha-voice-kit· [docs/homebrew.md](docs/homebrew.md) - Linux packages (
.deb/.rpm, x64) — [docs/linux-packages.md](docs/linux-packages.md) - Docker (GHCR image) — [docs/docker.md](docs/docker.md)
- Nix (
aarch64-darwin/x86_64-linux) —nix run github:drakulavich/kesha-voice-kit -- install· [docs/nix-install.md](docs/nix-install.md) - Shell completions + manpage —
kesha completions bash|zsh|fishandkesha manpageprint the packaged files to install wherever your shell expects them.
Integrations
- MCP server —
kesha mcpexposes transcribe/synthesize/list tools to any MCP client (Claude, Cursor, Codex, Gemini). Setup: [docs/mcp.md](docs/mcp.md). - OpenClaw — give your LLM agent ears. Install & config: [docs/openclaw.md](docs/openclaw.md).
- Hermes Agent — local STT/TTS through Hermes command providers. Setup: [docs/hermes.md](docs/hermes.md).
- Raycast (macOS) — offline microphone dictation from the launcher: Dictate to Clipboard records with a live signal meter, auto-stops on silence, transcribes locally, and copies the text. Install from the Raycast Store · source: [
raycast/](raycast/). - Programmatic API —
@drakulavich/kesha-voice-kit/corefor use inside a Bun program. See [docs/api.md](docs/api.md).
More
- [Architecture](docs/architecture.md) — runtime data flow, the models that ship, the CLI ↔ Rust engine boundary, model pinning, and where tests live.
- [Use cases](docs/use-cases.md) — copy-paste recipes (transcribe a meeting, speak from OpenClaw, run offline, move the cache).
- [Product positioning](docs/product-positioning.md) — supported workflows, non-goals, maturity labels, platform matrix.
- Diagnostics:
kesha doctor,kesha support-bundle(redacted.tar.gzfor issues), andkesha logsproduce local, content-free diagnostics — see [docs/diagnostic-logs.md](docs/diagnostic-logs.md). Every failure prints a stableerror [CODE]: …line and a documented [process exit code](docs/errors.md#process-exit-codes). - Scripting & CI:
--json(or--toon) for machine-readable output,--quiet/-qto silence progress, and--no-color(orNO_COLOR=1) for plain logs. Colors switch off automatically whenCI=true. - Privacy / Local Stats: Stats are off by default and fully local. Opt in with
kesha stats enableto record content-free operational metrics in a local SQLite database — never networked, never storing audio, transcripts, text, or paths. Full commands & lifecycle: [docs/local-stats.md](docs/local-stats.md).
Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md), the [Roadmap](ROADMAP.md) (Now / Next / Later), and the [Decision log](docs/decision-log.md) (why platform/model choices were made — and reversed). Dev setup: make dev-setup (Bun, Rust, nextest, platform libs).
License
Made with 💛🩵 and 🥤 energy under MIT License
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: drakulavich
- Source: drakulavich/kesha-voice-kit
- License: MIT
- Homepage: https://drakulavich.github.io/kesha-voice-kit/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.