Loxone Config-as-Code CLI. All commands operate on local .Loxone XML config files — no live Miniserver connection required for editing, simulation, or validation.
Global flags: --json (shorthand for --output json), -o/--output json|csv|table, -q/--quiet, --no-color (also respects NO_COLOR env var), --no-header, -v/--verbose (request logging, -vv for request+response bodies), --dry-run, --non-interactive (fail instead of prompting; implied by --json), --trace-id <ID> (correlation ID for agent tracing), --ctx <name> (use a specific context)
lox setup set --host https://192.168.1.100 --user admin --pass secret
lox setup set --serial YOUR_SERIAL # enables correct TLS hostname (DynDNS)
lox setup set --verify-ssl # enable cert verification
lox setup set --no-verify-ssl # disable (default, self-signed Miniserver certs)
lox setup show # show config (password redacted)
lox setup show -o json # JSON outputAll config fields also support env vars: LOX_HOST, LOX_USER, LOX_PASS, LOX_SERIAL.
lox config describe file.Loxone # human-readable config summary by room
lox config describe file.Loxone --room "Küche" # describe a single room only
lox config describe file.Loxone -o json # JSON output
lox config wires file.Loxone -o json # resolved wire graph for block connectors
lox config wires --file file.Loxone -o json # same, with explicit file flag
lox config wires file.Loxone --room "Küche" -o json # wires targeting blocks in one room
lox config devices file.Loxone -o json # physical devices with bus identity + connectors
lox config devices file.Loxone --room "Küche" -o json # devices detected in one room
lox config devices file.Loxone --summary -o json # print device count summary to stderr
lox config rooms file.Loxone # list rooms with item counts
lox config controls file.Loxone # list controls with type/room/category
lox config controls file.Loxone -t WeatherData # filter by type
lox config controls file.Loxone -r "Zentral" # filter by room
lox config controls file.Loxone --limit 10 # limit number of results
lox config users file.Loxone # list user accounts
lox config devices file.Loxone # list hardware devices (Tree/Air/Network)
lox config devices file.Loxone --ports # show I/O ports with used/free status
lox config get-params file.Loxone "Kitchen Light" # show all params (alias: lox config get)
lox config stats file.Loxone # comprehensive config statistics
lox config autopilot-list file.Loxone # list automation/autopilot rules
lox config mode-list file.Loxone # list operating modeslox config add --type light --title "Kitchen Light" --room "Kitchen" file.Loxone
lox config add --type switch --title "Main Switch" file.Loxone
lox config add --type timer --title "Night Timer" --page "Timers" file.Loxone
lox config add --type mqtt-sub --title "Temp Feed" --parent "MQTT Gateway" --topic "home/temp" file.LoxoneAvailable --type values: light, switch, presence, alarm-clock, memory, timer, mqtt-sub, mqtt-pub, calendar, autopilot.
Options: --room <ROOM>, --category <CATEGORY>, --page <PAGE>, --parent <PARENT>, --topic <TOPIC>, --save-as <FILE>.
lox config set-param file.Loxone "Kitchen Light" FadingTime 2.0 # alias: lox config set
lox config set-param file.Loxone "Night Timer" Duration 300Arguments: <FILE> <SELECTOR> <PARAM> <VALUE>. Selector is a block title or "uuid:...".
lox config wire-connector file.Loxone "Light.I1" <source-uuid> # alias: lox config wire
lox config wire-connector file.Loxone "Both Sensors.I2" <sensor-q-uuid> --save-as out.LoxoneArguments: <FILE> <TARGET> <SOURCE_UUID>. Target format: "BlockTitle.ConnectorKey".
lox config device-bind file.Loxone "Kitchen Light" AQ1 --device "RGBW Dimmer" # alias: lox config bindArguments: <FILE> <CONTROL> <OUTPUT_CONN>. Required: --device <DEVICE>.
lox config template file.Loxone bedroom --room "DG Schlafzimmer"
lox config template file.Loxone bathroom --room "OG Bad" --save-as out.LoxoneTemplates: standard, bathroom, hallway, bedroom, kitchen, outdoor.
lox config timer-schedule file.Loxone "Night Timer" "20:00-24:00"
lox config timer-schedule file.Loxone "Night Timer" "06:00-08:00" --value 0.5Arguments: <FILE> <SELECTOR> <RANGE>. Range format: HH:MM-HH:MM. --value sets the output during active period (default: 1).
lox config add-virtual-in file.Loxone "Sensor Feed" # alias: lox config add-vi
lox config add-virtual-in file.Loxone "Analog Sensor" --analog
lox config add-virtual-in file.Loxone "Custom Input" --parent "VirtualInCaption"lox config room <SUBCOMMAND> ... # manage rooms (add/rename/move)
lox config control <SUBCOMMAND> ... # manage controls
lox config mqtt <SUBCOMMAND> ... # manage MQTT plugin configurationlox config user-add file.Loxone ... # add a user account
lox config user-remove file.Loxone ... # remove a user accountlox config autopilot-add file.Loxone ... # add an autopilot rule
lox config calendar-add file.Loxone ... # add a calendar/schedule elementlox config layout file.Loxone # ELK-based auto-layout for all pages
lox config layout file.Loxone --page "Lighting" # layout a specific pagelox config xml <SUBCOMMAND> ... # power-user XML operationslox config validate file.Loxone # check UUIDs, wiring, orphans
lox config check file.Loxone # check blocks for unset params, dead-end wiring
lox config check file.Loxone --selector "Kitchen Light" # check a specific block only
lox config scan file.Loxone # scan for PII, secrets, and credentials
lox config scan file.Loxone --strict # exit with error code if PII found (for CI)
lox config report file.Loxone # anonymised diagnostic report (scan + stats + check)lox config download # download latest config ZIP via FTP
lox config download --extract # download + decompress to .Loxone XML
lox config download --save-as config.zip # custom output filename
lox config ls # list all configs on the Miniserver
lox config extract config.zip # decompress LoxCC → .Loxone XML
lox config extract config.zip --save-as out.Loxone
lox config compress file.Loxone # compress .Loxone XML → LoxCC (with CRC32)
lox config upload config.zip --force # upload to Miniserver (dangerous)
lox config diff old.Loxone new.Loxone # compare two configs (accepts .zip or .Loxone)
lox config patch ... # download, patch, recompress, and upload in one step
lox config push file.Loxone --force # recompress + upload edited .Loxone XML
lox config push file.Loxone --reboot --force # ...and reboot Miniserver after upload
lox config push-http ... # upload config ZIP via HTTP POST (fsput)
lox config snapshot file.Loxone # save a snapshot for evaluation (before/after)lox config init ~/loxone-config # initialize a git repo for config tracking
lox config pull # download, decompress, diff & git-commit
lox config pull --quiet # cron-friendly (no output unless error)
lox config log # show config change history
lox config log -c 5 # last 5 entries
lox config restore abc123 --force # restore config from git history & uploadThe pull workflow: FTP download → LoxCC decompress → semantic diff → git commit with meaningful message. Multi-Miniserver: each serial gets its own subdirectory in the repo.
lox sim check file.Loxone # parse config and report block/connector counts
lox sim run file.Loxone --sim '{"inputs":{"Sensor.Q":1},"expect":{"Light.AQ":1}}'
lox sim run file.Loxone --sim-file test.json # run sim spec(s) from a JSON file
lox sim step file.Loxone --sim '{"inputs":{"Sensor.Q":1}}'
lox sim step file.Loxone --sim-file test.json # step-by-step showing signal changes per tick
lox sim dump file.Loxone # dump full graph (blocks, connectors, wires)
lox sim dump file.Loxone --sim '...' # apply sim spec before dumping
lox sim dump file.Loxone -o json # JSON output--sim accepts inline JSON (single object or array). --sim-file loads from a file.
lox blocks search "timed light" # search by intent or keyword
lox blocks search "blind wind" -o json # JSON output
lox blocks info StairwayLS # full details: inputs, outputs, parameters
lox blocks info And -o json
lox blocks list # list all block types
lox blocks list --category logic # filter by categoryCategories: logic, math, compare, timer, schedule, state, lighting, shading, hvac, security, energy, io, button, misc.
Manage multiple Miniserver connections, similar to kubectl config use-context:
lox ctx add home --host https://192.168.1.100 --user admin --pass secret
lox ctx add office --host https://10.0.0.50 --user admin --pass secret --serial SERIAL
lox ctx use home # switch active context
lox ctx list # list contexts (* = active)
lox ctx current # show active context
lox ctx remove office # remove a context
lox ctx rename home house # rename a contextlox --ctx office config download # run against 'office' without switchinglox ctx init # create .lox/ in current directory
lox ctx init --host ... --user ... --pass ... # with connection detailsProject-local .lox/config.yaml is auto-discovered by walking up from cwd (like .git). Secrets are excluded via .lox/.gitignore.
lox ctx migrate # convert flat config to 'default' contextLOX_CONFIGenv var (absolute priority)- Project-local
.lox/config.yaml(walk up from cwd) - Global
~/.lox/config.yaml(flat or multi-context) --ctxflag overrides context selection within global config
lox cache info # show cache age and path
lox cache check # check if cache is current (without full download)
lox cache refresh # force re-fetch
lox cache clear # delete local cacheMore secure than Basic Auth. Token is valid ~20 days.
lox token fetch # fetch & save token (RSA/AES key exchange)
lox token info # show token status
lox token check # verify token on Miniserver
lox token refresh # extend validity
lox token revoke # revoke on Miniserver
lox token clear # delete local token filelox telemetry status # show current telemetry setting
lox telemetry enable # opt in to anonymous usage analytics
lox telemetry disable # opt outlox completions bash # generate bash completions
lox completions zsh # generate zsh completions
lox completions fish # generate fish completions
lox completions --install # install to standard location for your shelllox schema # list all commands with metadata
lox schema config # schema for a specific command group
lox schema -o json # JSON output for programmatic useReturns command structure, arguments, subcommands, and valid parameters. Designed for AI agent discovery.