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/:

Related

License

Apache 2.0. See LICENSE.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ovos_bus_client-2.11.13a1.tar.gz (116.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovos_bus_client-2.11.13a1-py3-none-any.whl (129.0 kB view details)

Uploaded Python 3

File details

Details for the file ovos_bus_client-2.11.13a1.tar.gz.

File metadata

  • Download URL: ovos_bus_client-2.11.13a1.tar.gz
  • Upload date:
  • Size: 116.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ovos_bus_client-2.11.13a1.tar.gz
Algorithm Hash digest
SHA256 ac762b4520320ad8aa647556adc0ecd4fbaae4c046913d03d2f26ea8934c3184
MD5 9adf1ce1f433b0a314e88f947793185b
BLAKE2b-256 d52759aaf9f7591ba0e8667ac5e6f17ff314e04ece7cbb6d589923751522afb8

See more details on using hashes here.

File details

Details for the file ovos_bus_client-2.11.13a1-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_bus_client-2.11.13a1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e08ef3e29b10383d7c568246317c78288be9e50936408e1c5503c52a54da258
MD5 fb8af12deead0e73c0aa52be3195c433
BLAKE2b-256 1d50386a100d8f4eca7a3eb3c2d0b46c0eba5db18f1baef046635e3fa6d7cd49

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.11.13a1 This release

2 files

1.5.0

2 files

1.3.7

2 files

1.3.4

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.6

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.1

2 files

0.1.0

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

1 file

0.0.1

1 file

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