Skip to content

Extensions

Extensions add new functionality to ScriptO Studio through the JS Configurator pattern - JavaScript classes that provide custom UI panels and device-side Python libraries.

Extensions in ScriptO Studio

What are Extensions?

Extensions are bundled JavaScript modules that integrate into ScriptO Studio to:

  • Add new sidebar menu tabs with custom UI
  • Deploy device-side Python libraries during installation
  • Communicate with hardware using the M2M (machine-to-machine) pattern
  • Provide specialized tools for specific use cases

Extension Structure

Extensions use a modular source structure:

MyExtension/
├── extension.json      # Metadata and configuration
├── src/
│   └── index.js       # Entry point (exports class)
└── device/             # Device-side files (optional)
    └── lib/

These are bundled into a single .bundle.js file for distribution.

Built-in Extensions

Extension Description
DBE Battery emulator with MQTT integration
OpenInverter Motor controller configuration
DTC Explorer Diagnostic Trouble Code viewer
OVMS Open Vehicle Monitoring System interface

Extensions vs ScriptOs

Both Extensions and ScriptOs expand ScriptO Studio functionality, but they serve different purposes:

Aspect Extensions ScriptOs
Language JavaScript (+ Python libs) Python only
UI Location Sidebar tabs Run from ScriptOs panel
Persistence Always loaded Run on-demand
Use Case Complex tools with dedicated UI Quick utilities, demos, automation
Install Via ScriptoHub, deploys device libs Just run from ScriptoHub

Choose Extensions when you need: - Permanent sidebar presence - Complex multi-panel interfaces - Bundled device-side libraries

Choose ScriptOs when you need: - Quick one-off scripts - Simple UI plugins (iframe modals) - Hardware testing/diagnostics

Getting Started