The Meshtastic Command Line Interface (CLI) is a comprehensive way to configure a Meshtastic node. Here are all of the CLI commands:
Help & Version Flags
- -h / –help Shows the full help/usage message (what you’re looking at now).
- –version Displays the version number of the Meshtastic Python CLI tool and exits.
- –support Outputs detailed diagnostic/support information (useful when asking for help on Discord/GitHub).
Connection Options (choose one; serial is default)
- –port [PORT] (also –serial, -s) Specifies the serial port (e.g., COM12, /dev/ttyUSB0) to connect to the device.
- –host [HOST] (also –tcp, -t) Connects to a Meshtastic device over TCP/IP (e.g., hostname or IP like 192.168.1.100).
- –ble [BLE] (also -b) Connects to a device via Bluetooth Low Energy using name or MAC address.
- –ble-scan Scans for nearby discoverable Meshtastic BLE devices and lists their names & addresses.
Targeting / Destination
- –dest !xxxxxxxx Specifies the target node ID (e.g., !fe1932db) for remote administration commands (traceroute, sendtext to a specific node, etc.).
- –ch-index INDEX Selects which channel (0 = primary) to operate on for channel-related commands (–ch-set, –ch-add, etc.).
Configuration Management
- –configure CONFIGURE Applies a complete configuration from a YAML file (usually one exported with –export-config).
- –export-config Exports the current full device configuration as YAML (pipe to file: > config.yaml).
- –get FIELD Retrieves the value of a specific configuration field (e.g., –get lora.region). Use an invalid field like all to list everything.
- –set FIELD VALUE Sets a configuration value (e.g., –set lora.region US, –set power.wait_bluetooth_secs 28800). Chain multiple for batch changes.
- –begin-edit / –commit-edit Starts/commits a multi-step configuration edit session (rarely used directly; mostly for advanced scripting).
Canned Messages & Ringtone (plugins)
- –get-canned-message Shows the current list of canned (quick-reply) messages.
- –set-canned-message SET_CANNED_MESSAGE Sets the canned messages (pipe-separated, e.g., “Ack|On my way|ETA 30min”).
- –get-ringtone Displays the current custom ringtone string.
- –set-ringtone RINGTONE Sets a custom notification ringtone melody (specific encoded format, max ~230 chars).
Quick LoRa Modem Preset Shortcuts (for primary channel)
These instantly apply common LoRa presets (spreading factor + bandwidth + coding rate):
- –ch-vlongslow → Very Long Slow (max range, very slow data rate)
- –ch-longslow → Long Slow
- –ch-longfast → Long Fast (good balance)
- –ch-medslow → Medium Slow
- –ch-medfast → Medium Fast
- –ch-shortslow → Short Slow
- –ch-shortfast → Short Fast (fastest, shortest range)
Owner / Position / Channel Quick Settings
- –set-owner SET_OWNER Sets the long name/owner name of the device (shown in mesh).
- –set-owner-short SET_OWNER_SHORT Sets the short name (max 4 chars, used for compact display).
- –set-ham SET_HAM Configures for licensed amateur radio use: sets callsign as name, disables encryption on primary channel, marks as licensed.
- –seturl SETURL Imports an entire channel + LoRa config from a Meshtastic share URL.
- –setalt SETALT / –setlat SETLAT / –setlon SETLON Sets a fixed (static) position: altitude (m), latitude, longitude. Disables GPS.
- –remove-position Clears any fixed position and re-enables GPS if available.
- –pos-fields [POS_FIELDS …] Chooses which position fields to broadcast (ALTITUDE, HEADING, SPEED, etc.). No args lists current.
Channel Management
- –ch-add CH_ADD Adds a new secondary channel with the given name.
- –ch-del Deletes the channel at the current –ch-index.
- –ch-set FIELD VALUE Sets a channel-specific setting (e.g., –ch-set name “Field Ops”, –ch-set psk random, –ch-set psk none).
- –ch-enable / –ch-disable Deprecated — old commands to enable/disable channels (use –ch-add / –ch-del now).
- –channel-fetch-attempts ATTEMPTS Sets how many times the CLI retries fetching channel info (useful on flaky connections).
QR Code Sharing
- –qr Shows a QR code + URL for the primary channel.
- –qr-all Shows QR codes + URLs for all channels.
Information & Network
- –info Prints detailed device info (firmware version, channels, LoRa config, owner, etc.).
- –nodes Lists all known nodes in the mesh with signal stats, last heard, etc.
Messaging & Diagnostics
- –sendtext TEXT Sends a text message to the mesh (or to –dest if specified).
- –traceroute !xxxxxxxx Performs a traceroute to the specified node (shows hop-by-hop path).
- –request-telemetry Requests current telemetry (battery, temp, air utilization, etc.) from –dest.
- –request-position Requests current position from –dest.
- –reply Listens for messages and automatically replies with device info.
Device Control / Reset
- –reboot Reboots the device.
- –reboot-ota Reboots into OTA (over-the-air) update mode.
- –enter-dfu Enters DFU (Device Firmware Upgrade) mode (for some platforms).
- –shutdown Shuts down/sleeps the device (if supported).
- –device-metadata Shows low-level device hardware/firmware metadata.
- –factory-reset / –factory-reset-device Performs a full factory reset (wipes all settings).
- –remove-node !xxxxxxxx Removes a specific node from this device’s NodeDB.
- –reset-nodedb Clears the entire known-nodes database.
- –set-time [TIMESTAMP] Manually sets the device time (Unix timestamp; usually auto-handled).
Logging & Behavior Modifiers
- –seriallog [LOG_DESTINATION] Controls serial debug logging: stdout, none, or filename.
- –ack Waits for acknowledgment when sending to a single destination.
- –timeout SECONDS Sets max wait time for responses (default usually 30–60s).
- –no-nodes Prevents sending node info at startup (for low-traffic setups).
- –debug Enables verbose debug output from the CLI.
- –test Runs a basic stress/integration test against the device.
- –wait-to-disconnect [SECONDS] Pauses before closing connection (helps avoid reboot glitches).
- –noproto Disables Meshtastic protocol → acts as dumb serial terminal (debug only, serial only).
- –listen Keeps connection open and listens/prints all incoming protocol messages.
- –no-time Prevents sending current time to mesh at startup.
Power / Hardware (Advanced / Remote)
- –power-riden POWER_RIDEN | –power-ppk2-meter | –power-ppk2-supply | –power-sim Selects power monitoring/sourcing mode (Riden supply, Nordic PPK2, simulation).
- –power-voltage POWER_VOLTAGE Sets target voltage for power stress testing.
- –power-stress Runs power stress test.
- –power-wait Waits for stable power before proceeding.
- –slog [SLOG] (Likely serial log variant; rarely documented).
- –gpio-wrb GPIO_WRB GPIO_WRB Writes value to GPIO pin(s) (remote hardware control via –dest).
- –gpio-rd GPIO_RD Reads GPIO pin state(s).
- –gpio-watch GPIO_WATCH Monitors GPIO pin(s) for changes.
Most users only need a small subset (connection + –info, –set, –nodes, –sendtext). For tower/router nodes like your Heltec V3 setup, common useful ones include –set device.role ROUTER, –info, –nodes, –ble, and channel/position tweaks.
