Neon Command Line Interface Utilities
-
Neon CLI - Command Line Interface to the AI core, and for displaying logs and microphone level
-
Neon Mana CLI - Command Line Interface for detecting and sending message objects via the messagebus
-
Neon Iris CLI - Command Line Interface for secure connections by Python clients via the MQ connector
-
Examples - Explanations for typical CLI uses
Supported Features
Feature | CLI Support | Iris Support | Mana Support |
---|---|---|---|
Log Monitoring | Yes | No | No |
Messagebus activity monitoring | No | Yes | No |
Remote (or containerized) core interaction | No* | Yes* | Yes* |
Text Inputs | Yes | Yes | Yes |
Audio File Inputs | No | Yes | Yes |
Arbitrary Message Injection | No | Yes | Yes** |
There are three CLI utilities used for interacting with Neon AI in different scenarios. This guide provides a summary of these different programs, their advantages and disadvantages, and examples of where they may be used.
Definitions:
- AI Core: neon-core, ovos-core, mycroft-core, or another compatible system
- Remote Core: An AI Core running on a different computer, in containers, or in a VM
- Messagebus: A websocket-based communication standard used by compatible AI Cores
- Message: A Message object as defined by mycroft-messagebus-client
Neon CLI - Command Line Interface to the AI core, and for displaying logs and microphone level
The CLI works with an AI Core (Neon, OVOS and Mycroft) running on the same computer (or VM) as the client, providing log output, text input/output, and local mic level monitoring. Logs and mic level are accessed via the local file system and text input/output uses the messagebus. The Neon CLI is a modified version of the Mycroft CLI.
Installation
pip install neon-cli-client
Commandline Entrypoint
neon-cli
Supported Features
Feature | Supported |
---|---|
Log Monitoring | Yes |
Messagebus activity monitoring | No |
Remote (or containerized) core interaction | No* |
Text Inputs | Yes |
Audio File Inputs | No |
Arbitrary Message Injection | No |
* Containers that bind the messagebus to the local host will be able to handle text input and output, but logs and mic level will not be reported.
Usage
The CLI client is best used for debugging locally running AI Cores.
Download
The Neon CLI client can be downloaded from GitHub at Neon CLI
Neon Mana CLI - Command Line Interface for detecting and sending message objects via the messagebus
Neon Mana (Message Application for Neon AI) is a CLI that was created to address limitations of the Neon CLI Client. Mana provides utilities for monitoring messagebus activity and for sending messages into the messagebus. Mana also provides simple bus configuration to connect to different messagebus instances for monitoring and message-based interactions.
Installation
pip install neon-mana-utils
Commandline Entrypoint
mana
Supported Features
Feature | Supported |
---|---|
Log Monitoring | No |
Messagebus activity monitoring | Yes |
Remote (or containerized) core interaction | Yes* |
Text Inputs | Yes |
Audio File Inputs | Yes |
Arbitrary Message Injection | Yes |
* The messagebus port must be accessible by mana for interacting with remote systems
Usage
Mana is best used if you are trying to detect or send a specific Message
object. It is also particularly useful for sending a recorded utterance as if it was spoken, for testing STT in a language you don't speak.
Download
The Neon Mana CLI client can be downloaded from GitHub at Neon Mana CLI
Neon Iris CLI - Command Line Interface for secure connections by Python clients via the MQ connector
Neon Iris (Interactive Relay for Intelligence Systems) is a CLI client and extensible Python client for interacting with Neon Core via an MQ Connector Module. Iris was created to interact with remote Neon Cores without exposing the messagebus directly.
Installation
pip install neon-iris
Commandline Entrypoint
iris
Supported Features
Feature | Supported |
---|---|
Log Monitoring | No |
Messagebus activity monitoring | No |
Remote (or containerized) core interaction | Yes* |
Text Inputs | Yes |
Audio File Inputs | Yes |
Arbitrary Message Injection | Yes** |
* The remote core must be connected to the same MQ server as iris
** Not all messages generate responses that will route back through the Messagebus-MQ Connector
Usage
Iris is best used to connect to Neon Core "server" instances, but the module could be used to connect to a different core that implements the MQ Connector Module.
Download
The Neon Iris CLI client can be downloaded from GitHub at Neon Iris CLI
Examples
Use Case | Recommended Package | Explanation |
---|---|---|
Debugging a local core | neon-cli, mana |
Neon-cli provides the simplest UI for monitoring overall core activity. If a particular message is expected, mana provides a better option for inspecting or injecting a Message. |
Developing a skill using a local core | neon-cli |
Neon-cli provides log monitoring as well as text input/output in one place. |
Developing a skill using a Docker core | mana |
Mana provides utilities for sending text inputs to a core running in Docker containers and for monitoring messagebus activity. For logs, |
Integration testing an STT Plugin | mana |
Mana provides utilities for starting listening (isolate STT from WW testing) and for sending an audio file for STT and skill intent processing. |
Integration testing a TTS Plugin | mana |
Mana provides a utility for passing text to the audio module for TTS directly. |
Testing in a foreign language | mana, iris |
Mana provides a utility for sending an audio file for STT and skills processing; translated audio can be pre-generated and then sent via the messagebus (or via MQ with iris). |
Interacting with a remote core | iris |
Iris securely connects to a remote core via MQ; it is recommended to not expose the messagebus outside of the host device (and especially not outside of the local network). MQ handles authentication and encryption for sessions connected over the internet. |
Implementing a client application | iris |
Iris provides a base class that can be extended for alternate MQ clients. |