The official command-line interface for Cyberwave
Project description
Cyberwave CLI
The official command-line interface for Cyberwave. Authenticate and bootstrap robotics projects from your terminal.
Installation
From PyPI (pip)
pip install cyberwave-cli
From APT (Debian/Ubuntu)
# You may need to install curl and/or gpg first, if you're on a very minimal host:
sudo apt update && sudo apt install curl gpg -y
# Add Cyberwave repository (one-time setup)
curl -fsSL "https://packages.buildkite.com/cyberwave/cyberwave-cli/gpgkey" | sudo gpg --dearmor -o /etc/apt/keyrings/cyberwave_cyberwave-cli-archive-keyring.gpg
# Configure the source
echo -e "deb [signed-by=/etc/apt/keyrings/cyberwave_cyberwave-cli-archive-keyring.gpg] https://packages.buildkite.com/cyberwave/cyberwave-cli/any/ any main\ndeb-src [signed-by=/etc/apt/keyrings/cyberwave_cyberwave-cli-archive-keyring.gpg] https://packages.buildkite.com/cyberwave/cyberwave-cli/any/ any main" | sudo tee /etc/apt/sources.list.d/buildkite-cyberwave-cyberwave-cli.list > /dev/null
# Install
sudo apt update && sudo apt install cyberwave-cli
From Source
git clone https://github.com/cyberwave-os/cyberwave-cli
cd cyberwave-cli
pip install -e .
Quick Start - Edge
1. SSH into your edge device
ssh yourhost@your-ip
2. Set up your Edge device
Once you are in your edge device, set it up by:
cyberwave edge install
This command will guide you to your first-time setup of your edge device.
Commands
| Command | Description |
|---|---|
login |
Authenticate with Cyberwave |
logout |
Remove stored credentials |
config-dir |
Print the active configuration directory |
core |
Visualize the core commands |
cyberwave login
Authenticates with Cyberwave using your email and password.
# Interactive login (prompts for credentials)
cyberwave login
# Non-interactive login
cyberwave login --email you@example.com --password yourpassword
Options:
-e, --email: Email address-p, --password: Password (will prompt if not provided)
cyberwave config-dir
Prints the resolved configuration directory path. Useful in scripts to locate credentials and config files without hardcoding paths.
cyberwave config-dir
# /etc/cyberwave
# Use in a script
CONFIG_DIR=$(cyberwave config-dir)
cat "$CONFIG_DIR/credentials.json"
The CLI resolves the directory with the following priority:
CYBERWAVE_EDGE_CONFIG_DIRenvironment variable (explicit override)/etc/cyberwaveif writable or creatable (system-wide, preferred)~/.cyberwaveas a fallback for non-root users
cyberwave edge
Manage the edge node service lifecycle, configuration, and monitoring.
| Subcommand | Description |
|---|---|
install |
Install cyberwave-edge-core and register systemd service |
uninstall |
Stop and remove the systemd service |
start |
Start the edge node |
stop |
Stop the edge node |
restart |
Restart the edge node (systemd or process) |
status |
Check if the edge node is running |
pull |
Pull edge configuration from backend |
whoami |
Show device fingerprint and info |
health |
Check edge health status via MQTT |
remote-status |
Check edge status from twin metadata (heartbeat) |
logs |
Show edge node logs |
install-deps |
Install edge ML dependencies |
sync-workflows |
Trigger workflow sync on the edge node |
list-models |
List model bindings loaded on the edge node |
cyberwave edge install
Installs the cyberwave-edge-core package (via apt-get on Debian/Ubuntu) and creates a systemd service so it starts on boot. Guides you through workspace and environment selection.
sudo cyberwave edge install
sudo cyberwave edge install -y # skip prompts
cyberwave edge uninstall
Stops the systemd service, removes the unit file, and optionally uninstalls the package.
sudo cyberwave edge uninstall
cyberwave edge start / stop / restart
cyberwave edge start # background
cyberwave edge start -f # foreground
cyberwave edge start --env-file ./my/.env # custom config
cyberwave edge stop
sudo cyberwave edge restart # systemd
cyberwave edge restart --env-file .env # process mode
cyberwave edge status
Checks whether the edge node process is running.
cyberwave edge status
cyberwave edge pull
Pulls edge configuration from the backend using the discovery API (or legacy twin/environment lookup).
cyberwave edge pull # auto-discover via fingerprint
cyberwave edge pull --twin-uuid <UUID> # single twin (legacy)
cyberwave edge pull --environment-uuid <UUID> # all twins in environment (legacy)
cyberwave edge pull -d ./my-edge # custom output directory
cyberwave edge whoami
Displays the unique hardware fingerprint for this device, used to identify the edge when connecting to twins.
cyberwave edge whoami
cyberwave edge health
Queries real-time health status via MQTT (stream states, FPS, WebRTC connections).
cyberwave edge health -t <TWIN_UUID>
cyberwave edge health -t <TWIN_UUID> --watch # continuous
cyberwave edge health -t <TWIN_UUID> --timeout 10
cyberwave edge remote-status
Checks the last heartbeat stored in twin metadata to determine online/offline status without MQTT.
cyberwave edge remote-status -t <TWIN_UUID>
cyberwave edge logs
cyberwave edge logs # last 50 lines
cyberwave edge logs -n 100 # last 100 lines
cyberwave edge logs -f # follow (tail -f)
cyberwave edge install-deps
Installs common ML runtimes needed by edge plugins.
cyberwave edge install-deps # ultralytics + opencv
cyberwave edge install-deps -r onnx -r tflite # specific runtimes
cyberwave edge sync-workflows / list-models
cyberwave edge sync-workflows --twin-uuid <UUID> # re-sync model bindings
cyberwave edge list-models --twin-uuid <UUID> # show loaded models
Configuration
Configuration is stored in a single directory shared by the CLI and the edge-core service. The directory is resolved as follows:
CYBERWAVE_EDGE_CONFIG_DIRenv var — explicit override/etc/cyberwave— system-wide (preferred, requires root or write access)~/.cyberwave— per-user fallback for non-root environments
Run cyberwave config-dir to see which directory is active.
Files inside the config directory:
credentials.json— API token and workspace info (permissions600)environment.json— selected workspace, environment, and twin bindingsfingerprint.json— unique edge device identifier
Other environment variables:
CYBERWAVE_BASE_URL: Override the API URL (default:https://api.cyberwave.com)CYBERWAVE_ENVIRONMENT: Environment name (for exampledev, defaults toproduction)CYBERWAVE_MQTT_HOST: MQTT broker host (for exampledev.mqtt.cyberwave.comfor dev; defaults tomqtt.cyberwave.com)
When credentials are written, the CLI also persists these CYBERWAVE_* values into
credentials.json so cyberwave-edge-core can reuse them in service mode.
Building for Distribution
PyInstaller (standalone binary)
pip install -e ".[build]"
pyinstaller --onefile --name cyberwave-cli cyberwave_cli/main.py
Debian Package
See debian/ directory for packaging scripts.
Support
- Documentation: docs.cyberwave.com
- Issues: GitHub Issues
- Community: Discord
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cyberwave_cli-0.11.31.tar.gz.
File metadata
- Download URL: cyberwave_cli-0.11.31.tar.gz
- Upload date:
- Size: 102.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.10.19 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
379e22b55656f4c8d01c1fd9fe5901b5488620b27642791e79bd49a6dce1d52e
|
|
| MD5 |
19655cd78a7d657c1f07b1812e272cb2
|
|
| BLAKE2b-256 |
421e60c1ef3ccc664ffb4e39c21494a8c87cfc2d702587868660f006f6003aeb
|
File details
Details for the file cyberwave_cli-0.11.31-py3-none-any.whl.
File metadata
- Download URL: cyberwave_cli-0.11.31-py3-none-any.whl
- Upload date:
- Size: 81.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.10.19 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69eba4f303e76711ee50b57530a0ee9ffd89e3d4a71127f2fc96573a36262805
|
|
| MD5 |
9bcc05842b90d20d2d24fde3ca2dad65
|
|
| BLAKE2b-256 |
71626efab94df650501a83c21f886f31c5ffd8548eea399babb61f739ac5bf26
|