Skip to main content

Repeater & Room Server CLI Reference

You can configure both Repeater and Room Server devices either via Serial (terminal app, PuTTY, Serial Monitor) or via the CLI screen when accessing remotely. Some commands are Serial only as noted.


Serial Only Commands​

erase​

Erases the device (factory reset). Serial only.

Warning: This is destructive!

Usage:

erase

get acl​

Shows the list of authorised nodes in the Access Control List. Serial only.

Usage:

get acl

get prv.key​

Views this node's identity (private key). Serial only.

Usage:

get prv.key

Note: set prv.key is available via serial or remote; requires reboot after setting.


log​

Prints the captured log to the serial terminal. Serial only.

Usage:

log

set freq <frequency>​

Sets the frequency in MHz. Serial only. Requires reboot to apply.

Parameters: frequency — Frequency in MHz. Default: 869.525

Usage:

set freq 927.875

stats-core​

System stats: battery, uptime, queue length, debug flags. Serial only.

Usage:

stats-core

stats-packets​

Packet counters: received, sent. Serial only.

Usage:

stats-packets

stats-radio​

Radio stats: noise floor, last RSSI/SNR, airtime, receive errors. Serial only.

Usage:

stats-radio

Commands via Serial or Remote​

(Alphabetical. For the various "set ..." commands there is also a "get ..." command unless noted.)

  • advert — Sends a flood advert.
  • advert.zerohop — Sends a zero-hop advert.

Usage:

advert
advert.zerohop

get / set adc.multiplier​

Fine-tune the battery reading (0.0–10.0). Default: 0.0 (or board-defined). Returns "Error: unsupported by this board" if not supported.

Usage:

get adc.multiplier
set adc.multiplier 1.0

get / set advert.interval​

Zero-hop advert interval in minutes (rounded to multiple of 2; range 60–240). Default: 0

Usage:

get advert.interval
set advert.interval 30

get / set af​

Deprecated as of firmware v1.15.0 — use get/set dutycycle instead.

Airtime factor (duty cycle limit), 0–9. After each transmission, the repeater enforces a silent period of approximately on-air time × value, for a long-term duty cycle of roughly 1 / (1 + value) (e.g. af = 1 → ~50%, af = 9 → ~10%). Default: 1.0

Usage:

get af
set af 1.0

get / set dutycycle​

Duty cycle percentage (1–100). Default: 50 (equivalent to airtime factor 1.0). Firmware v1.15.0+. Prefer this over deprecated af.

Examples: 100 — no limit; 50 — default; 10 — 10%; 1 — strictest EU-style limit.

Usage:

get dutycycle
set dutycycle 50

get / set agc.reset.interval​

AGC reset interval in seconds (rounded down to multiple of 4). Set to 0 to disable. Default: 0.0

Usage:

get agc.reset.interval
set agc.reset.interval 60

get / set allow.read.only​

(Room server) When on, blank-password login is allowed but cannot Post (read-only). Default: off

Usage:

get allow.read.only
set allow.read.only on

get / set bridge.baud​

Bridge baud rate (RS-232 only). Default: 115200 Rates: 9600, 19200, 38400, 57600, 115200

Usage:

get bridge.baud
set bridge.baud 9600

get / set bridge.channel​

Bridge channel (ESP-Now only). Channel number 1–14.

Usage:

get bridge.channel
set bridge.channel 1

get / set bridge.delay​

Delay in ms for packets routed through the bridge (0–10000). Default: 500

Usage:

get bridge.delay
set bridge.delay 100

get / set bridge.enabled​

Enable or disable the bridge. Default: off

Usage:

get bridge.enabled
set bridge.enabled on

get / set bridge.secret​

ESP-Now bridge secret (stored string; max length fits the preference buffer, typically up to 15 characters plus terminator). Default: Varies by board.

Usage:

get bridge.secret
set bridge.secret mysecret

get / set bridge.source​

Which packets are sent to the bridge interface. get returns logRx (received) or logTx (transmitted). set uses rx for received traffic or tx for transmitted (default). Default: logTx

Usage:

get bridge.source
set bridge.source rx
set bridge.source tx

get bridge.type​

(When bridge support is compiled in) Reports the bridge build: rs232, espnow, or none.

Usage:

get bridge.type

board​

Shows the hardware/board name.

Usage:

board

get bootloader.ver​

Bootloader version string. nRF52 only; other platforms return an unsupported error.

