Neon Mana (Messagebus Application for Neon AI) provides tools for interacting with the MessageBus.
Install the Mana utilities Python package with: pip install neon-mana-utils
The mana
entrypoint is available to interact with a bus via CLI. Help is available via mana --help
.
The default behavior of Mana is to connect to the default core bus (ws://0.0.0.0:8181/core
). The connection can be
configured for all mana
commands via:
mana configure-messagebus --host "192.168.1.100" --port 18181
--host
specifies the host URL or IP address--port
specifies the port theMessageBus
is running on
Any unspecified arguments will use default values.
All configurations can be printed to the terminal with:
mana print-config
Mana can connect to a messagebus and log all Message
objects sent on that bus.
mana tail-messagebus --format
--format
flag formats serialized messages printed to the shell
--include
and --exclude
arguments may be passed to include or exclude messages
with msg_type
matching specified prefixes. Global filters may be specified in:
${XDG_CONFIG_HOME}/mana/filters.yml
. An example filter file is included here:
include:
- recognizer_loop
exclude:
- "recognizer_loop:utterance"
The spec above would log any Message
s that start with recognizer_loop
, except
messages with type recognizer_loop:utterance
.
--host
, --port
, --route
, and --ssl
may be specified to monitor a different
messagebus without changing the configured bus that is used for other commands. A
common use case would be to monitor the GUI bus while interacting with the core bus.
There are several commands available to interact with a connected Core.
Send an arbitrary Message
over the MessageBus
. The specified file should be a json or yaml
serialized message. --response
may optionally define a response message type to wait for and print to the terminal.
These are commands supported by Mycroft and all derivative cores; they replicate some of the commands originally found in mycroft-core/bin.
Send a mycroft.mic.listen
Message.
Send a mycroft.stop
Message.
Send a recognizer_loop:utterance
Message to skills for processing. This sends a minimal message that is
not sufficient for testing user profiles or multi-user cores.
Send a speak
Message to TTS for generation and playback
These commands are currently specified for neon-core
only and are not supported
by other cores. Work is ongoing to standardize these entrypoints across projects.
Send a neon.get_stt
Message and print the returned Message with transcriptions.
This will only work under NeonCore.
Send a neon.get_tts
Message and print the returned Message with a path to generated TTS.
This will only work under NeonCore.
Send a recognizer_loop:utterance
Message with the appropriate context to return a klat.shout
response.
This will only work under NeonCore and will likely be refactored to reflect NeonCore changes.