Skip to main content

CLI tool for SiMa Developer Portal to download models, firmware, and apps.

Project description

🛠️ sima-cli – SiMa Developer Portal CLI Tool

Python 3.8 Python 3.9 Python 3.10 Python 3.11 Python 3.12 Python 3.13 Python 3.14 E2E macOS E2E Windows E2E Ubuntu x86 E2E Ubuntu ARM64

sima-cli is a command-line interface (CLI) utility designed to interact with the SiMa Developer Portal. It supports downloading models and apps from the Model/App Zoo, performing firmware updates, and authenticating against internal or external environments.


📦 Installation

Install from the stable installer script. By default these commands install the latest main build.

Linux, macOS, and DevKit

curl -fsSL https://artifacts.sima-neat.com/tools/sima-cli-install.py -o sima-cli-install.py
python3 sima-cli-install.py main latest

To choose from available branches and releases interactively:

python3 sima-cli-install.py

To install a specific branch or release:

python3 sima-cli-install.py feature/my-branch latest
python3 sima-cli-install.py v2.1.6 latest

Release tags such as v2.1.6 are installed from public PyPI. Branch names install tested artifacts from artifacts.sima-neat.com.

Windows PowerShell

Invoke-WebRequest https://artifacts.sima-neat.com/tools/sima-cli-install.py -OutFile sima-cli-install.py
python .\sima-cli-install.py main latest

To choose from available branches and releases interactively:

python .\sima-cli-install.py

To install a specific branch or release:

python .\sima-cli-install.py feature/my-branch latest
python .\sima-cli-install.py v2.1.6 latest

Release tags such as v2.1.6 are installed from public PyPI. Branch names install tested artifacts from artifacts.sima-neat.com.

Public PyPI releases can also be installed directly:

pip install sima-cli

🚀 Getting Started

sima-cli --help

Global Option

  • --internal: Use internal Artifactory resources (can also be set via SIMA_CLI_INTERNAL=1).

Environment detection output will appear like:

🔧 Environment: dev (sandbox) | Internal: True

If external mode is detected and not supported:

external environment is not supported yet..

🔐 Authentication

sima-cli login

Authenticates with the SiMa Developer Portal. Internal or external login is selected based on context.


📥 Download Resources

sima-cli download <URL> [-d DEST]
  • Downloads a single file or an entire folder from the provided URL.
  • Options:
    • -d, --dest: Destination folder (default is current directory).

🔥 Vulcan Artifacts

sima-cli vulcan download --env production core main
  • Downloads tested artifacts from Vulcan artifact hosting.
  • Environment URLs:
    • dev: https://artifacts.neat.paconsultings.com
    • staging: https://artifacts.stg.neat.sima.ai
    • production: https://artifacts.neat.sima.ai
  • dev and staging are available for Vulcan downloads. production is not yet available.
  • Usage:
    • sima-cli vulcan --env {dev|stg|staging|prd|prod|production} download [REPO] [BRANCH_OR_TAG]
    • sima-cli vulcan download --env {dev|stg|staging|prd|prod|production} [REPO] [BRANCH_OR_TAG]
    • Shortcut flags are also available: --dev, --stg/--staging, and --prd/--prod.
    • If REPO is omitted, the CLI prompts for a repository.
    • If BRANCH_OR_TAG is omitted, the CLI downloads branches.json and prompts for a branch.
    • For automation, pass both values and add --json for structured output.
  • Each download reads latest.tag, fetches manifest.json, downloads manifest-listed artifacts, and verifies size and SHA256 values when present.

Example:

sima-cli vulcan --env dev download internals develop --output ./artifacts --json

🔧 Firmware Update

sima-cli update <version_or_url> [--ip IP] [--passwd PASSWORD] [--flavor {headless|full|auto}] [-y]
sima-cli update --version <VERSION> [--ip IP] [--passwd PASSWORD] [--flavor {headless|full|auto}] [-y]
  • Updates firmware either locally (when running on the board) or over the network.
  • Positional:
    • <version_or_url>: Version tag (e.g. 1.6.0_master_B1611) or direct URL.
  • Options:
    • -v, --version: Provide the version via flag instead of positional argument.
    • --ip: IP/FQDN of the remote device (required when running from a host).
    • -p, --passwd: SSH password for the remote board (default edgeai).
    • -f, --flavor: Override firmware flavor (headless, full, or auto).
    • -y, --yes: Skip the confirmation prompt before flashing.

🧠 Model Zoo

List Models

sima-cli modelzoo list [--ver VERSION]
  • Lists available models for a given SDK version.

Get Model

sima-cli modelzoo get <MODEL_NAME> [--ver VERSION]
  • Downloads the specified model.

📱 App Zoo

List Apps

sima-cli appzoo list [--ver VERSION]
  • Lists available apps for a given SDK version.

Get App

