The public bus operates on channel -9999999, and is received by a wide range of Nanite Systems products, including ARES, Companion controllers, and Clockwork systems. To some extent it is also known to be parsed by third-party platforms, including the Kocore KOR and Obedientia ex Machina OeM operating systems.

Commands sent over the public and private channels

The primary use of the public bus is to send system commands, and under Companion, these can also be sent under the private bus channel, which is the negative integer corresponding to the unit's serial number. For example, if the unit's serial number is 100-00-0001 then its private bus channel is -100000001. Using the private command channel is no longer recommended, as it is not supported by ARES, and may not be available when dealing with third-party systems.

System commands sent using either channel are interpreted as being from the agent that owns the sending object. The method for sending a command on behalf of another user varies by platform:

The following commands do not function over this method:

@boot and @onOnly available directly to the unit while it is powered down; on Companion, triggers start_task(SEC_POWER_SWITCH, "on", id); under ARES, invokes @power system on
start, stop, wait, disable, enable, set, randset, unset, ifeq, ifexists, evar, report, broadcastThese are Arabesque language statements only
commands starting with ! and .Cortex commands must be prefixed with relay
sayArabesque language statement equivalent to relay command; attempting to use this over public or private bus will activate the Chorus API instead
safewordOnly possible via direct command-line input

Public bus protocols

The public bus also carries a number of messages that are exclusive to it. These are specified below.

identify <response-channel>
repair start|stop|<amount>
navigate <event> (Companion only)
As the navigate system command, but the source object is regarded as the origin of the message rather than the source object's owner. This allows navigation routing system nodes to remain distinct.

The navigate command has several sub-messages not included in the command reference. They are intended to be sent by navigation nodes rather than users. These are arrive, seek <next-node-UUID>, warp <next-node-UUID>, and wait <seconds>.
sxdwm <...> (Companion only)
As the sxdwm system command, but the source object is regarded as the origin of the message rather than the owner of that object. This makes session multiplexing easier.
trigger <event> (Companion only)
Equivalent to the system command @trigger, but exempt from usual permissions checks. The activator of the event will be the object that sent the message, rather than its owner.
charge <amount>
Gives the unit a one-time burst of <amount> kilojoules of battery power. Not all units will receive charged battery power with perfect efficiency (see chassis specification settings), and larger amounts will cause overheating under ATOS. Amounts over 100 kJ require consent or they will be rejected.

If <amount> is negative, then the unit will respond with a positive charge message of the same format.
ping <response-channel>
The receiving device, if able, will send a message on <response-channel>. The message will contain the following:

<serial> <OS> <owner> <controller-model> <authority>

Under Companion, the <owner> field will usually be populated with the unit's first user that has rank 2.

If the unit's authority tag contains spaces, then <authority> will replace these characters with underscores.

Known <OS> values are as follows:

- Companion (before 8.3.0): version number only, e.g. "8.2.11"
- ATOS/CX: ATOS/<version>, e.g. "ATOS/12.1.0" (previous versions of this document incorrectly reported the format was ATOS/CX_<version>. This is only used for identification messages.)
- Companion (after 8.3.0), Clockwork, ARES, KOR, OeM: <OS>/<version>, e.g. "Companion/8.6.4", "Clockwork/8.6.3", "ARES/0.4.0", "KOR/24.03.08", "OeM/4.0".