Skip to main content

Companion Module Developers' Guide

This section describes everything you need to know to develop your own modules for Companion. Below is an outline of the top-level pages and folders in this section. For pages, the main headings inside each file are listed as bulleted lines. Folders are shown preceded by '> ', and the immediate contents of that folder are shown below it using "└─ " to indicate pages (or subfolders) inside that folder.

Getting Started with Modules

Setting up a Dev Folder

Module Development 101

Debugging Modules

> Module Setup

⠀⠀├── Essential Files
⠀⠀├── manifest.json file
⠀⠀├── Code Quality Configs
⠀⠀├── TypeScript Config
⠀⠀└── Unit Testing Config

> Connections: Basics

⠀⠀├── Overview
⠀⠀├── Logging
⠀⠀├── Connecting to the device
⠀⠀├── User-Config Definitions
⠀⠀├── Action Definitions
⠀⠀├── Feedback Definitions
⠀⠀├── Input Fields (Options)
⠀⠀├── Variables
⠀⠀├── Presets (API 2.x)
⠀⠀├── Presets (API 1.x)
⠀⠀└── Upgrade Scripts

> Connections: Advanced

⠀⠀├── Bonjour Device Discovery
⠀⠀├── OAuth Authentication
⠀⠀├── HTTP Handler
⠀⠀├── "Learn" function
⠀⠀├── Migrating to Boolean Feedbacks
⠀⠀├── Runtime Permissions
⠀⠀└── Setting Custom Variables

> Module Release and Maintenance

⠀⠀├── @companion-module Libraries
⠀⠀├── Package a module
⠀⠀├── Release a module
⠀⠀├── Rename a module
⠀⠀├── Updating Node.JS
⠀⠀├── Custom @companion-module/base
⠀⠀└── Upgrading from Companion 2.x

> API Changelog

⠀⠀├── API 2.0 (Companion 4.3+)
⠀⠀├── API 1.14 (Companion 4.2+)
⠀⠀├── API 1.13 (Companion 4.1+)
⠀⠀├── API 1.12 (Companion 4.0+)
⠀⠀├── API 1.11 (Companion 3.5+)
⠀⠀├── API 1.10 (Companion 3.4+)
⠀⠀├── API 1.8 (Companion 3.3+)
⠀⠀├── API 1.7 (Companion 3.2+)
⠀⠀└── API 1.5 (Companion 3.1+)