About viberadio-fm
viberadio-fm is an open-source text-to-speech CLI and library for developers, turning supplied text or coding-session events into local narration. It provides recap scripts and MCP tools without a session watcher or managed audio service.
Key features
- 01Local speech through system tools
- 02Monologue and podcast recap styles
- 03Recaps from event arrays
- 04CLI and JavaScript library
- 05Dependency-injectable narrator
Use cases
- 01Speak a build status aloud
- 02Narrate supplied text locally
- 03Recap coding-session milestone events
MCP support
Provides `narrate` and `recap` tools through an MCP server launched with `viberadio mcp`.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
2Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| text | string | Yes | The text to speak aloud. |
| style | enum | No | Reserved for future per-style voice selection.monologue | podcast |
Details
From the project READMEVibeRadio
Website · Setup · Library and MCP
VibeRadio is an open-source text-to-speech CLI and library that turns supplied text or coding-session events into local spoken narration for developers.
Install
npm install -g viberadio-fm
viberadio say "Build passed"
Requires Node.js 18 or newer and a system speech tool: macOS say, Linux espeak, or Linux spd-say.
Success: you hear “Build passed” and see a local-provider status message.
If speech is unavailable, the CLI prints the text and a setup warning, then exits successfully.
No API key or environment variables are required. The CLI does not load .env files.
Recap a session
printf '[{"kind":"tests-pass","count":12}]' | viberadio recap
printf '[{"kind":"tests-pass","count":12}]' | viberadio recap --style podcast
The second command changes the script to host-labelled dialogue. Both styles use one system voice.
You can also pass a JSON-array file: viberadio recap session.json --mode podcast.
Features and limits
- Local speech: the default audio path disables network egress and uses the system speech runner from
@pooriaarab/vibe-core. - Recap scripts: formats milestone events; accepts
monologueorpodcaststyles andsummaryorpodcastmodes. - Library bridge: successful library
recap()appends a best-effort event for vibenotifications; CLI and MCP recaps call narration directly. - Two MCP tools:
narratespeaks text;recapbuilds and speaks an event recap.
text / event array -> narration script -> system speech tool -> audio
There is no automatic agent-session watcher or background start command.
Reactive music, cloud voices, distinct podcast voices, recording, visualizers, and a menubar application do not ship.
This package does not include Claude Code, Codex, or Gemini adapters; pass text or events from your workflow.
Source inspection confirms three system-tool choices through the shared runner. No physical audio output was verified for this rewrite.
Library and MCP
import { buildRecapScript, narrate, recap } from 'viberadio-fm';
console.log(buildRecapScript([{ kind: 'tests-pass', count: 12 }]));
await narrate('Build passed');
await recap([{ kind: 'task-done', message: 'Fixed login' }]);
buildRecapScript() is pure and works without speech tools. narrate() throws TtsUnavailableError when audio cannot run.
createNarrator() exposes dependency injection; TypeScript declarations ship with the package.
Configure an MCP client with:
{"mcpServers":{"viberadio":{"command":"viberadio","args":["mcp"]}}}
CLI commands: say, recap, mcp, help/--help/-h, and --version/-v.
The say command accepts --style/-s; recap also accepts --mode/-m and file or stdin input.
Set VIBERADIO_DEBUG=1 for speech-failure details.
Status and links
Version 0.2.4 is pre-1.0. Interfaces can change; this package provides no managed audio service. The repository's interactive prototype and launch video show product direction, not shipped functionality. Report an issue · Vibe Suite · MIT license
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.