The Signaloid CLI is a comprehensive tool for interacting with applications on the Signaloid Cloud Compute Engine. You can use it to generate a new web front end for an existing application written in C/C++ that utilizes Signaloid’s UxHw, or use it for full command-line access to manage your Signaloid account, applications, and GitHub repositories.
The init web-app command of the Signaloid CLI helps you to generate a graphical web interface for your application, to help you visualize how changes in the input parameters affect the distribution range of your application's outputs. The generated web application interacts with the Signaloid Cloud Compute Engine to launch accelerated executions of the back-end application and returns its results.
Additionally, Signaloid CLI gives you command-line access to your Signaloid account for full end-to-end management of applications and repositories, such as initiating builds and running tasks. It provides you with the tools for integrating the Signaloid Cloud Compute Engine with custom scripts, batch processing, or automated jobs. For more information on these features, see the Signaloid CLI developer documentation.
- Node.js 24.x or higher
- git
- A Signaloid API key. Sign in to the Signaloid Cloud Developer Platform, and go to
Settings > Cloud Engine API. Enter the key name and generate a new key. Save the key somewhere safe as you will not be able to view it again. - GitHub Access Token with the following scopes:
repoandread:packages. Read more about access tokens in GitHub docs. - A C/C++ application.
- To run C/C++ applications from private repositories, you need to sign in to GitHub from the Signaloid Cloud Developer Platform.
To generate a web app using the Signaloid CLI, the inputs and outputs from the back-end C/C++ application must be in a format compatible with the front end generated by the Signaloid CLI. The application must:
- accept command-line arguments
- export data in JSON format
- be stored in a GitHub repository
The default application when running Signaloid CLI is the Signaloid C application example. This is a basic working example that you can use when first runnning the Signaloid CLI. You can also use an application from another public Signaloid repository, such as the Battery State Estimation Application, use an application you have created already if it has appropriate inputs and outputs, or modify a custom application.
- Authenticate using your GitHub Access Token:
echo "Enter your GitHub Access Token with read:packages and repo scopes:" && read -s GITHUB_TOKEN && npm config set @signaloid:registry https://npm.pkg.github.com/ && npm config set //npm.pkg.github.com/:_authToken $GITHUB_TOKEN - Install the Signaloid CLI:
npm install -g @signaloid/signaloid-cli
After installation, use the signaloid-cli command to initialize a new web app project:
signaloid-cli init web-app
During the initialization, configure the inputs when prompted to create a web demo of your C/C++ Signaloid application. Default values are provided for all inputs to help you get started configuring your first application.
Note
For the default Signaloid C application, leave all of these options with their default values.
- Project name: The local directory for Signaloid CLI to save the web app into.
- Title: The title at the top of the generated web app.
- Short description: Short description that will appear at the top of the web app.
- Core ID: The Signaloid Core that the C/C++ source code will run on. Default value is the core ID of Signaloid C0Pro-M+.
- GitHub repository URL: The HTTPS URL of the GitHub repository containing your C/C++ application. Default value is https://github.com/signaloid/Signaloid-CLI-Demo-C-Template for the Signaloid CLI Demo C Template.
- Commit hash: Git commit hash that SCCE will build. Default value is
HEAD. - Branch name: Git branch that SCCE will build. Default value is
main. - Build directory: Directory in your repository containing the C/C++ Signaloid application source code. Default value is
src/. - Application general arguments: Optional command-line arguments that are required for your C/C++ application to run. Default value is empty.
Your web app can have one or more interactive inputs that can dynamically pass data to your C/C++ application.
Specify the number of these inputs in the following prompt (default value is 1):
⚙️ Configuring interactive inputs...
✔ How many inputs will your application have?
Note
For the default Signaloid C application, create 1 input of a distributional slider, with argument flag -k.
For each one of these inputs, you need to specify:
-
Type - the type of interactive front-end element and its data type. Select from:
-
Argument flag - the command-line option that will pass this input data to the C/C++ Signaloid application.
-
Component elements in the diagram below:
Once you have finished configuring your application, change to the project's directory and run:
npm startThis animation shows how to install Signaloid CLI and configure a new web application using the default Signaloid C application.
To work with the Signaloid CLI, the inputs and outputs from back-end C/C++ applications must be in a format compatible with the front end generated by the Signaloid CLI. While inputs are mostly scalars and Ux Strings, outputs must be formatted as JSON. To convert the output to JSON, Signaloid provides common utility routines - a small library which can parse arguments and prepare the output.
This is a minimal C code application that is compatible with the Signaloid CLI. The application has an input parameter commandLineArgDistributionalInput with command-line argument -k. Using parseDoubleChecked, the application can parse both scalar floating-point values and Ux Strings.
To make the output suitable for the Signaloid CLI, it then uses jsonOutputVariables and printJSONVariables from common.h to format the output in JSON format.




