scadable init

Create a new Scadable project.

scadable init <target> <name>
ArgumentRequiredNotes
targetyesOne of linux, esp32, rtos
nameyesProject directory name (also used as the package name)

Example

scadable init linux my-factory
cd my-factory

This creates the project at ./my-factory/ with the standard layout:

my-factory/
├── scadable.toml      # project manifest
├── fleet.toml         # gateway to devices/controllers mapping
├── storage.py         # local storage config sized for the target
├── routes.py          # cloud upload + notification routes
├── devices/           # empty, ready for scadable add device
├── controllers/       # empty, ready for scadable add controller
└── models/            # empty, ready for scadable add model

See Project Layout for what each file does.

Picking a target

The target shapes a few defaults (storage size, supported protocols) and is recorded in scadable.toml so later commands know what to compile for.

TargetWhat it sets upStatus
linuxRaspberry Pi, industrial Linux, x86 serversProduction
esp32ESP32 microcontrollersPreview
rtosCortex-M class boards on Zephyr or FreeRTOSPreview

You can switch targets later by editing scadable.toml or by passing --target to scadable verify and scadable compile.

Exit codes

CodeMeaning
0Project created
1Directory <name> already exists, or invalid target

Next steps