← Back to Plugins
Voice

Voice Device

lillianama By lillianama 👁 16 views ▲ 0 votes

An OpenClaw plugin that connects local voice hardware to OpenClaw as a full channel β€” with persistent sessions, memory, and persona.

GitHub

Install

npm install openclaw-voice-device

Configuration Example

{
  "plugins": {
    "voice-device": {}
  }
}

README

# openclaw-voice-device

An [OpenClaw](https://openclaw.ai) plugin that connects local voice hardware to OpenClaw as a full channel β€” with persistent sessions, memory, and persona.

## What it does

Lets any voice device send a speech transcript to OpenClaw and receive a reply, routed through the full OpenClaw session pipeline. The device gets access to the AI's complete persona, conversation history, memory, and tools β€” not just a one-shot completion.

```
Device sends:  { "device_id": "my-device-001", "transcript": "what is the weather today" }
OpenClaw runs: full session pipeline (persona + memory + tools)
Device gets:   { "reply": "It's 62 degrees and partly cloudy." }
```

Compare this to hitting `/v1/chat/completions` directly:
- Sessions persist across utterances β€” the AI remembers what you said a moment ago
- Full persona and memory β€” same AI you talk to on any other channel
- Cross-channel continuity β€” start a conversation on your phone, continue it by voice
- No context management needed on the device

## Requirements

- OpenClaw gateway (self-hosted)
- Any device that can make HTTP requests and play audio

## Installation

```bash
npm install openclaw-voice-device
```

Then add to your OpenClaw config:
```json
{
  "plugins": {
    "voice-device": {}
  }
}
```

## Device API

### Send a transcript

```
POST /voice-device/transcribe
Authorization: Bearer <device-token>
Content-Type: application/json

{
  "device_id": "my-device-001",
  "transcript": "what is the weather today"
}
```

Response:
```json
{
  "reply": "It's 62 degrees and partly cloudy.",
  "session_id": "sess_xyz"
}
```

### Request a pairing code

```
POST /voice-device/pair/request
Content-Type: application/json

{ "device_id": "my-device-001" }
```

Response:
```json
{
  "code": "DEVICE-7K4M",
  "expires_in": 300
}
```

The user approves the code in OpenClaw UI or via the `/pair` command. Once approved, the device polls for its token:

```
GET /voice-device/pair/poll?code=DEVICE-7K4M
```

## Status

🚧 **Early development** β€” API may change before v1.0.

## License

MIT
voice

Comments

Sign in to leave a comment

Loading comments...