Before you start
You need a shell on the TV: a rooted TV with SSH from the Homebrew Channel (see SSH into a rooted LG TV), or Developer Mode. Every command below uses -n 1 to wait for one reply and -f to print it formatted. Methods marked private need root.
luna://com.webos.notification/createToast Creates a toast notification.
$ luna-send -n 1 -f luna://com.webos.notification/createToast '{"message":"Hello from luna-send"}'luna://com.webos.notification/createAlert Creates a system alert notification.
$ luna-send -n 1 -f luna://com.webos.notification/createAlert '{"message":"Dinner is ready","buttons":[{"label":"OK"}]}'luna://com.webos.applicationManager/getForegroundAppInfo Get (or subscribe to) the foreground app
$ luna-send -n 1 -f luna://com.webos.applicationManager/getForegroundAppInfo '{}'luna://com.webos.applicationManager/close Close an app by id (SSAP)
$ luna-send -n 1 -f luna://com.webos.applicationManager/close '{"id":"com.webos.app.browser"}'luna://com.webos.audio/setMuted Mutes or unmutes the volume.
$ luna-send -n 1 -f luna://com.webos.audio/setMuted '{"muted":true}'luna://com.webos.audio/volumeUp Increases the volume by 1.
$ luna-send -n 1 -f luna://com.webos.audio/volumeUp '{}'luna://com.webos.audio/setVolume Sets volume
$ luna-send -n 1 -f luna://com.webos.audio/setVolume '{"volume":15}'luna://com.webos.service.tvpower/power/turnOffScreen Blank the panel (screen off) while keeping the TV powered
$ luna-send -n 1 -f luna://com.webos.service.tvpower/power/turnOffScreen '{}'luna://com.webos.service.tvpower/power/turnOnScreen Unblank the panel
$ luna-send -n 1 -f luna://com.webos.service.tvpower/power/turnOnScreen '{}'luna://com.webos.service.tvpower/power/getPowerState Get (or subscribe to) TV power state
$ luna-send -n 1 -f luna://com.webos.service.tvpower/power/getPowerState '{}'luna://com.webos.service.tv.systemproperty/getSystemInfo Retrieves system information by keys: boardType, firmwareVersion, modelName, sdkVersion, UHD, _3d.
$ luna-send -n 1 -f luna://com.webos.service.tv.systemproperty/getSystemInfo '{"keys":["modelName","firmwareVersion","sdkVersion"]}'luna://com.webos.service.update/getCurrentSWInformation Returns current software/firmware info
$ luna-send -n 1 -f luna://com.webos.service.update/getCurrentSWInformation '{}'luna://com.webos.service.connectionmanager/getStatus Provides the current status of Wi-Fi and wired network connections on the system.
$ luna-send -n 1 -f luna://com.webos.service.connectionmanager/getStatus '{}'luna://com.webos.settingsservice/getSystemSettings Retrieves system setting values by key (localeInfo, country, smartServiceCountryCode2, audioGuidance, caption* keys).
$ luna-send -n 1 -f luna://com.webos.settingsservice/getSystemSettings '{"category":"picture","keys":["pictureMode"]}'luna://com.webos.service.eim/getAllInputStatus Lists all inputs (HDMI 1-4 with labels, CEC sub-devices, ARC) with connection state
$ luna-send -n 1 -f luna://com.webos.service.eim/getAllInputStatus '{}'luna://com.palm.systemservice/time/getSystemTime Returns the system time; subscribable for timezone or >5 min time changes.
$ luna-send -n 1 -f luna://com.palm.systemservice/time/getSystemTime '{}'Find more
These are a handful of 8,125. Search the full catalog, or browse by category. Methods that support subscriptions keep reporting changes if you add "subscribe": true and drop -n 1.