Skip to content

Extensions

Extensions are the primary way to connect your devices and systems to Zelos. Built with the Zelos SDK, they transform complex integrations into one-click installs - letting you immediately stream, visualize, and control your hardware without writing code.

What Makes Zelos Different

Zelos extensions makes it trivial to quickly capture data and control devices. Ex: Install the CAN extension to immediately view and send data on the bus - no custom integration code needed.

What Are Extensions?

Extensions are installable applications built using the Zelos SDK that run on the Zelos Agent and provide:

Data Acquisition

  • Decode bus protocols (CAN/CAN-FD, Modbus, MQTT, OPC-UA, Ethernet/Protobuf, Serial)
  • Interface with test equipment (National Instruments, Opal-RT HIL boxes, oscilloscopes)
  • Stream from custom hardware and sensors
  • Parse proprietary file formats and logs

Device Control

  • Execute commands on hardware via actions
  • Automate test sequences
  • Control parameters in real-time
  • Trigger hardware events from the app

Finding Extensions

Marketplace

The Extensions marketplace contains community-built integrations for common hardware, protocols, and use cases. Access it from the app rail or left sidebar.

  1. Click Extensions in the app rail (left edge)
  2. Browse Marketplace tab for available extensions
  3. View Installed tab for your extensions

Click the menu in the Marketplace header to access marketplace actions:

Marketplace Menu

Marketplace actions menu.
  • Create Extension - Generate a new extension from template
  • Install Local Extension - Install from local filesystem for development
  • Publish Extension - Submit your extension to the marketplace

Search & Filter

Search across all extension metadata:

  • Extension name and description
  • Author names
  • Category tags (Automotive, IoT, Industrial, etc.)
  • Keywords (CAN, Modbus, sensor, etc.)

Installing Extensions

Install published extensions with a few clicks:

  1. Click extension card to open details view
  2. Click Install button
  3. Configure if needed, then start the extension

Requirements:

  • Connected to a live Zelos Agent
  • Extension supports your platform (Windows/macOS/Linux, x86_64/ARM64)
  • Internet connection for marketplace download

Install extensions from your local filesystem for development and testing:

  1. Open Extensions view
  2. Click Install Local Extension (Marketplace tab)
  3. Select extension directory containing extension.toml
  4. Extension installs as local.{directory-name}

Development workflow:

  • Live code reload - changes reflect immediately when extension restarts
  • Test unpublished extensions before submitting to marketplace
  • Modify existing extensions for custom needs

Managing Extensions

Extensions appear in the left sidebar's Extensions section when connected to a live agent.

Starting & Stopping

Start Extension:

  • Click the play icon (green) on a stopped extension
  • Extension state changes to "running" (red square icon)
  • Extension's signals and actions become available

Stop Extension:

  • Click the square icon (red) on a running extension
  • Extension process terminates gracefully
  • Signals and actions disappear from sidebar

Extension States

Extensions show different indicators based on their state:

State Icon Description
Running Red square Extension is active and operational
Stopped Green play Extension is installed but not running
Error Amber warning Extension encountered an issue
Processing Spinner Extension is starting, stopping, or restarting

Configuration

Many extensions accept user configuration for API keys, settings, and preferences.

Configure an Extension:

  1. Click the settings icon on the extension
  2. Configuration dialog opens with form fields
  3. Fill in required settings
  4. Click Save & Start (if stopped) or Save & Restart (if running)

Configuration Tips

  • Look for tooltip help icons (ⓘ) for field descriptions
  • Required fields marked with asterisk (*)
  • Invalid values show error messages below fields

Using Extensions

Once running, extensions stream data and provide controls through the Zelos SDK.

How Extensions Work

Extensions use the Zelos SDK to:

  1. Define event schemas - Specify signals with types and units (e.g., CAN messages decoded into engineering values)
  2. Stream data - Push events to the agent in real-time (e.g., sensor readings at 1kHz)
  3. Provide actions - Expose commands users can trigger from the app (e.g., send CAN message, reset device)

This data appears in your workspace just like data from your own SDK-instrumented applications.

Signals from Extensions

Running extensions appear in the left sidebar's Extensions section, organized hierarchically:

📁 Extension Name
  └── 📁 Source (e.g., "can_bus", "sensor_1")
      └── 📁 Event (e.g., "motor_status", "measurements")
          └── 📊 Field (e.g., "rpm", "temperature")

Add signals to panels using the same workflows as built-in data:

  • Drag and drop to existing panels
  • Multi-select and batch-add
  • Double-click to create new panel

Actions from Extensions

Extension actions appear in the left sidebar's Actions section. Actions let you:

  • Send commands to hardware (e.g., "Set motor speed", "Trigger capture")
  • Configure parameters in real-time (e.g., "Update PID gains")
  • Execute test sequences (e.g., "Run calibration routine")

Each action has a configuration form generated from the extension's schema, with proper types, validation, and help text.

Updating Extensions

Automatic Update Detection

The app automatically checks for extension updates:

  • Every 30 minutes during normal use
  • Shows update badge on extensions with available updates
  • Displays target version: "v1.2.0 available"

Manual Update Check

Force an immediate update check:

  1. Navigate to Extensions view
  2. Click Check for Updates in Installed section
  3. Wait for check to complete
  4. Update badges appear on extensions with available updates

Installing Updates

Update an Extension:

  1. Stop the extension (click square icon if running)
  2. Click extension to open detail view
  3. Click Update button
  4. Wait for update to complete
  5. Extension updated to latest version (remains stopped)
  6. Start extension to use new version

Extension Update

Updating an extension.

Stop Before Updating

Extensions must be stopped before updating. The Update button is disabled when an extension is running.

Troubleshooting

Extension Won't Start

Common causes:

  • Configuration required - Open settings and provide required fields
  • Platform incompatibility - Check extension supports your OS/architecture

Steps to resolve:

  1. Click extension to view details
  2. Check README for configuration requirements
  3. Open settings and verify all required fields filled
  4. Check extension log (dropdown → Open Log)

Cannot Install Extension

"Extension doesn't support your system":

  • Extension not available for your OS/architecture
  • Check extension detail page for supported platforms

"Network error. Check connection and try again":

  • Verify internet connection
  • Check firewall allows marketplace access
  • Try again in a few moments

"Extension is already installed":

  • Extension already present in Installed section
  • Update instead if newer version needed

Creating Extensions

Build your own extensions to share integrations with the Zelos community.

Why Build an Extension?

Package your integration work into a reusable extension:

  • Share protocol decoders - CAN, Modbus, custom binary formats
  • Distribute hardware drivers - Test equipment, sensors, actuators
  • Provide workflows - Automated test sequences, calibration routines
  • Build integrations - Cloud services, databases, external APIs

Extensions leverage the Zelos SDK's event streaming and action system - the same tools used for instrumenting applications.

Getting Started

The fastest way to create an extension is to use the built-in creator in the app:

  1. Navigate to Extensions view
  2. Click Create Extension in Marketplace section
  3. Fill in name and details
  4. Generated extension installs locally automatically

Create Extension

Creating a new extension.

Follow the Extension Development Guide for more information. The template includes working examples, development tools (UV, Just, Ruff), CI/CD workflows, and everything needed for production-ready extensions.

Next Steps