| name | weather-voice |
| description | Get real-time weather information using web search. Use when user asks about weather, temperature, forecast, or climate conditions for any location. Supports voice input (microphone) and voice output (TTS). By default outputs BOTH text and voice. |
Weather Voice Assistant
Generated by Claude Code with Opus 4.5
A Claude Code skill that provides real-time weather information with voice input/output support.
Important: Latency
This is NOT real-time. Total latency is 15-40 seconds from speaking to hearing response.
Important: Voice Input Workflow
Users must TYPE first to trigger voice input. Claude Code is text-based and does not continuously listen.
Correct workflow:
- User TYPES: "Let me speak my weather question"
- Claude invokes skill with --mic flag
- User SPEAKS when prompted
- Claude returns weather with audio
Default Behavior
- Voice + Text Output: Prints weather to terminal AND plays audio via TTS
- Text Input: User types their query (default)
- Voice Input: User can speak their query via microphone (must type trigger first)
Instructions
For weather queries (default: voice + text output):
cd .claude/skills/weather-voice && npx tsx src/index.ts "<user_query>"This will print the weather AND play it as audio.
If user explicitly wants TEXT ONLY output (no audio), add --text-only flag:
cd .claude/skills/weather-voice && npx tsx src/index.ts "<user_query>" --text-onlyUse this when user says: "text only", "no audio", "no voice", "silent", "just text"
If user wants to SPEAK their question via microphone:
cd .claude/skills/weather-voice && npx tsx src/index.ts --micThis records for 5 seconds by default. For longer recording:
cd .claude/skills/weather-voice && npx tsx src/index.ts --mic --duration 10Use this when user says: "use my microphone", "let me speak", "voice input", "record my question"
If user provides an audio file to transcribe:
cd .claude/skills/weather-voice && npx tsx src/index.ts --input "<audio_path>"
Examples
- "What's the weather in Paris?" → Default (voice + text output)
- "Tokyo weather please" → Default (voice + text output)
- "Weather in London, text only" → Add --text-only flag
- "What's the forecast? no audio" → Add --text-only flag
- "Let me speak my question" → Add --mic flag
- "Use my microphone to ask about weather" → Add --mic flag
- "Record my question for 10 seconds" → Add --mic --duration 10
- "Listen to this audio and get weather" → Add --input flag with audio path
Requirements
- OPENAI_API_KEY environment variable must be set
- Node.js 18+ installed
- Audio playback support (speakers, audio drivers)
- For microphone input:
- Windows: ffmpeg (
winget install ffmpeg) - macOS: SoX (
brew install sox) - Linux: arecord (
sudo apt install alsa-utils)
- Windows: ffmpeg (