← Manual

Licence and activation

Activating LMX, offline codes, device seats and what happens offline.

LMX checks its licence at launch and nowhere else. There is no background timer, so nothing will ever interrupt a running show to re-check.

The Licence menu shows who this copy is licensed to, and holds everything below.


Activating

Online

  1. First launch shows Activate LMX with an Activate with browser button.
  2. Your browser opens a one-time sign-in link carrying this machine’s device code.
  3. Sign in, or create an account.
  4. The site issues a licence for this device and hands it straight back to LMX.

Offline

For a machine with no internet at all:

  1. Licence → Enter Offline Activation Code… shows a short device code, e.g. RX78-EE9M-KG92-6M8.
  2. On any device that does have internet, sign in at lmxlighting.com/offline-key and enter that device code.
  3. Copy the long licence code it gives you.
  4. Paste it into the offline dialog on the LMX machine and click Activate.

An offline-activated machine never stores an account token - deliberately, so a genuinely air-gapped desk never needs to phone home. It also means it cannot re-check itself silently later; it keeps using the offline code until someone signs in on that machine directly.


What is on disk

File (under ~/.lmx/)Holds
device_id.jsonThis machine’s permanent random ID, and its licence history
license.jsonThe current signed licence code
auth.jsonAccount token and profile (absent on offline-activated machines)

The device ID is 8 random bytes generated on first run - not a hardware fingerprint. It never changes on its own. Deleting it makes the machine look brand new to the server, and the licence issued to the old ID no longer matches.


Running offline

A machine runs on its last confirmed licence for a while before LMX insists on reconfirming. Defaults:

SettingDefault
Machines allowed1
Offline limit30 days
Warning window10 days before the limit
Swap cooldown7 days
  • Days 0–19 - launches silently.
  • Days 20–29 - a dismissible heads-up: “LMX hasn’t confirmed your licence online in N days.” The app opens normally.
  • Day 30+ - the cached licence can no longer be trusted, and you get the activation flow.

A server that cannot be reached is treated as unreachable, not invalid: LMX falls back to the signed code on disk and evaluates it offline. A network hiccup never locks anyone out.


The one-time grace pass

The first licence problem of any kind - offline limit lapsed, licence expired, account rejected, corrupt licence file, machine limit reached - still lets the app launch, with a Continue anyway option. Any subsequent problem while that flag is set is a hard block, offering only Enter offline code, Try online now, or quit.

The flag clears the next time the licence is confirmed successfully, so it is “one free pass since things were last good”, not one per lifetime.

Grace is only offered to a device that has actually held a verified licence at some point. A brand-new install gets a hard block instead.


Moving to another machine

There is no separate transfer step - it happens through the machine limit. Activating a second machine while at the limit offers to swap: the least-recently-used device is deactivated and the new one licensed in the same step.

The old machine is not notified live. It keeps running on its cached licence until either its offline window runs out or it is relaunched and its own startup check finds the slot has moved.

To free a slot deliberately:

  • Licence → Deactivate This Device… clears this machine’s local sign-in. It does not force an immediate re-activation: the stored licence is untouched and the app keeps running under its offline window until the next restart.
  • lmxlighting.com/licences lists every active device with a Deactivate button. This is the authoritative one - it is what frees the machine-limit slot.

Swap cooldown: freeing a slot and then registering a genuinely new device starts a 7-day cooldown, during which another new device is turned away with the date it will be allowed. Re-activating a machine the account has seen before is unaffected. It exists to stop one licence being bounced around many machines.


Expiry

Every licence carries an expiry field; current beta licences have none set, so they do not expire. Where an expiry is set, it is baked into the signed code - so an offline machine can tell an expired licence with no internet at all - and is treated as a definite answer rather than “we could not confirm it”.


See also

Troubleshooting

Related topics