Skip to main content

Command-line interface for the Cyberwave Digital Twin Platform - manage robots, environments, and simulations

Project description

Cyberwave CLI

PyPI version Python 3.8+ License: MIT

Command-line interface for the Cyberwave Digital Twin Platform. Manage projects, environments, digital twins, and robot integrations from the terminal.

Cyberwave is a comprehensive robotics platform that enables you to create digital twins of physical robots, run realistic simulations, and seamlessly bridge the gap between virtual development and real-world deployment.

🚀 Features

  • 🤖 Robot Management: Register, control, and monitor physical robots
  • 🌍 Environment Control: Create and manage 3D simulation environments
  • 🔗 Digital Twin Operations: Seamless physical-digital synchronization
  • ⚙️ Edge Runtime: Bridge local robots to cloud platform
  • 🔐 Secure Authentication: Token-based authentication with device tokens
  • 📊 Telemetry Streaming: Real-time data collection and monitoring
  • 🧩 Plugin Architecture: Extensible command system

🤖 Supported Robots & Hardware

  • Robotic Arms: SO-ARM100, Universal Robots, custom URDF-based arms
  • Drones: DJI Tello, custom UAVs with MAVLink support
  • Mobile Robots: Custom ground vehicles, AGVs, autonomous platforms
  • Sensors: Cameras, LIDAR, IMU, custom sensor integrations
  • Custom Hardware: Extensible driver system for any robot type

💡 Use Cases

  • Algorithm Development: Test path planning and control algorithms safely
  • Fleet Management: Monitor and control multiple robots remotely
  • Training & Education: Learn robotics with realistic simulations
  • Prototyping: Validate designs before physical implementation
  • Industrial Automation: Optimize factory and warehouse operations

Installation

One-Liner (Recommended)

curl -sSL https://raw.githubusercontent.com/cyberwave-os/cyberwave-cli/main/install.py | python3

Automatically installs packages and configures PATH

Manual Installation

# CLI with SDK (automatically includes cyberwave SDK)
pip install cyberwave-cli

# CLI with robotics integrations (recommended for hardware)
pip install cyberwave-cli[robotics]

# Or install everything separately
pip install cyberwave-cli cyberwave-robotics-integrations

# Development installation (isolated)
pipx install cyberwave-cli

PATH Configuration (if needed)

If you get "command not found: cyberwave" after manual installation:

# Auto-configure PATH
python3 -m cyberwave_cli.setup_utils

# Or use built-in setup command
cyberwave setup

# Verify installation
cyberwave doctor

🎯 Quick Start

Get up and running with Cyberwave in 3 simple steps:

# 1. Install (includes SDK automatically)
pip install cyberwave-cli

# 2. Authenticate 
cyberwave auth login --backend-url https://api.cyberwave.com --frontend-url https://app.cyberwave.com

# 3. Start using
cyberwave projects list
cyberwave devices register --project PROJECT_ID --name "My Robot" --type robot/so-arm100

📖 Detailed Usage

1. Authentication

# Login to your Cyberwave instance
cyberwave auth login --backend-url http://localhost:8000 --frontend-url http://localhost:3000

# For production (replace with your actual domain)
# cyberwave auth login --backend-url https://api.cyberwave.com --frontend-url https://app.cyberwave.com

# Check authentication status
cyberwave auth status

# Logout
cyberwave auth logout

2. Project Management

# List projects
cyberwave projects list

# Create new project
cyberwave projects create "My Robot Project" --description "Autonomous robot fleet"

# Get project details
cyberwave projects show <project-uuid>

3. Environment Management

# List environments
cyberwave environments list

# Create environment
cyberwave environments create "Test Environment" --project <project-uuid>

# Environment details
cyberwave environments show <environment-uuid>

4. Digital Twin Operations

# List twins in environment
cyberwave twins list --environment <environment-uuid>

# Add twin from catalog
cyberwave twins add cyberwave/so101 --environment <environment-uuid>

# Control twin position
cyberwave twins move <twin-uuid> --x 1.0 --y 0.0 --z 0.5

# Control robot joints
cyberwave twins joint <twin-uuid> --joint shoulder --angle 45

5. Device Management

# Register device
cyberwave devices register --name "My Robot" --type so100

# List devices
cyberwave devices list

# Device status
cyberwave devices status <device-id>

Plugins