sima-cli appzoo get <APP_NAME> [--ver VERSION]
  • Downloads the specified app.

🖥️ Device Management

Discover Devices

sima-cli device discover
  • Discover nearby SiMa.ai DevKits via ARP or multicast on the local network.

Connect to Device

sima-cli device connect --target <IP> [--user sima] [--password edgeai]
sima-cli device connect --slot <SLOT_NUMBER>
  • Connect to a device over Ethernet (using --target) or PCIe (using --slot).

List Connected Devices

sima-cli device list
  • Show all currently connected devices with their status.

Disconnect from Device

sima-cli device disconnect --target <IP>
sima-cli device disconnect --slot <SLOT_NUMBER>
  • Disconnect from a device using either IP/FQDN or PCIe slot number.

Reboot Device

sima-cli device reboot --target <IP>
sima-cli device reboot --slot <SLOT_NUMBER>
  • Reboot a connected device.

Firmware Upgrade

sima-cli device firmware-upgrade --file <PATH_TO_SWU> --target <IP> [--reboot-on-upgrade]
sima-cli device firmware-upgrade --file <PATH_TO_SWU> --slot-number <SLOT_NUMBER>
  • Upgrade firmware on a device using a software update file (.swu).

📦 MPK Package Management

Deploy MPK

sima-cli mpk deploy --file <PATH_TO_MPK> --target <IP> [--set-default]
sima-cli mpk deploy --file <PATH_TO_MPK> --slot <SLOT_NUMBER>
  • Deploy a prebuilt MPK package to a connected device.

Launch Pipeline

sima-cli mpk launch --application <APP_NAME> --target <IP>
sima-cli mpk launch --application <APP_NAME> --slot <SLOT_NUMBER>
  • Launch a deployed pipeline on the device.

Kill Pipeline

sima-cli mpk kill --id <PIPELINE_ID> --target <IP>
sima-cli mpk kill --pid <PID> --slot <SLOT_NUMBER>
  • Kill a running pipeline using either pipeline ID or process ID.

Remove Pipeline

sima-cli mpk remove --application <APP_NAME> --target <IP>
  • Remove a deployed pipeline from the device.

List Pipelines

sima-cli mpk list
  • Show all deployed pipelines on connected devices.

🔧 Install Components

sima-cli install hostdriver -v 1.7.0
  • Install the PCIe host driver for a specific SDK version.
sima-cli install optiview
  • Install OptiView tool (SDK-independent).
sima-cli install -m <METADATA_URL>
  • Install a package from a metadata.json URL.
sima-cli install gh:<USER>/<REPO>/<PATH_TO_METADATA>
  • Install from a GitHub metadata file.
sima-cli install cr:<REGISTRY>/<IMAGE>:<TAG>
  • Install from a container registry.
sima-cli install ghcr:<OWNER>/<IMAGE>:<TAG>
  • Install from public GitHub Container Registry (GHCR).

📋 Package Registry

List Installed Packages

sima-cli packages list
  • Show all packages registered in the local sima-cli registry.

Show Package Details

sima-cli packages show <PACKAGE_NAME> [--version VERSION]
  • Display metadata and post-installation instructions for a package.

🛠️ SDK Container Management

Setup SDK

sima-cli sdk setup [--noninteractive] [-y] [--workspace PATH] [--no-model-sdk] [--no-insight] [--minimal]
  • Initialize SDK environment and select components to start.
  • Use --workspace PATH to mount a host directory other than ~/workspace into SDK containers.
  • Use --no-model-sdk to skip Model SDK extension setup.
  • Use --no-insight to start Neat SDK without Insight UI/video/WebRTC port mappings.
  • Use --minimal for CI compilation jobs. It skips optional Neat SDK setup extras, including Insight setup, installing sima-cli, Model SDK extensions, and coding agent playbooks inside the container.

Start SDK Containers

sima-cli sdk start [-y]
  • Start one or more SDK containers.

Stop SDK Containers

sima-cli sdk stop [SDK_NAME] [-y]
  • Stop running SDK containers (e.g., yocto, mpk, model, neat, elxr).

Remove SDK Containers

sima-cli sdk remove [SDK_NAME] [-y]
  • Remove SDK containers and images to free up storage.

Access SDK Container

sima-cli sdk mpk
sima-cli sdk model
sima-cli sdk yocto
sima-cli sdk neat
sima-cli sdk elxr
  • Launch an interactive shell in the respective SDK container.

List SDK Containers

sima-cli sdk ls
  • Show installed SDK containers with their version and running status.

💾 Storage Management

Format NVMe Drive

sima-cli nvme format
  • Format the NVMe drive on Modalix DevKit and mount it at /media/nvme.

Remount NVMe Drive

sima-cli nvme remount
  • Remount an existing NVMe partition to /media/nvme.

Format SD Card

