Documentation Index
Fetch the complete documentation index at: https://docs.skyvexsoftware.com/llms.txt
Use this file to discover all available pages before exploring further.
Every plugin must include a plugin.json at its root. The shell reads this file to discover, validate, and register your plugin before loading any code.
Point your editor at the JSON Schema for autocomplete and inline validation:
{
"$schema": "https://cdn.skyvexsoftware.com/schemas/stratos-plugin.json"
}
Required Fields
Type: string
Unique identifier for your plugin. Used internally for routing, IPC namespacing, config storage, and CDN distribution paths.
Rules: lowercase alphanumeric and hyphens only. Must be unique across all installed plugins.
{ "id": "fleet-manager" }
name
Type: string
Display name shown in the sidebar and settings screens.
{ "name": "Fleet Manager" }
version
Type: string
Semantic version string. Must match the version in latest.json on the CDN when distributing updates.
description
Type: string
Short description of what the plugin does. Displayed in the plugin info panel.
{ "description": "Browse and book available flights across the fleet." }
type
Type: "user" | "airline"
Controls how the plugin is distributed:
"airline" — Managed by the VA admin platform. Required plugins are synced automatically to all pilots when they authenticate. The VA admin controls which version pilots receive.
"user" — Installed by individual pilots from the plugin store. Each pilot can install or remove it independently.
author
Type: PluginAuthor
| Field | Type | Description |
|---|
id | string | Unique developer slug (e.g. "my-va"). Used in CDN paths. |
name | string | Display name (e.g. "My Virtual Airline"). |
contact | string | Optional contact email. |
{
"author": {
"id": "my-va",
"name": "My Virtual Airline",
"contact": "dev@my-va.com"
}
}
icon_light and icon_dark
Type: string
Relative paths to sidebar icons — one for light theme, one for dark theme.
{
"icon_light": "icon-light.svg",
"icon_dark": "icon-dark.svg"
}
Icon requirements:
- Place files in
assets/ at the plugin root (e.g. assets/icon-light.svg)
- SVG or PNG format
- Square aspect ratio
- Both variants required — the shell switches between them based on the active theme
Background Modules
Background modules do not require any manifest configuration. The shell discovers them automatically by convention — if a background/index.js file exists in your plugin’s root directory, the shell loads it as a background service in the Electron main process. See Background Module for the module contract.
Optional Fields
availableSettings
Type: array
Declares configurable settings for your plugin. The shell renders these automatically in the Settings page. Each setting has:
| Field | Type | Description |
|---|
key | string | Unique key used to read/write the value |
name | string | Display label |
description | string | Optional help text |
type | string | Input type (see table below) |
scope | "user" | "airline" | Who can configure this setting |
default | any | Default value |
Setting types:
| Type | Rendered As | Extra Fields |
|---|
boolean | Toggle switch | default?: boolean |
text | Text input | default?, pattern?, placeholder? |
longtext | Textarea | default?, placeholder? |
number | Number input | default?, min?, max?, step? |
range | Slider | default?, min (required), max (required), step? |
list | Dropdown | default?, options (required) |
radio | Radio group | default?, options (required) |
date | Date picker | default? |
json | Monospace textarea | default? |
Scopes:
"user" — Each pilot configures their own value in Stratos Settings.
"airline" — Controlled by the VA admin platform. Read-only in the client. Use for VA-wide config like welcome messages, branding, event rules, or feature flags.
Full Example
{
"$schema": "https://cdn.skyvexsoftware.com/schemas/stratos-plugin.json",
"id": "fleet-manager",
"type": "airline",
"name": "Fleet Manager",
"version": "2.0.0",
"description": "Browse and book available flights across the fleet.",
"author": {
"id": "my-va",
"name": "My Virtual Airline",
"contact": "dev@my-va.com"
},
"icon_light": "icon-light.svg",
"icon_dark": "icon-dark.svg",
"availableSettings": [
{
"key": "welcome_message",
"name": "Welcome Message",
"description": "Custom message displayed on the dashboard",
"type": "longtext",
"scope": "airline",
"placeholder": "Enter a welcome message..."
},
{
"key": "show_map",
"name": "Show Map",
"description": "Display the flight map on the main page",
"type": "boolean",
"scope": "user",
"default": true
},
{
"key": "units",
"name": "Unit System",
"type": "list",
"scope": "user",
"default": "imperial",
"options": [
{ "value": "imperial", "label": "Imperial (ft, kts, lbs)" },
{ "value": "metric", "label": "Metric (m, km/h, kg)" }
]
}
]
}