Usage:

get bootloader.ver

clear stats​

Clears stats counters.

Usage:

clear stats

clkreboot​

Resets the clock and reboots the node (you may see "Timeout"—this is normal).

Usage:

clkreboot

poweroff / shutdown​

Powers off the device via the board implementation (if supported). Does not return on success.

Usage:

poweroff
shutdown

clock​

Displays current time in UTC.

Usage:

clock

clock sync​

Syncs the clock with the remote device (e.g. companion / T-Deck).

Usage:

clock sync

get / set direct.txdelay​

Retransmit delay factor for direct traffic (0–2). Default: 0.2

Usage:

get direct.txdelay
set direct.txdelay 1.2

get / set flood.advert.interval​

Flood advert interval in hours (3–168). Default: 12 (Repeater), 0 (Sensor)

Usage:

get flood.advert.interval
set flood.advert.interval 24

get / set flood.max​

Maximum flood hop count (0–64). Default: 64

Usage:

get flood.max
set flood.max 5

get / set flood.max.advert​

Maximum flood hop count (0–64) for advert packets. Default: 8

Usage:

get flood.max.advert
set flood.max.advert 8

get / set flood.max.unscoped​

Maximum flood hop count (0–64) for packets without a scope (no region set). Default: 64 (0xFF means unset and tracks flood.max until set).

An alternative to region denyf *: a lower value such as 3 allows local unscoped messages while limiting noisy neighbors flooding a local region.

Usage:

get flood.max.unscoped
set flood.max.unscoped 3

get freq​

Views the current frequency in MHz. (set freq is Serial only—see Serial Only Commands.)

Usage:

get freq

get / set guest.password​

Guest password. Set by build flag: ROOM_PASSWORD (Room Server only). Default: <blank>

Usage:

get guest.password
set guest.password guest123

get / set int.thresh​

Local interference threshold. Default: 0.0

Usage:

get int.thresh
set int.thresh 14

get / set lat​

Latitude in degrees. Set by build flag: ADVERT_LAT. Default: 0

Usage:

get lat
set lat 37.7749

log erase​

Erases the captured log from node storage.

Usage:

log erase

log start​

Begins capture of RX log to node storage.

Usage:

log start

log stop​

Ends capture of RX log to node storage.

Usage:

log stop

get / set lon​

Longitude in degrees. Set by build flag: ADVERT_LON. Default: 0

Usage:

get lon
set lon -122.4194

get / set loop.detect​

Loop detection for flood traffic (repeaters). Default: off. Firmware 1.14+.

Parameters: state — off (no detection), minimal, moderate, or strict. The repeater drops packets when its own path ID/hash appears too often in the path (thresholds depend on path hash size and mode). Use if a bad or custom firmware node is causing packet storms.

Usage:

get loop.detect
set loop.detect minimal

get / set multi.acks​

Multi-Acks support: 0 disable, 1 enable. Default: 0

Usage:

get multi.acks
set multi.acks 1

get / set name​

Node name. Set by build flag: ADVERT_NAME. Max length: 24 bytes if location set, 32 otherwise. Emoji/unicode may use more than one byte.

Usage:

get name
set name MyRepeater

neighbor.remove <pubkey_prefix>​

(Repeater only) Removes neighbor entries whose public key starts with the given hex prefix. Parameters: pubkey_prefix — Hex public key or prefix. With an empty prefix (nothing after neighbor.remove ), all neighbors are cleared.

Usage:

neighbor.remove a1

To clear all neighbors, send neighbor.remove with no hex digits after the trailing space (empty prefix).


neighbors​

(Repeater only) Lists nearby neighbors. Output limited to 8 most recent adverts. Each line: {pubkey-prefix}:{timestamp}:{snr*4}.

Usage:

neighbors

discover.neighbors​

(Repeater only) Discovers zero-hop neighbors.

Usage:

discover.neighbors

get / set owner.info​

Owner information text. Default: <blank>. | is translated to newlines. Requires firmware 1.12+.

Usage:

get owner.info
set owner.info Contact info

get / set path.hash.mode​

Path hash size used in this repeater’s own adverts (0–2). Default: 0. Firmware 1.14+. Does not change which path sizes the repeater forwards (1.14+ forwards 1-, 2-, and 3-byte path hashes). Value 3 is reserved—do not use.

