# Send ClawVoice to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
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.
```
### Upgrade existing

```text
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.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "claw-voice",
    "name": "ClawVoice",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/niczy/claw-voice",
    "canonicalUrl": "https://clawhub.ai/niczy/claw-voice",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/claw-voice",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=claw-voice",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "client.py",
      "skill.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "claw-voice",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T16:07:44.935Z",
      "expiresAt": "2026-05-08T16:07:44.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=claw-voice",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=claw-voice",
        "contentDisposition": "attachment; filename=\"claw-voice-0.0.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "claw-voice"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/claw-voice"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/claw-voice",
    "downloadUrl": "https://openagent3.xyz/downloads/claw-voice",
    "agentUrl": "https://openagent3.xyz/skills/claw-voice/agent",
    "manifestUrl": "https://openagent3.xyz/skills/claw-voice/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/claw-voice/agent.md"
  }
}
```
## Documentation

### Claw Voice

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.

### Sending a message to the user

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?"}

### Receiving the next message from the user

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.

### Listening for multiple messages

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"}

### Running as an agent bridge

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.

### Connection options

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

### Messages you send (agent -> user)

TypeFieldsDescriptionmessagecontent (string)Text to speak/display to the user

### Messages you receive (user -> agent)

TypeFieldsDescriptionmessagecontent (string)What the user said (transcribed text)echocontent (string)Server confirmation of your sent message — ignore thesepongConnection health check response — ignore these

### Behavior guidelines

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.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: niczy
- Version: 0.0.2
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T16:07:44.935Z
- Expires at: 2026-05-08T16:07:44.935Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/claw-voice)
- [Send to Agent page](https://openagent3.xyz/skills/claw-voice/agent)
- [JSON manifest](https://openagent3.xyz/skills/claw-voice/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/claw-voice/agent.md)
- [Download page](https://openagent3.xyz/downloads/claw-voice)