ワンクリックで
voice
Voice input/output, transcription, TTS, API keys; manages ~/.voice/voice_config.json.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Voice input/output, transcription, TTS, API keys; manages ~/.voice/voice_config.json.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use for any Microsoft account, personal or work (Outlook.com, Hotmail, Live, Microsoft 365); preferred over email-client for Microsoft accounts. Graph-based mail (read/send/reply/forward, drafts, flag/categorize, move/archive, folders, attachments, block senders), calendar and meetings, Microsoft Teams (chats, channels, presence), and new-mail/Teams notifications. Requires daemon.
Browse, navigate, click, fill forms, screenshot, or scrape web pages with a stealth (Camoufox) browser.
Design judgment and UI copy for building Vesta dashboard widgets that feel considered rather than templated, within the fixed design system.
Use before building or modifying the user's dashboard: widgets, pages, layouts, custom UI. Understand what the user wants, design it, write a spec, then dispatch the dashboard-builder to build it.
Use when someone who doesn't have their own vesta asks what vesta is, how to get one, or hints they want in. Vesta is invite-only: you gatekeep and build desire through scarcity, draw out what they want, then sell vesta as indispensable to their goals and set them up end-to-end in chat. Not for the owner, who already has one.
Talk to vestad, the host daemon that runs this container. Register a background service to get a port, build public URLs, update vestad to the latest release, check its version, and read gateway logs. Use when a skill needs an inbound port or a shareable link, when the user asks to update Vesta, or when debugging gateway/container issues.
| name | voice |
| description | Voice input/output, transcription, TTS, API keys; manages ~/.voice/voice_config.json. |
| serve | voice-keys daemon start |
Voice lets the user talk to you through the mic and hear your responses spoken aloud in the Vesta app.
This skill is also your one voice backend: it owns the STT/TTS providers, keys, and chosen voice, so anything that speaks or listens on your behalf uses the same voice; setting it up here is what turns them on.
voice-keys validate --provider deepgram --key <key>
voice-keys set-key --domain stt --provider deepgram --key <key>
voice-keys set-voice --id <voice_id>
voice-keys daemon start
Check with voice-keys daemon status.Daemon: voice-keys daemon start|stop|restart|status. Start is idempotent (never stacks a duplicate) and owns the register-service call; status reports the port plus each domain's provider and enabled state. Manage the daemon only through these commands, never raw screen.
# See current state
voice-keys status
# Keys
voice-keys validate --provider {deepgram|elevenlabs} --key <k>
voice-keys set-key --domain {stt|tts} --provider {deepgram|elevenlabs} --key <k>
voice-keys clear --domain {stt|tts} # removes provider + keys entirely
# Enable/disable (keeps configuration intact, just toggles on/off)
voice-keys enable --domain {stt|tts}
voice-keys disable --domain {stt|tts}
# TTS voice selection
voice-keys set-voice --id <voice_id>
voice-keys add-voice --id <voice_id> --name <name> --description "..."
voice-keys remove-voice --id <voice_id>
# STT keyterms (words the transcription should bias toward)
voice-keys add-keyterm <term>
voice-keys remove-keyterm <term>
# STT end-of-turn tuning
voice-keys set-eot --threshold 0.8
voice-keys set-eot --timeout-ms 10000
disable --domain tts (keeps keys, just turns it off)enable --domain ttsdisable --domain sttclear --domain tts (wipes provider + keys)set-voice --id <matching voice_id from status>add-keyterm {AGENT_NAME}--threshold (e.g. 0.6)--threshold (e.g. 0.9) or raise --timeout-msstt, provider name: deepgramflux-general-en (~$0.0048/min)tts, provider name: elevenlabseleven_flash_v2_5, output format: mp3_22050_32add-voice:
curl -s https://api.elevenlabs.io/v1/voices/<id> | python3 -c "
import sys,json; v=json.load(sys.stdin); l=v.get('labels',{})
print(v.get('name',''))
print(', '.join(p for p in [l.get('description',''),l.get('accent',''),l.get('gender','')] if p))"
Use the first line as --name and the second as --description. If the fetch fails, ask the user.