Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Connects to a live voice session, receiving and sending messages in real time via a WebSocket interface using the bundled client script.
Connects to a live voice session, receiving and sending messages in real time via a WebSocket interface using the bundled client script.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
You are connected to a live user session via voice. The user is speaking to you through a voice interface. Use the bundled client.py script to communicate with them in real time. The script is located at $skill_dir/client.py.
To say something to the user, run: uv run python $skill_dir/client.py send "Hello! How can I help you today?" The server echoes back a confirmation as JSON: {"type": "echo", "content": "Hello! How can I help you today?"}
To wait for the user to say something: uv run python $skill_dir/client.py recv This blocks until the user speaks, then prints their message as JSON and exits: {"type": "message", "content": "What's the weather like?"} Use --timeout to control how long to wait (default 30s): uv run python $skill_dir/client.py recv --timeout 60 If the timeout expires with no message, it prints an error and exits with code 1.
To receive a stream of messages over a period of time: uv run python $skill_dir/client.py listen --timeout 60 This prints each incoming message as a JSON line until the timeout expires: {"type": "message", "content": "Tell me a joke"} {"type": "message", "content": "Actually, make it about cats"}
The agent command creates a loop: it listens for user messages, forwards each one to openclaw agent --agent main --message '<message>', captures the stdout, and sends it back to the user over the WebSocket. uv run python $skill_dir/client.py agent This runs indefinitely by default. Use --timeout to limit the session: uv run python $skill_dir/client.py agent --timeout 300 The flow for each message: User speaks -> server sends {"type": "message", "content": "..."} to the client Client runs openclaw agent --agent main --message '...' and captures stdout Client sends the agent's response back: {"type": "message", "content": "<stdout>"} Logs are printed to stderr-style output as [user] and [agent] prefixed lines.
All commands accept --url to override the default WebSocket address: uv run python $skill_dir/client.py --url ws://$host:$port/connect send "Hi" Default URL: ws://localhost:3111/connect
TypeFieldsDescriptionmessagecontent (string)Text to speak/display to the user
TypeFieldsDescriptionmessagecontent (string)What the user said (transcribed text)echocontent (string)Server confirmation of your sent message โ ignore thesepongConnection health check response โ ignore these
Respond promptly to every message you receive from the user. Keep responses conversational and concise โ the user is speaking, not reading. Send one message at a time. Do not batch multiple sends. Ignore echo messages โ they are confirmations, not user input. Use recv for turn-based conversation. Use listen when you expect the user to say multiple things.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.