Back to Support

Building, Testing, and Loading an Orbit Plugin

July 31, 2026 62 views

Run Orbit commands from the plugin project directory.

Build and validate

Compile the plugin and its dependencies:

orbit build

Validate the manifest and project structure:

orbit validate --strict

Validation checks the plugin ID, semantic version, runtime, target, permissions, entry file, and declared capabilities.

Plugins intended for Helix 2 Plus must use:

{
  "runtime": "js",
  "target": "browser",
  "entry": "dist/index.js"
}

Python plugins also use the browser target and are compiled into dist/index.js.

Test without hardware

Run the plugin in the Orbit emulator:

orbit emulate --plugin . --validate

The emulator checks plugin startup, reader and writer registration, trigger registration, CAN routing, data flow, and cleanup. It then opens an interactive console. Enter help for available commands or exit to stop.

A finite random-traffic test can be run with:

orbit emulate --plugin . --mode random --count 100 --interval 20 --verbose

Create the .orbit package

After testing, create the distributable package:

orbit pack

The default filename is based on the manifest ID:

com.example.can-byte-viewer.orbit

For unsigned local testing:

orbit pack --no-sign

Production packages should follow the applicable signing policy. A Helix device may reject unsigned plugins.

Load the plugin into Helix

  1. Open the Plugins page.

  2. Select Load Plugin.

  3. Choose or drag in the generated .orbit file.

  4. Confirm that the plugin reports an active status.

  5. Expand the entry to review its readers, writers, and triggers.

If loading fails, rerun orbit build and orbit validate --strict, confirm the manifest uses "target": "browser", and check the Helix Problems and Output panels.

Share this article

More articles in this category:

Browse Orbit articles