{"id":21081710,"url":"https://github.com/openvoiceos/ovos-bus-client","last_synced_at":"2026-01-23T14:47:24.142Z","repository":{"id":63426634,"uuid":"567798695","full_name":"OpenVoiceOS/ovos-bus-client","owner":"OpenVoiceOS","description":"messagebus client for the OVOS ecosystem","archived":false,"fork":false,"pushed_at":"2025-05-15T02:04:54.000Z","size":424,"stargazers_count":3,"open_issues_count":13,"forks_count":4,"subscribers_count":5,"default_branch":"dev","last_synced_at":"2025-05-15T03:28:29.904Z","etag":null,"topics":["hacktoberfest","messagebus","websocket"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenVoiceOS.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["OpenVoiceOS"],"patreon":"openvoiceos","liberapay":"OpenVoiceOS-Foundation","custom":"https://paypal.me/openvoiceos"}},"created_at":"2022-11-18T15:51:27.000Z","updated_at":"2025-05-15T02:04:58.000Z","dependencies_parsed_at":"2023-02-18T01:00:42.908Z","dependency_job_id":"d0ad5ff6-bc3e-481a-a1ea-ee69d23b5e90","html_url":"https://github.com/OpenVoiceOS/ovos-bus-client","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"ce15d9292145fa4b667280bd3202dddf83f1a72e"},"previous_names":[],"tags_count":127,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVoiceOS%2Fovos-bus-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVoiceOS%2Fovos-bus-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVoiceOS%2Fovos-bus-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenVoiceOS%2Fovos-bus-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenVoiceOS","download_url":"https://codeload.github.com/OpenVoiceOS/ovos-bus-client/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254504698,"owners_count":22082073,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","messagebus","websocket"],"created_at":"2024-11-19T20:10:29.551Z","updated_at":"2026-01-23T14:47:23.990Z","avatar_url":"https://github.com/OpenVoiceOS.png","language":"Python","funding_links":["https://github.com/sponsors/OpenVoiceOS","https://patreon.com/openvoiceos","https://liberapay.com/OpenVoiceOS-Foundation","https://paypal.me/openvoiceos"],"categories":[],"sub_categories":[],"readme":"# OpenVoiceOS Bus Client\n\nThis module is a simple interface for the OVOS messagebus and can be used to connect to OVOS, send messages and react to messages sent by the OpenVoiceOS system.\n\n---\n\n## 🤖 Persona Integration\n\nThe project also includes the `ovos-solver-bus-plugin`, a plugin for interacting with `ovos-core` wherever a solver can be used.\n\nexample `persona.json`\n```json\n{\n  \"name\": \"Open Voice OS\",\n  \"solvers\": [\n    \"ovos-solver-bus-plugin\",\n    \"ovos-solver-failure-plugin\"\n  ],\n  \"ovos-solver-bus-plugin\": {\n    \"autoconnect\": true,\n    \"host\": \"192.168.1.200\",\n    \"port\": 8181\n  }\n}\n```\n\n### Use Cases:\n- Expose `ovos-core` to any OpenAI-compatible project via [ovos-persona-server](https://github.com/OpenVoiceOS/ovos-persona-server)\n    - Chat with OVOS via the Open Web UI\n    - Expose OVOS as an agent for Home Assistant\n- Integrate OpenVoiceOS into a [Mixture Of Solvers (MOS)](https://github.com/TigreGotico/ovos-MoS)\n\n---\n\n## 📡 HiveMind Integration\n\nThis project includes native integration with [HiveMind Plugin Manager](https://github.com/JarbasHiveMind/hivemind-plugin-manager), enabling seamless interoperability within the HiveMind ecosystem.\n\n`hivemind-ovos-agent-plugin` is a hivemind **Agent Protocol** responsible for handling HiveMessages and translating them to the OpenVoiceOS messagebus\n\n---\n\n## 🐍 Python Usage\n\n### MycroftBusClient()\n\nThe `MycroftBusClient()` object can be setup to connect to any host and port as well as any endpont on that host. this makes it quite versitile and will work on the main bus as well as on a gui bus. If no arguments are provided it will try to connect to a local instance of OVOS on the default endpoint and port.\n\n\u003e NOTE: we kept the original pre-fork class name for compatibility reasons\n\n### Message()\n\nThe `Message` object is a representation of the messagebus message, this will always contain a message type but can also contain data and context. Data is usually real information while the context typically contain information on where the message originated or who the intended recipient is.\n\n```python\nMessage('MESSAGE_TYPE', data={'meaning': 42}, context={'origin': 'A.Dent'})\n```\n\n### Examples\n\nBelow are some a couple of simple cases for sending a message on the bus as well as reacting to messages on the bus\n\n#### Sending a message on the bus.\n\n```python\nfrom ovos_bus_client import MessageBusClient, Message\n\nprint('Setting up client to connect to a local OVOS instance')\nclient = MessageBusClient()\nclient.run_in_thread()\n\nprint('Sending speak message...')\nclient.emit(Message('speak', data={'utterance': 'Hello World'}))\n```\n\n#### Catching a message on the messagebus\n\n```python\nfrom ovos_bus_client import MessageBusClient, Message\n\nprint('Setting up client to connect to a local OVOS instance')\nclient = MessageBusClient()\n\ndef print_utterance(message):\n    print('OVOS said \"{}\"'.format(message.data.get('utterance')))\n\n\nprint('Registering handler for speak message...')\nclient.on('speak', print_utterance)\n\nclient.run_forever()\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenvoiceos%2Fovos-bus-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenvoiceos%2Fovos-bus-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenvoiceos%2Fovos-bus-client/lists"}