sima-cli sdcard format
  • Prepare the SD Card as data storage for MLSoc or Modalix DevKit.

🌐 Network Configuration

sima-cli network
  • Interactive menu to configure network settings on the DevKit (DHCP/Static IP, default route).
  • Only works on SiMa boards.

🖥️ Serial Console

sima-cli serial [--baud 115200]
  • Connect to the UART serial console of the DevKit.
  • Auto-detects the serial port and launches picocom (Linux/macOS) or shows instructions for PuTTY/Tera Term (Windows).

📸 Boot Image Creation

sima-cli bootimg -v 1.7.0 [--boardtype modalix] [--netboot] [--autoflash]
  • Download firmware and write to removable media or setup TFTP netboot.
  • Options:
    • --netboot: Prepare image for network boot and launch TFTP server.
    • --autoflash: Automatically flash internal storage after netboot.

🔄 Convert Yocto to eLxr

Convert a Yocto-based DevKit to the eLxr runtime environment (SDK 2.0.0+, Modalix DevKit only).

Prerequisites

  1. Connect DevKit Ethernet to host PC (set host to static IP 192.168.1.10)
  2. Update to latest Yocto headless (required for tRoot compatibility):
sima-cli update --ip <IP_DEVKIT> 2.0.0 -f headless

Conversion Steps

Prepare netboot environment:

# macOS
sima-cli bootimg --boardtype modalix --fwtype elxr -v 2.0.0 --netboot

# Linux (requires sudo for port 69)
sudo ~/.sima-cli/.venv/bin/sima-cli bootimg --boardtype modalix --fwtype elxr -v 2.0.0 --netboot

Configure u-boot (from serial console):

setenv cpio_name simaai-image-palette-modalix.cpio.gz
setenv boot_targets net
saveenv
boot

Flash eMMC (from host terminal after netboot completes):

f

Revert to Yocto

Use the same process with --fwtype yocto:

sima-cli bootimg --boardtype modalix --fwtype yocto -v 2.0.0 --netboot

🔄 Self Update

sima-cli selfupdate
  • Update sima-cli to the latest version from PyPI.
sima-cli selfupdate --dev
  • Update from Vulcan dev artifacts. If --branch is omitted, sima-cli loads branches.json and prompts for a branch.
sima-cli selfupdate --stg --branch main
  • Update from Vulcan staging artifacts.
sima-cli selfupdate --neat --branch main
  • Update from Vulcan production artifacts. Production aliases are --prd, --prod, --neat, and --vulcan.
sima-cli selfupdate -v 0.0.46
  • Update to a specific version.
sima-cli --internal selfupdate -v 0.0.46
  • Update from internal Artifactory (requires --internal flag).

📊 MLA Memory Info

sima-cli mla meminfo
  • Display real-time MLA memory usage chart on supported boards.

🔓 Logout

sima-cli logout
  • Delete cached credentials and config files.

🌍 Environment Variable Support

Instead of using --internal flag every time, you can set:

export SIMA_CLI_INTERNAL=1

📌 Version

sima-cli version
  • Display the currently installed sima-cli version.

🧩 Requirements

  • Python 3.8+
  • Internal network access if using --internal features

📞 Support

Please reach out to SiMa Support (support@sima.ai) if you encounter issues with downloads or updates.


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

sima_cli-2.1.8.tar.gz (254.9 kB view details)

Uploaded Source

Built Distribution

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

sima_cli-2.1.8-py3-none-any.whl (292.4 kB view details)

Uploaded Python 3

File details

Details for the file sima_cli-2.1.8.tar.gz.

File metadata

  • Download URL: sima_cli-2.1.8.tar.gz
  • Upload date:
  • Size: 254.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sima_cli-2.1.8.tar.gz
Algorithm Hash digest
SHA256 9f720692b295f5b25be88b48d40eae41953aa6267c82eed47235091eabdd0c24
MD5 d446afaea417d62f62a1794ca1c0d993
BLAKE2b-256 69c1028455b38bd7eea240fbfcf960312259713c1a2d88d33c67f5a36c947bb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for sima_cli-2.1.8.tar.gz:

Publisher: publish-pypi.yml on sima-neat/sima-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 sima_cli-2.1.8-py3-none-any.whl.

File metadata

  • Download URL: sima_cli-2.1.8-py3-none-any.whl
  • Upload date:
  • Size: 292.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sima_cli-2.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 56ebc5be8fe9610fdcba873daf4c2947e538e1733be0cd45a2695eb83670d48e
MD5 72e4f1e50a0d77a0b2abf4a1169d5434
BLAKE2b-256 4edf4d4e2e28fc323f941408673c31bd8fa0b7b4b614d249fb8535ea8a3e90bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for sima_cli-2.1.8-py3-none-any.whl:

Publisher: publish-pypi.yml on sima-neat/sima-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