AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Oma Voice

skill-first-fluke-oh-my-agent-oma-voice · by first-fluke

>

No reviews yet
0 installs
25 views
0.0% view→install

Install

$ agentstack add skill-first-fluke-oh-my-agent-oma-voice

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution Used
  • 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-first-fluke-oh-my-agent-oma-voice)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Oma Voice? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Voice Skill - Local TTS and STT via Voicebox

Scheduling

Goal

Drive the Voicebox local app through its MCP server so any MCP-aware agent can speak (TTS) or listen (STT) without invoking cloud vendors. The skill standardizes intent routing, voice profile resolution, output layout, and guardrails while voicebox itself owns the engines, voice cloning UI, captures archive, and stories editor.

Intent signature

  • User asks to generate speech, narrate text, produce a voiceover, create an mp3 or wav from text.
  • User wants an audio file transcribed into text, meeting notes, or a transcript.
  • User asks for a voice notification when a long task completes or a workflow step is blocked.
  • Another skill needs local audio generation infrastructure.

When to use

  • Generating short notification audio for agent task completion or blockers.
  • Producing voiceover, narration, or audio assets (mp3 or wav) for apps and content.
  • Transcribing local audio files (mp3, wav, m4a, webm, flac) to Markdown.
  • Comparing voice profiles by re-running the same text against different profile ids.

When NOT to use

  • Cloud TTS or high-fidelity multilingual cloud voices -> out of scope; future multi-vendor extension.
  • Real-time microphone dictation loop in the terminal -> use Voicebox app's built-in hotkey dictation.
  • Voice cloning sample upload and profile creation -> done in the Voicebox desktop app UI.
  • Video synthesis, music, sound design -> out of scope.
  • Stories Editor multi-voice timeline composition -> use the Voicebox app UI.

Expected inputs

  • TTS: text ( 200 OK

2. Discover tool names on first run

MCP tools/list -> cache real names

3. Resolve profile

MCP voiceboxlistprofiles -> pick profile by name or config default

4. Generate or transcribe

MCP voiceboxspeak { text, profile, language?, engine?, personality? } MCP voiceboxtranscribe { audiopath | audiobase64, language?, model? }

5. Persist output + manifest

.agents/results/voice/-/output.mp3 + manifest.json .agents/results/voice/transcripts/-/transcript.md + manifest.json


### MCP tool mapping (verified against Voicebox 0.5.0)

| Use case | MCP tool | REST backing |
|---|---|---|
| TTS generation | `voicebox_speak` | `POST /generate` |
| STT transcription | `voicebox_transcribe` | `POST /transcribe` |
| Profile listing | `voicebox_list_profiles` | `GET /profiles` |
| Captures listing | `voicebox_list_captures` | `GET /history` (captures view) |

Tools not exposed via MCP (REST only): model status (`GET /models/status`), audio file serving (`GET /audio/{generation_id}`). The skill calls those over loopback HTTP when needed.

**Notes on `voicebox_speak`:**
- Required: `text`. Optional: `profile`, `engine`, `language`, `personality` (bool).
- Audio plays on the user speakers and is saved to the Captures / History panel automatically. There is no `save_to_disk` toggle on the MCP tool itself.
- Without a default profile set in Voicebox Settings, `profile=` is required.

**Notes on `voicebox_transcribe`:**
- Accepts exactly one of `audio_base64` or `audio_path` (loopback only). Optional `language`, `model`.

### Resource scope
| Scope | Resource target |
|-------|-----------------|
| `LOCAL_FS` | Input audio, generated audio, transcripts, manifests |
| `PROCESS` | Local Voicebox app subprocess (managed by the user) |
| `NETWORK` | Loopback HTTP to `127.0.0.1:17493` only |
| `MEMORY` | Cached MCP tool names, resolved profile metadata |
| `CREDENTIALS` | None. Voicebox is local and key-free. |

### Preconditions
- Voicebox app is running and the MCP handshake succeeds.
- At least one voice profile exists.
- The selected engine model is loaded or the user approves a download.
- Output directory is inside `$PWD` unless explicitly allowed.

### Effects and side effects
- Creates audio files, transcripts, and manifests under `.agents/results/voice/`.
- Triggers local Voicebox generation, which consumes CPU or GPU.
- May trigger an engine model download when the user approves.
- Does not call any cloud service. No external network traffic.

### Guardrails

1. **Voicebox required**: if the MCP handshake or `GET /health` fails, exit with a one-shot install or launch hint. Do not retry, do not auto-relaunch.
2. **Profile required**: if `voicebox_list_profiles` returns empty, instruct the user to create a profile in the Voicebox app (Profiles tab → + New Profile → pick Kokoro preset for the fastest path), then exit.
3. **Tool-name discovery**: on first invocation, call MCP `tools/list` and cache the resolved names. Reuse the cache for subsequent calls in the same session.
4. **Length limits**: TTS calls cap at 5000 chars per call; warn at 2000. STT inputs cap at 30 minutes. v1 does not auto-chunk or auto-split.
5. **Auto-invocation transparency**: notifications fire automatically only when the active task exceeds `auto_notify_after_sec` (default 60s). Always announce intent in one short line before generating audio.
6. **Path safety**: when the user requests an output path outside `$PWD`, warn once and require explicit confirmation.
7. **Cancellation**: SIGINT aborts the MCP call and writes no partial output.
8. **Manifest required**: every generation writes `manifest.json` with at minimum: `skill`, `mode`, `voicebox_generation_id`, `text` (or `transcript_preview`), `profile`, `engine`, `language`, `format` (TTS only), `created_at`.
9. **Out of scope**: voice cloning UI, captures archive, stories editor, microphone dictation loop, and cloud vendors are intentionally not exposed.
10. **No cost guard**: Voicebox is free. The cost guardrail from `oma-image` does not apply.

### Clarification protocol

Before invoking a TTS or STT call, the agent checks the following. If any required signal is missing, clarify with the user first.

**TTS (asset mode) required:**
- [ ] Text content provided?
- [ ] Voice profile id or tone description provided?

**TTS strongly recommended:**
- [ ] Language explicit or detectable from the text?
- [ ] Output format (mp3 default, wav optional)?

**STT required:**
- [ ] Audio path provided and the file exists?
- [ ] Duration within 30 minutes, or user approves splitting?

**Notification mode skips clarification.** It uses `notification_profile` from config and language is auto-detected from the message.

### Invocation

#### Standalone
```text
/oma-voice "build succeeded, 4 minor warnings"
/oma-voice transcribe ~/Downloads/standup.m4a
/oma-voice --profile prof_warm_korean "다음 단계 진행 준비됐어요"
Shared infrastructure (other skills)

Other skills can request audio output by calling the same MCP tools directly, or by invoking /oma-voice with their text. There is no separate CLI; the skill is MCP-native.

References

  • Voice engine matrix: resources/voice-matrix.md
  • Prompt writing rules: resources/prompt-tips.md
  • Execution protocol: resources/execution-protocol.md
  • Pre-flight checklist: resources/checklist.md
  • Configuration: config/voice-config.yaml
  • Context loading: ../_shared/core/context-loading.md
  • Quality principles: ../_shared/core/quality-principles.md
  • Design reference: ../../../docs/plans/designs/012-oma-voice.md (source repo only; absent in global-mode installs)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.