Skip to main content

Documentation

Command Reference

3 min readEdit on GitHub

Complete reference for all lightsctl.sh commands.

Basic Usage

bash
./lightsctl.sh <command> [arguments]

All commands can also be run via Makefile shortcuts: make <command>

Deploying Code Changes

lightsctl.sh is for operating the Pi. To deploy lights-pi source (control server, scripts, fixtures), use the deploy script directly:

bash
bash scripts/deploy.sh

This rsyncs control-server/, scripts/, and lightsctl.sh to the Pi and restarts lighting-control.service. Hard-refresh your browser afterward to clear the PWA service worker cache.

Core Commands

CommandDescription
validatePre-flight validation of config and connectivity
doctorComprehensive health check with recommendations
healthQuick status check (service, web UI, USB, resources)
test-dmxVerify ENTTEC USB and DMX output capability
backupPull QLC+ config to local storage
restore <file>Restore QLC+ config from backup

Provisioning

CommandDescription
setup-fullFull provisioning: setup then harden (recommended)
setupBase install (requires WIFI1_SSID/PSK)
hardenFirewall, watchdog, unattended upgrades
add-key [pubkey]Install SSH public key on Pi
static-ip <ip/prefix> <gw>Configure static IP address
updateRuns sudo apt update && apt upgrade on the Pi. Does NOT pull lights-pi code — use bash scripts/deploy.sh from your workstation for that.

Service Management

CommandDescription
statussystemd status for qlcplus-web.service
restartRestart qlcplus-web.service
logsLast 80 lines from service journal
logs-errorsShow only ERROR and WARN lines
tailFollow service logs live
diagnoseFull diagnostic dump

QLC+ Operations

CommandDescription
deploy-workspace <file>Upload workspace to Pi and restart
pull-workspace [output]Download current workspace from Pi
list-fixturesShow installed fixture definitions
install-fixture <file>Upload custom fixture definition
open-webOpen web UI in default browser

Network & System

CommandDescription
wifi-statusShow current SSID and IP address
wifi-add-network <ssid> <pass> [priority]Add a WiFi network
wifi-testEnd-to-end connectivity test
wifi-watchdog-installInstall auto-recovery watchdog
scanScan network for Pi devices
sshOpen interactive shell on Pi
rebootReboot the Pi
os-versionShow OS and kernel version

AI Scene Generation

CommandDescription
generate-scene <desc> [options]Generate scene from natural language
list-templatesList available scene templates
generate-from-template <name>Generate from pre-defined template

Options: --preview, --add-to-workspace, --output <file>, --style <style>, --variations <n>, --mock

Control Server

CommandDescription
control-installInstall the control server on the Pi
control-statusShow control server status
control-logsShow control server logs
control-restartRestart control server
control-uninstallRemove control server
env-syncPush local .env to Pi and restart services

MCP Server (LLM Agent Access)

CommandDescription
mcp-installInstall the MCP server on the Pi (Streamable HTTP @ :5001/mcp)
mcp-statusShow MCP server status
mcp-logsShow MCP server logs
mcp-restartRestart MCP server
mcp-uninstallRemove MCP server

See MCP-Server for the full tool/resource reference and client wiring (Claude Desktop, ChatGPT, Cursor).

Fixture Groups

CommandDescription
group-listList all fixture groups
group-create <name> <ids> [desc]Create a new group
group-delete <name>Delete a group
group-scene <name> <desc> [opts]Generate scene for a group
group-template <name> <template>Apply template to a group
group-importImport groups from QLC+ workspace
group-export [--deploy]Export groups to workspace

Was this page helpful?