Parameters: value — 0 (1-byte hash, up to 64 flood hops), 1 (2-byte, up to 32 flood hops), 2 (3-byte, up to 21 flood hops). Older firmware may not propagate multibyte path adverts; coordinate mesh upgrades before raising this.

Usage:

get path.hash.mode
set path.hash.mode 0

password <new_password>​

Changes the admin password. Set by build flag: ADMIN_PASSWORD. Default: password. Reply echoes the updated password. Any node using this password is added to the admin ACL.

Usage:

password mypassword

get public.key​

Shows this node’s public key (hex).

Usage:

get public.key

get pwrmgt.bootmv​

Boot voltage in millivolts. nRF52 with power management; otherwise returns an error.

Usage:

get pwrmgt.bootmv

get pwrmgt.bootreason​

Reset and shutdown reason strings. nRF52 with power management; otherwise returns an error.

Usage:

get pwrmgt.bootreason

get pwrmgt.source​

Current power source: external or battery. nRF52 with power management; otherwise returns an error.

Usage:

get pwrmgt.source

get pwrmgt.support​

Whether the board reports power management: supported or unsupported.

Usage:

get pwrmgt.support

get / set radio​

Radio parameters: get radio or set radio <freq>,<bw>,<sf>,<cr>. Parameters: freq (MHz), bw (kHz), sf (5–12), cr (5–8). Set by build flag: LORA_FREQ, LORA_BW, LORA_SF, LORA_CR. Default: 869.525,250,11,5. Requires reboot to apply.

Usage:

get radio
set radio 915.8,62.5,7,5

get / set radio.rxgain​

(SX12xx and LR1110, firmware v1.14.1+) RX boosted gain: on or off. Default: on.

Note: If you upgraded to 1.14.1 without erasing flash, this setting may be off due to a preference migration quirk.

Usage:

get radio.rxgain
set radio.rxgain on

reboot​

Reboots the node (you may see "Timeout"—this is normal).

Usage:

reboot

get / set repeat​

Repeat flag: enable/disable repeater role. Default: on

Usage:

get repeat
set repeat on

get role​

Shows the firmware’s configured role string for this node.

Usage:

get role

get / set rxdelay​

[Experimental] Processing delay base for received traffic (0–20). Default: 0.0

Usage:

get rxdelay
set rxdelay 2

sensor get <key>​

(When sensor support is compiled in) Views the value of a sensor. Parameters: key — Sensor setting name.

Usage:

sensor get temperature

sensor list [start]​

(When sensor support is compiled in) Lists sensors. Parameters: start — Optional starting index (default 0). Output format: <var_name>=<value>\n

Usage:

sensor list

sensor set <key> <value>​

(When sensor support is compiled in) Sets a sensor value. Parameters: key, value

Usage:

sensor set key value

setperm <pubkey> <permissions>​

Add, update or remove companion permissions. Parameters: pubkey — Companion public key; permissions — 0 Guest, 1 Read-only, 2 Read-write, 3 Admin. Omitting permissions removes the entry.

Usage:

setperm a1b2c3d4 3

set prv.key <private_key>​

Sets this node's identity (private key). Parameters: private_key — 64 hex characters. Requires reboot after setting.

Usage:

set prv.key <hex>

start ota​

Starts an Over-The-Air (OTA) firmware update.

Usage:

start ota

tempradio <freq>,<bw>,<sf>,<cr>,<timeout_mins>​

Temporary radio parameters for the given minutes; not saved (clears on reboot). Parameters: freq (MHz 300–2500), bw (kHz 7.8–500), sf (5–12), cr (5–8), timeout_mins > 0.

Usage:

tempradio 915.8,62.5,7,5,10

time <epoch_seconds>​

Sets the time to a specific timestamp. Parameters: epoch_seconds — Unix epoch time.

Usage:

time 1738242833

get / set tx​

Transmit power in dBm (1–22). Set by build flag: LORA_TX_POWER. Controls LoRa chip only; some nodes have an extra PA. Refer to node manual; too high may violate regulations.

Usage:

get tx
set tx 20

get / set txdelay​

Retransmit delay factor for flood traffic (0–2). Default: 0.5

Usage:

get txdelay
set txdelay 1.5

ver​

Returns the firmware version (and build date).

Usage:

ver

Region Management​

(v1.10+. Alphabetical.)

region​

Dumps all defined regions and flood permissions. Serial only for firmware older than 1.12.0.

Usage:

