cyberwave-cli


Namecyberwave-cli JSON
Version 0.11.5 PyPI version JSON
download
home_pageNone
SummaryCommand-line interface for the Cyberwave Digital Twin Platform - manage robots, environments, and simulations
upload_time2025-08-22 13:25:44
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords robotics digital-twin simulation cli automation robot-control
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Cyberwave CLI

[![PyPI version](https://badge.fury.io/py/cyberwave-cli.svg)](https://badge.fury.io/py/cyberwave-cli)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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)
```bash
curl -sSL https://raw.githubusercontent.com/cyberwave-os/cyberwave-cli/main/install.py | python3
```
*Automatically installs packages and configures PATH*

### Manual Installation
```bash
# 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:
```bash
# 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:

```bash
# 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
```bash
# Login to your Cyberwave instance (will prompt for email/password)
cyberwave auth login --backend-url http://localhost:8000

# Or provide credentials directly
cyberwave auth login --email your@email.com --password yourpassword

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

# Check authentication status
cyberwave auth status

# Logout
cyberwave auth logout
```

### 2. Project Management
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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:
  ```bash
  cyberwave plugins-cmd
  ```

### Devices

```bash
# 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):
  ```bash
  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:
  ```bash
  cyberwave edge run --config ~/.cyberwave/edge.json
  ```
- Status:
  ```bash
  cyberwave edge status --config ~/.cyberwave/edge.json
  ```
- Simulate a virtual camera from a local mp4 (no hardware needed):
  ```bash
  cyberwave edge simulate --sensor <SENSOR_UUID> --video ./sample.mp4 --fps 2
  ```
- Command mode (optional): set in `~/.cyberwave/edge.json` to route via backend controller
  ```json
  {
    "control_mode": "command",
    "twin_uuid": "<TWIN_UUID>"
  }
  ```

### Twin Control (Unified Command)

Send a command to a twin through the backend TeleopController.

```bash
# 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):
```bash
cyberwave environments list --project <PROJECT_UUID>
cyberwave environments events --environment <ENVIRONMENT_UUID> -n 5
```

Create/list sensors in an environment:
```bash
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:
```bash
cyberwave sensors events --environment <ENVIRONMENT_UUID> --sensor <SENSOR_UUID> -n 20
```


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cyberwave-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Cyberwave <support@cyberwave.com>",
    "keywords": "robotics, digital-twin, simulation, cli, automation, robot-control",
    "author": null,
    "author_email": "Cyberwave <support@cyberwave.com>",
    "download_url": "https://files.pythonhosted.org/packages/63/36/7a29cafa233e8f65062acb0f9aa706afcafbc1f1d05e447cda2184b8812f/cyberwave_cli-0.11.5.tar.gz",
    "platform": null,
    "description": "# Cyberwave CLI\n\n[![PyPI version](https://badge.fury.io/py/cyberwave-cli.svg)](https://badge.fury.io/py/cyberwave-cli)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nCommand-line interface for the **Cyberwave Digital Twin Platform**. Manage projects, environments, digital twins, and robot integrations from the terminal.\n\n**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.\n\n## \ud83d\ude80 Features\n\n- **\ud83e\udd16 Robot Management**: Register, control, and monitor physical robots\n- **\ud83c\udf0d Environment Control**: Create and manage 3D simulation environments  \n- **\ud83d\udd17 Digital Twin Operations**: Seamless physical-digital synchronization\n- **\u2699\ufe0f Edge Runtime**: Bridge local robots to cloud platform\n- **\ud83d\udd10 Secure Authentication**: Token-based authentication with device tokens\n- **\ud83d\udcca Telemetry Streaming**: Real-time data collection and monitoring\n- **\ud83e\udde9 Plugin Architecture**: Extensible command system\n\n## \ud83e\udd16 Supported Robots & Hardware\n\n- **Robotic Arms**: SO-ARM100, Universal Robots, custom URDF-based arms\n- **Drones**: DJI Tello, custom UAVs with MAVLink support\n- **Mobile Robots**: Custom ground vehicles, AGVs, autonomous platforms\n- **Sensors**: Cameras, LIDAR, IMU, custom sensor integrations\n- **Custom Hardware**: Extensible driver system for any robot type\n\n## \ud83d\udca1 Use Cases\n\n- **Algorithm Development**: Test path planning and control algorithms safely\n- **Fleet Management**: Monitor and control multiple robots remotely  \n- **Training & Education**: Learn robotics with realistic simulations\n- **Prototyping**: Validate designs before physical implementation\n- **Industrial Automation**: Optimize factory and warehouse operations\n\n## Installation\n\n### One-Liner (Recommended)\n```bash\ncurl -sSL https://raw.githubusercontent.com/cyberwave-os/cyberwave-cli/main/install.py | python3\n```\n*Automatically installs packages and configures PATH*\n\n### Manual Installation\n```bash\n# CLI with SDK (automatically includes cyberwave SDK)\npip install cyberwave-cli\n\n# CLI with robotics integrations (recommended for hardware)\npip install cyberwave-cli[robotics]\n\n# Or install everything separately\npip install cyberwave-cli cyberwave-robotics-integrations\n\n# Development installation (isolated)\npipx install cyberwave-cli\n```\n\n### PATH Configuration (if needed)\nIf you get \"command not found: cyberwave\" after manual installation:\n```bash\n# Auto-configure PATH\npython3 -m cyberwave_cli.setup_utils\n\n# Or use built-in setup command\ncyberwave setup\n\n# Verify installation\ncyberwave doctor\n```\n\n## \ud83c\udfaf Quick Start\n\nGet up and running with Cyberwave in 3 simple steps:\n\n```bash\n# 1. Install (includes SDK automatically)\npip install cyberwave-cli\n\n# 2. Authenticate \ncyberwave auth login --backend-url https://api.cyberwave.com --frontend-url https://app.cyberwave.com\n\n# 3. Start using\ncyberwave projects list\ncyberwave devices register --project PROJECT_ID --name \"My Robot\" --type robot/so-arm100\n```\n\n## \ud83d\udcd6 Detailed Usage\n\n### 1. Authentication\n```bash\n# Login to your Cyberwave instance (will prompt for email/password)\ncyberwave auth login --backend-url http://localhost:8000\n\n# Or provide credentials directly\ncyberwave auth login --email your@email.com --password yourpassword\n\n# For production (replace with your actual domain)\n# cyberwave auth login --backend-url https://api.cyberwave.com\n\n# Check authentication status\ncyberwave auth status\n\n# Logout\ncyberwave auth logout\n```\n\n### 2. Project Management\n```bash\n# List projects\ncyberwave projects list\n\n# Create new project\ncyberwave projects create \"My Robot Project\" --description \"Autonomous robot fleet\"\n\n# Get project details\ncyberwave projects show <project-uuid>\n```\n\n### 3. Environment Management\n```bash\n# List environments\ncyberwave environments list\n\n# Create environment\ncyberwave environments create \"Test Environment\" --project <project-uuid>\n\n# Environment details\ncyberwave environments show <environment-uuid>\n```\n\n### 4. Digital Twin Operations\n```bash\n# List twins in environment\ncyberwave twins list --environment <environment-uuid>\n\n# Add twin from catalog\ncyberwave twins add cyberwave/so101 --environment <environment-uuid>\n\n# Control twin position\ncyberwave twins move <twin-uuid> --x 1.0 --y 0.0 --z 0.5\n\n# Control robot joints\ncyberwave twins joint <twin-uuid> --joint shoulder --angle 45\n```\n\n### 5. Device Management\n```bash\n# Register device\ncyberwave devices register --name \"My Robot\" --type so100\n\n# List devices\ncyberwave devices list\n\n# Device status\ncyberwave devices status <device-id>\n```\n\n### Plugins\n\nPlugins are discovered via the `cyberwave.cli.plugins` entry point and loaded automatically.\n\n- Built-in: `auth`, `projects`, `devices`, `edge`, `twins`\n- List loaded plugins:\n  ```bash\n  cyberwave plugins-cmd\n  ```\n\n### Devices\n\n```bash\n# Register a device and issue a device token\ncyberwave devices register --project <PROJECT_ID> --name my-edge --type robot/so-arm100\ncyberwave devices issue-offline-token --device <DEVICE_ID>\n```\n\n### Edge Node (SO-ARM100 example and simulation)\n\nConfigure and run a CyberWave Edge node that bridges a local driver to the cloud via the SDK.\n\n- Initialize config (auto-register and create a device token):\n  ```bash\n  cyberwave edge init \\\n    --robot so_arm100 \\\n    --port /dev/ttyUSB0 \\\n    --backend http://localhost:8000/api/v1 \\\n    --project <PROJECT_ID> \\\n    --device-name edge-soarm100 \\\n    --device-type robot/so-arm100 \\\n    --auto-register \\\n    --use-device-token \\\n    --config ~/.cyberwave/edge.json\n  ```\n- Run:\n  ```bash\n  cyberwave edge run --config ~/.cyberwave/edge.json\n  ```\n- Status:\n  ```bash\n  cyberwave edge status --config ~/.cyberwave/edge.json\n  ```\n- Simulate a virtual camera from a local mp4 (no hardware needed):\n  ```bash\n  cyberwave edge simulate --sensor <SENSOR_UUID> --video ./sample.mp4 --fps 2\n  ```\n- Command mode (optional): set in `~/.cyberwave/edge.json` to route via backend controller\n  ```json\n  {\n    \"control_mode\": \"command\",\n    \"twin_uuid\": \"<TWIN_UUID>\"\n  }\n  ```\n\n### Twin Control (Unified Command)\n\nSend a command to a twin through the backend TeleopController.\n\n```bash\n# Move joints (degrees/radians based on driver semantics)\ncyberwave twins command \\\n  --twin <TWIN_UUID> \\\n  --name arm.move_joints \\\n  --joints \"[0,10,0,0,0,0]\" \\\n  --mode both \\\n  --source cli\n\n# Move to pose\ncyberwave twins command \\\n  --twin <TWIN_UUID> \\\n  --name arm.move_pose \\\n  --pose '{\"x\":0.1, \"y\":0.2, \"z\":0.0}' \\\n  --mode sim\n```\n\n### Configuration\n\n- CLI config: `~/.cyberwave/config.toml` (managed by `cyberwave auth config`)\n- Edge config: `~/.cyberwave/edge.json` (managed by `cyberwave edge init`)\n\n### Security\n\n- Tokens are stored in system keychain when available, with JSON fallback.\n- Device tokens are long-lived; prefer them for headless Edge deployments.\n\n### Environments and Sensors (new)\n\nList environments for a project and show recent events (latest session per twin):\n```bash\ncyberwave environments list --project <PROJECT_UUID>\ncyberwave environments events --environment <ENVIRONMENT_UUID> -n 5\n```\n\nCreate/list sensors in an environment:\n```bash\ncyberwave sensors create --environment <ENVIRONMENT_UUID> --name \"Living Room Cam\" --type camera\ncyberwave sensors list --environment <ENVIRONMENT_UUID>\n```\n\nList analyzer events for a specific sensor from the latest session:\n```bash\ncyberwave sensors events --environment <ENVIRONMENT_UUID> --sensor <SENSOR_UUID> -n 20\n```\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Command-line interface for the Cyberwave Digital Twin Platform - manage robots, environments, and simulations",
    "version": "0.11.5",
    "project_urls": {
        "Bug Reports": "https://github.com/cyberwave-os/cyberwave-cli/issues",
        "Changelog": "https://github.com/cyberwave-os/cyberwave-cli/releases",
        "Documentation": "https://cyberwave.com/docs",
        "Homepage": "https://cyberwave.com",
        "Repository": "https://github.com/cyberwave-os/cyberwave-cli"
    },
    "split_keywords": [
        "robotics",
        " digital-twin",
        " simulation",
        " cli",
        " automation",
        " robot-control"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c27d84efb2e6a44aa32f4403b9a44611484afa0475d7566e190cab9993f04b7b",
                "md5": "7a520af41b3c7ef5971c034b4fcf190d",
                "sha256": "78a714fcbaff613b9769ffea647eb4784e30b5959b2c21f904de3c9d00fa61c5"
            },
            "downloads": -1,
            "filename": "cyberwave_cli-0.11.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7a520af41b3c7ef5971c034b4fcf190d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 23805,
            "upload_time": "2025-08-22T13:25:43",
            "upload_time_iso_8601": "2025-08-22T13:25:43.165091Z",
            "url": "https://files.pythonhosted.org/packages/c2/7d/84efb2e6a44aa32f4403b9a44611484afa0475d7566e190cab9993f04b7b/cyberwave_cli-0.11.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "63367a29cafa233e8f65062acb0f9aa706afcafbc1f1d05e447cda2184b8812f",
                "md5": "ce4777301be02a0bb06679a9ddab765d",
                "sha256": "cca6bcf7f91f278393e7bb4bef9f7edcf6ca7e9b2aad811e6912fc8febb76d9c"
            },
            "downloads": -1,
            "filename": "cyberwave_cli-0.11.5.tar.gz",
            "has_sig": false,
            "md5_digest": "ce4777301be02a0bb06679a9ddab765d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 24156,
            "upload_time": "2025-08-22T13:25:44",
            "upload_time_iso_8601": "2025-08-22T13:25:44.832463Z",
            "url": "https://files.pythonhosted.org/packages/63/36/7a29cafa233e8f65062acb0f9aa706afcafbc1f1d05e447cda2184b8812f/cyberwave_cli-0.11.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-22 13:25:44",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cyberwave-os",
    "github_project": "cyberwave-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cyberwave-cli"
}
        
Elapsed time: 1.77845s