Meshtastic Python CLI Guide
The python pip package installs a "meshtastic" command line executable, which displays packets sent over the network as JSON and lets you see serial debugging information from the meshtastic devices. This command is not run inside of python, you run it from your operating system shell prompt directly. If when you type "meshtastic" it doesn't find the command and you are using Windows: Check that the python "scripts" directory is in your path.
Optional Arguments
-h or --help
Shows a help message that describes the arguments.
meshtastic -h
--export-config
Export the configuration of the device. (to be consumed by the '--configure' command).
To create to a file with the connected device's configuration, this command's output must be piped to a yaml file.
meshtastic --export-config > example_config.yaml
meshtastic --export-config
--configure
Configure radio using a yaml file.
meshtastic --configure example_config.yaml
--port PORT
The port the Meshtastic device is connected to, i.e. /dev/ttyUSB0
, /dev/cu.wchusbserial
, COM4
etc. if unspecified, meshtastic will try to find it. Important to use when multiple devices are connected to ensure you call the command for the correct device.
meshtastic --port /dev/ttyUSB0 --info
meshtastic --port COM4 --info
--host HOST
The hostname/ipaddr of the device to connect to (over TCP).
meshtastic --host HOST
--seriallog SERIALLOG
Logs device serial output to either 'stdout', 'none' or a filename to append to.
meshtastic --port /dev/ttyUSB0 --seriallog
--info
Read and display the radio config information.
meshtastic --port /dev/ttyUSB0 --info
--set-canned-message
Set the canned message plugin messages separated by pipes |
(up to 200 characters).
meshtastic --set-canned-message "I need an alpinist!|Call Me|Roger Roger|Keep Calm|On my way"
--get-canned-message
Show the canned message plugin message.
meshtastic --get-canned-message
--set-ringtone RINGTONE
Set the Notification Ringtone (up to 230 characters).
meshtastic --set-ringtone "LeisureSuit:d=16,o=6,b=56:f.5,f#.5,g.5,g#5,32a#5,f5,g#.5,a#.5,32f5,g#5,32a#5,g#5,8c#.,a#5,32c#,a5,a#.5,c#.,32a5,a#5,32c#,d#,8e,c#.,f.,f.,f.,f.,f,32e,d#,8d,a#.5,e,32f,e,32f,c#,d#.,c#"
--get-ringtone
Show the stored ringtone.
meshtastic --get-ringtone
--nodes
Prints a node list in a pretty, formatted table.
meshtastic --nodes
--qr
Displays the QR code that corresponds to the current channel.
meshtastic --qr
--get [config_section]
Gets a preferences field.
Configuration values are described in: Configuration.
meshtastic --get lora
meshtastic --get lora.region
--set [config_section].[option] [value]
Sets a preferences field.
Configuration values are described in: Configuration.
meshtastic --set lora.region Unset
--seturl SETURL
Set a channel URL.
meshtastic --seturl https://www.meshtastic.org/c/GAMiIE67C6zsNmlWQ-KE1tKt0fRKFciHka-DShI6G7ElvGOiKgZzaGFyZWQ=
--ch-index CH_INDEX
Set the specified channel index.
meshtastic --ch-index 1 --ch-disable
--ch-add CH_ADD
Add a secondary channel, you must specify a channel name.
meshtastic --ch-add testing-channel
--ch-del
Delete the ch-index channel.
meshtastic --ch-index 1 --ch-del
--ch-enable
Enable the specified channel.
meshtastic --ch-index 1 --ch-enable
--ch-disable
Disable the specified channel.
meshtastic --ch-index 1 --ch-disable
--ch-set CH_SET CH_SET
Set a channel parameter.
meshtastic --ch-set id 1234 --ch-index 0
--ch-vlongslow
Change modem preset to VERY_LONG_SLOW
.
meshtastic --ch-vlongslow
--ch-longslow
Change modem preset to LONG_SLOW
.
meshtastic --ch-longslow
--ch-longfast
Change modem preset to (the default) LONG_FAST
.
meshtastic --ch-longfast
--ch-medslow
Change modem preset to MEDIUM_SLOW
.
meshtastic --ch-medslow
--ch-medfast
Change modem preset to MEDIUM_FAST
.
meshtastic --ch-medfast
--ch-shortslow
Change modem preset to SHORT_SLOW
.
meshtastic --ch-shortslow
--ch-shortfast
Change modem preset to SHORT_FAST
.
meshtastic --ch-shortfast
--set-owner SET_OWNER
Set device owner name.
meshtastic --set-owner "MeshyJohn"
--set-owner-short SET_OWNER_SHORT
Set device owner short name (4 characters max).
meshtastic --set-owner-short "MJ"
--set-ham SET_HAM
Set licensed Ham ID and turn off encryption.
meshtastic --set-ham KI1345
--dest DEST
The destination node id for any sent commands. Used for Remote Node Administration
meshtastic --dest '!28979058' --set-owner "MeshyJohn"
--sendtext SENDTEXT
Send a text message. Can specify a channel index ('--ch-index') or a destination ('--dest').
meshtastic --sendtext "Hello Mesh!"
--sendping
Send a ping message (which requests a reply).
meshtastic --sendping
--traceroute TRACEROUTE
Traceroute from connected node to a destination. You need pass the destination ID as an argument. Only nodes that have the encryption key can be traced.
meshtastic --traceroute '!ba4bf9d0'
--request-telemetry
Request telemetry from a node. You need to pass the destination ID as an argument with '--dest'. For repeaters, the nodeNum is required.
meshtastic --request-telemetry --dest '!ba4bf9d0'
meshtastic --request-telemetry --dest 1828779180
--ack
Used in combination with --sendtext to wait for an acknowledgment.
meshtastic --sendtext "Hello Mesh!" --ack
--reboot
Tell the node to reboot.
meshtastic --reboot
--shutdown
Tell the node to shutdown.
meshtastic --shutdown
--factory-reset
Tell the node to install the default config.
meshtastic --factory-reset
--reset-nodedb
Tell the node to clear its list of nodes.
meshtastic --reset-nodedb
--reply
Reply to received messages.
meshtastic --reply
--gpio-wrb GPIO_WRB GPIO_WRB
Set a particular GPIO # to 1 or 0.
meshtastic --port /dev/ttyUSB0 --gpio-wrb 4 1 --dest '!28979058'
--gpio-rd GPIO_RD
Read from a GPIO mask.
meshtastic --port /dev/ttyUSB0 --gpio-rd 0x10 --dest '!28979058'
--gpio-watch GPIO_WATCH
Start watching a GPIO mask for changes.
meshtastic --port /dev/ttyUSB0 --gpio-watch 0x10 --dest '!28979058'
--no-time
Suppress sending the current time to the mesh.
meshtastic --port /dev/ttyUSB0 --no-time
--setalt SETALT
Set device altitude (allows use without GPS).
meshtastic --setalt 120
--setlat SETLAT
Set device latitude (allows use without GPS).
meshtastic --setlat 25.2
--setlon SETLON
Set device longitude (allows use without GPS).
meshtastic --setlon -16.8
--debug
Show API library debug log messages.
meshtastic --debug --info
--test
Run stress test against all connected Meshtastic devices.
meshtastic --test
--ble BLE
BLE mac address to connect to (BLE is not yet supported for this tool).
meshtastic --ble "83:38:92:32:37:48"
--noproto
Don't start the API, just function as a dumb serial terminal. Probably not very helpful from the command line. Used more for testing/internal needs.
meshtastic --noproto
--version
Show program's version number and exit.
meshtastic --version
--support
Print out info that would be helpful supporting any issues.
meshtastic --support