region

region default / region default {name|<null>}​

Views or sets the default scope region for this node. Parameters: name — Region name, or <null> to reset/clear.

Usage:

region default
region default MyRegion
region default <null>

region def <token> [<token> ...]​

Defines a region hierarchy on a single line. A logical cursor starts at the wildcard *.

Tokens:

  • name — Create name as a child of the current cursor (like region put name). Cursor moves to name.
  • name|jump (or name,jump) — Create name as a child of the current cursor, then move the cursor to jump (must already exist). Use this to pop back up and start another branch.

Each created region defaults to flood-allowed. Reply is the resulting tree (same format as bare region); review before region save. On error (Err - ...), regions placed before the failure remain. Does not clear the existing tree — existing names get their parent updated. Serial line limit is 160 characters; for larger trees, split across commands (cursor resets to * between commands).

Usage:

region def a b c d e
region save

Branched tree (a → b → c/d, and b → e → f):

region def a b c d|b e f
region save

Flat list (each region a child of *):

region def a|* b|* c|* d|* e|* f
region save

region allowf <name>​

Allows a region. Parameters: name — Region name or * for wildcard. On wildcard *, allows packets without region transport codes.

Usage:

region allowf *

region denyf <name>​

Blocks a region. Parameters: name — Region name or * for wildcard. On wildcard *, drops packets without region transport codes. Use with caution.

Usage:

region denyf MyRegion

region get <name>​

Shows information for a region. Parameters: name — Region name or * for wildcard.

Usage:

region get *

region home / region home <name>​

Views or sets the home region for this node. Parameters: name — Region name.

Usage:

region home
region home MyRegion

region list <filter>​

Lists regions. Parameters: filter — allowed | denied. Serial only. Requires firmware 1.12+.

Usage:

region list allowed

region load / region load <name> [flood_flag]​

Bulk-load region lists. Parameters: name — Region name (* = wildcard); flood_flag — Optional F to allow flooding. Indentation defines parent-child relationships (max 8 levels). region load with no name is interactive and does not work remotely.

Usage:

region load
* F
#NorthAmerica
#USA
<blank line to end>

region put <name> [parent_name]​

Creates or updates a region. Parameters: name — Region name; parent_name — Parent region (optional; defaults to wildcard).

Usage:

region put MyRegion *

region remove <name>​

Removes a region. Parameters: name — Region name. All child regions must be removed first.

Usage:

region remove MyRegion

region save​

Saves any region changes made since reboot.

Usage:

region save

Region Examples​

Example 1: Named public region with F flag

region load
#Europe F
<blank line to end region load>
region save

Creates #Europe with flooding enabled.

Example 2: Wildcard with F flag

region load
* F
<blank line to end region load>
region save

Wildcard * with flooding; applies to packets without transport codes.

Example 3: Wildcard without F flag

region load
*
<blank line to end region load>
region save

Wildcard exists but does not affect packet distribution.

Example 4: Nested regions with F flag

region load
#Europe F
#UK
#London
#Manchester
#France
#Paris
#Lyon
<blank line to end region load>
region save

Nested children inherit parent's flooding.

Example 5: Wildcard with nested public regions

region load
* F
#NorthAmerica
#USA
#NewYork
#California
#Canada
#Ontario
#Quebec
<blank line to end region load>
region save

Global flooding with regional hierarchy.


GPS Management​

(When GPS support is compiled in. Alphabetical.)

gps / gps <state>​

Views or changes GPS state. Parameters: state — on | off. Default: off.

Output: off when GPS hardware is disabled; when enabled: on, {active|deactivated}, {fix|no fix}, {sat count} sats.

Usage:

gps
gps on

gps advert / gps advert <policy>​

Views or changes GPS advert policy. Parameters: policy — none | share | prefs (none: don't include location; share: from SensorManager; prefs: node lat/lon). Default: prefs

Usage:

gps advert
gps advert share

gps setloc​

Sets this node's location from GPS coordinates and saves to preferences.

Usage:

gps setloc

gps sync​

Syncs this node's clock with GPS time.

Usage:

gps sync

Power Management​

(Repeater only. Alphabetical.)

powersaving / powersaving <state>​

Views or changes the power saving flag. Parameters: state — on | off. Default: off. When enabled, device enters sleep between radio transmissions.

Usage:

powersaving
powersaving on

Reference​

This reference is based on MeshCore CLI Commands.