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):
bashcd .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:
bashcd .claude/skills/weather-voice && npx tsx src/index.ts "<user_query>" --text-only
Use this when user says: "text only", "no audio", "no voice", "silent", "just text"
- •
If user wants to SPEAK their question via microphone:
bashcd .claude/skills/weather-voice && npx tsx src/index.ts --mic
This records for 5 seconds by default. For longer recording:
bashcd .claude/skills/weather-voice && npx tsx src/index.ts --mic --duration 10
Use this when user says: "use my microphone", "let me speak", "voice input", "record my question"
- •
If user provides an audio file to transcribe:
bashcd .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 (