Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

OpenVoiceOS Bus Client

A Python client for the OVOS messagebus. Connect to OVOS, emit messages, and react to system events.

The OVOS messagebus is the nervous system of an OVOS install. Every component — STT, intent parsing, skills, TTS, audio, GUI — talks over it. This package is the Python client.

⚠️ The bus is private. It has no authentication — every connected client can issue any natural-language command, speak through the speakers, take over any subsystem, and read every other client's traffic. Keep it bound to 127.0.0.1 (the default), never expose it on a network interface, and never put it behind a reverse proxy. For remote access, use HiveMind, which adds encryption, identity, and policy enforcement on top.

Install

pip install ovos-bus-client

Quick start

from ovos_bus_client import MessageBusClient, Message

client = MessageBusClient()
client.run_in_thread()
client.connected_event.wait()

client.emit(Message('speak', data={'utterance': 'Hello World'}))

Listening for messages:

from ovos_bus_client import MessageBusClient

client = MessageBusClient()

def on_speak(message):
    print('OVOS said:', message.data.get('utterance'))

client.on('speak', on_speak)
client.run_forever()

Async alternative

For asyncio-native code, install the optional [async] extra and use AsyncMessageBusClient:

pip install ovos-bus-client[async]
import asyncio
from ovos_bus_client import Message
from ovos_bus_client.client import AsyncMessageBusClient

async def main():
    bus = AsyncMessageBusClient()
    await bus.connect()
    bus.on("speak", lambda m: print("OVOS said:", m.data.get("utterance")))

    await bus.emit(Message("speak", {"utterance": "hello from asyncio"}))
    reply = await bus.wait_for_response(
        Message("ovos.languages.stt"), timeout=3.0,
    )
    await bus.close()

asyncio.run(main())

Both clients share the same Message, Session, and event-emitter shape; pick whichever matches the rest of your application. See docs/async_client.md for the full async reference.

CLI tools

Command Description
ovos-speak <text> [lang] Ask OVOS to speak a phrase
ovos-say-to <text> [lang] Inject an utterance into the intent pipeline
ovos-listen Trigger the wake-word / listen cycle
ovos-simple-cli [lang] Interactive text REPL for OVOS

Configuration

MessageBusClient reads the websocket block of your OVOS config (loaded by ovos-config) — defaults to ws://127.0.0.1:8181/core. Override at construction:

MessageBusClient(host='127.0.0.1', port=8181)

Do not change host to anything routable. See the security callout above.

Migrating from 1.x

Two modules were removed in 2.0.0. Install their replacement packages if you used them:

Removed Replacement Install
ovos_bus_client.hpm.OVOSProtocol hivemind-ovos-agent-plugin pip install hivemind-ovos-agent-plugin
ovos_bus_client.opm.OVOSMessagebusSolver ovos-messagebus-chat-plugin pip install ovos-messagebus-chat-plugin

The HiveMind agent entry point (hivemind.agent.protocol) and the solver entry point (neon.plugin.solver) are no longer registered by this package. See docs/migration.md for details.

Documentation

Full developer docs live in docs/:

License

Apache 2.0. See LICENSE.md.

Metadata

Release files for ovos-bus-client 2.11.29a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-bus-client 2.11.29a1
File Size Uploaded Provenance
ovos_bus_client-2.11.29a1.tar.gz 135.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-bus-client 2.11.29a1
File Interpreter ABI Platform
ovos_bus_client-2.11.29a1-py3-none-any.whl Python 3 none any Details

Total release size: 283.4 kB

Release files / ovos_bus_client-2.11.29a1.tar.gz

Download URL ovos_bus_client-2.11.29a1.tar.gz
Size 135.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1dcf4e1db5cf0010933819fb1b10e51908bacc96dd13a323e0e1ecf7774cc38f
BLAKE2b-256 checksum
How to use checksums
6d9ee31d51aa7defaac9820b56f76a369d88949f71fa88c3f3900f09002722d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / ovos_bus_client-2.11.29a1-py3-none-any.whl

Download URL ovos_bus_client-2.11.29a1-py3-none-any.whl
Size 148.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d1162e4de57a8c1946da35ad37ee2e9a41fd926a00ac9b7d2f3f6332b16acff
BLAKE2b-256 checksum
How to use checksums
8b7a292f675a4d9e104e092abc4919a7f5ad97f27a106a2581c6e5cf5164fddf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for ovos-bus-client 2.11.29a1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page