Plugins are discovered via the cyberwave.cli.plugins entry point and loaded automatically.

  • Built-in: auth, projects, devices, edge, twins
  • List loaded plugins:
    cyberwave plugins-cmd
    

Devices

# Register a device and issue a device token
cyberwave devices register --project <PROJECT_ID> --name my-edge --type robot/so-arm100
cyberwave devices issue-offline-token --device <DEVICE_ID>

Edge Node (SO-ARM100 example and simulation)

Configure and run a CyberWave Edge node that bridges a local driver to the cloud via the SDK.

  • Initialize config (auto-register and create a device token):
    cyberwave edge init \
      --robot so_arm100 \
      --port /dev/ttyUSB0 \
      --backend http://localhost:8000/api/v1 \
      --project <PROJECT_ID> \
      --device-name edge-soarm100 \
      --device-type robot/so-arm100 \
      --auto-register \
      --use-device-token \
      --config ~/.cyberwave/edge.json
    
  • Run:
    cyberwave edge run --config ~/.cyberwave/edge.json
    
  • Status:
    cyberwave edge status --config ~/.cyberwave/edge.json
    
  • Simulate a virtual camera from a local mp4 (no hardware needed):
    cyberwave edge simulate --sensor <SENSOR_UUID> --video ./sample.mp4 --fps 2
    
  • Command mode (optional): set in ~/.cyberwave/edge.json to route via backend controller
    {
      "control_mode": "command",
      "twin_uuid": "<TWIN_UUID>"
    }
    

Twin Control (Unified Command)

Send a command to a twin through the backend TeleopController.

# Move joints (degrees/radians based on driver semantics)
cyberwave twins command \
  --twin <TWIN_UUID> \
  --name arm.move_joints \
  --joints "[0,10,0,0,0,0]" \
  --mode both \
  --source cli

# Move to pose
cyberwave twins command \
  --twin <TWIN_UUID> \
  --name arm.move_pose \
  --pose '{"x":0.1, "y":0.2, "z":0.0}' \
  --mode sim

Configuration

  • CLI config: ~/.cyberwave/config.toml (managed by cyberwave auth config)
  • Edge config: ~/.cyberwave/edge.json (managed by cyberwave edge init)

Security

  • Tokens are stored in system keychain when available, with JSON fallback.
  • Device tokens are long-lived; prefer them for headless Edge deployments.

Environments and Sensors (new)

List environments for a project and show recent events (latest session per twin):

cyberwave environments list --project <PROJECT_UUID>
cyberwave environments events --environment <ENVIRONMENT_UUID> -n 5

Create/list sensors in an environment:

cyberwave sensors create --environment <ENVIRONMENT_UUID> --name "Living Room Cam" --type camera
cyberwave sensors list --environment <ENVIRONMENT_UUID>

List analyzer events for a specific sensor from the latest session:

cyberwave sensors events --environment <ENVIRONMENT_UUID> --sensor <SENSOR_UUID> -n 20

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cyberwave_cli-0.11.4.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cyberwave_cli-0.11.4-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file cyberwave_cli-0.11.4.tar.gz.

File metadata

  • Download URL: cyberwave_cli-0.11.4.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cyberwave_cli-0.11.4.tar.gz
Algorithm Hash digest
SHA256 eb8dbc69a133eabafde57c0f174eb70d7773984ee85136620c8d84e86cd55894
MD5 5e21d708a96ec620dd1a8906ab5603e6
BLAKE2b-256 c68e22176de8b1fa9161934051d67d555fd9f4166f3eaed837ebf26014c96c71

See more details on using hashes here.

Provenance

The following attestation bundles were made for cyberwave_cli-0.11.4.tar.gz:

Publisher: workflow.yml on cyberwave-os/cyberwave-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cyberwave_cli-0.11.4-py3-none-any.whl.

File metadata

  • Download URL: cyberwave_cli-0.11.4-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cyberwave_cli-0.11.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2a1cd9e43851df3c207bbe2b8d270bd9d7885e08dc21eba5c8ee7f2fb313a409
MD5 4f89e30d89687ff4754d615e8bb2be97
BLAKE2b-256 41b9a3c82a97f3085ae4f2325fcb0c83282177656cf312993e3c64d5da6c8b87

See more details on using hashes here.

Provenance

The following attestation bundles were made for cyberwave_cli-0.11.4-py3-none-any.whl:

Publisher: workflow.yml on cyberwave-os/cyberwave-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page