Skip to content

C# / .NET based command line interface and library for Meshtastic

License

Notifications You must be signed in to change notification settings

meshtastic/c-sharp

Repository files navigation

Meshtastic C#

GitHub release downloads Coverage Status CI CLA assistant Fiscal Contributors Vercel

Overview

A cross-platform C# / .NET 8 based command line interface for Meshtastic.

Stats

Alt

Installation & Usage

Description:
  Meshtastic.Cli

Usage:
  Meshtastic.Cli [command] [options]

Options:
  --port <port>                                                    Target serial port for meshtastic device
  --host <host>                                                    Target host ip or name for meshtastic device
  --output <Json|PrettyConsole>                                    Type of output format for the command
  -l, --log <Critical|Debug|Error|Information|None|Trace|Warning>  Logging level for command events [default: Information]
  --dest <dest>                                                    Destination node address for command
  -sd, --select-dest                                               Interactively select a destination from device's node list [default: False]
  --version                                                        Show version information
  -?, -h, --help                                                   Show help and usage information

Commands:
  list                                   List available serial ports
  monitor                                Serial monitor for the device
  live                                   Show a live dashboard for the device
  info                                   Dump info about the device
  get                                    Display one or more settings from the device
  set                                    Save one or more settings onto the device
  channel <Add|Disable|Enable|Save>      Enable, Disable, Add, Save channels on the device
  url <Get|Set> <url>                    Get or set shared channel url []
  reboot <seconds>                       Reboot the device [default: 5]
  metadata                               Get device metadata from the device
  factory-reset                          Factory reset configuration of the device
  fixed-position <lat> <lon> <altitude>  Set the device to a fixed position [default: 0]
  text <message>                         Send a text message from the device
  remove-node <nodenum>                  Remove single node by nodenum from node db of the device
  reset-nodedb                           Reset the node db of the device
  trace-route                            Trace the sequence of nodes routing to the destination
  waypoint <lat> <lon>                   Send a waypoint from the device
  file <path>                            Get or send a file from the device
  waypoint <lat> <lon>                   Send a waypoint from the device
  file <path>                            Get or send a file from the device
  update                                 Update the firmware of the serial connected device
  export                                 Export the profile of the connected device as yaml
  import                                 Import the profile export from a yaml file and set the connected device
  mqtt-proxy                             Proxy to the MQTT server referenced in the MQTT module config of the connected device
  request-telemetry                      Request a telemetry packet from a repeater by nodenum
  capture                                Capture all of the FromRadio messages for the device and store in MongoDB instance

PS C:\Users\bmeadors\Documents\GitHub\c-sharp> dotnet run --project ./Meshtastic.Cli/Meshtastic.Cli.csproj --port COM5
Required command was not provided.

Description:
  Meshtastic.Cli

Usage:
  Meshtastic.Cli [command] [options]

Options:
  --port <port>                                          Target serial port for meshtastic device
  --host <host>                                          Target host ip or name for meshtastic device
  --output <Json|PrettyConsole>                          Type of output format for the command
  -l, --log                                              Logging level for command events [default: Information]
  <Critical|Debug|Error|Information|None|Trace|Warning>
  --dest <dest>                                          Destination node address for command
  -sd, --select-dest                                     Interactively select a destination from device's node list       
                                                         [default: False]
  --version                                              Show version information
  -?, -h, --help                                         Show help and usage information

Commands:
  list                                   List available serial ports
  monitor                                Serial monitor for the device
  live                                   Show a live dashboard for the device
  info                                   Dump info about the device
  get                                    Display one or more settings from the device
  set                                    Save one or more settings onto the device
  channel <Add|Disable|Enable|Save>      Enable, Disable, Add, Save channels on the device
  url <Get|Set> <url>                    Get or set shared channel url []
  reboot <seconds>                       Reboot the device [default: 5]
  metadata                               Get device metadata from the device
  factory-reset                          Factory reset configuration of the device
  fixed-position <lat> <lon> <altitude>  Set the device to a fixed position [default: 0]
  text <message>                         Send a text message from the device
  remove-node <nodenum>                  Remove single node by nodenum from node db of the device
  reset-nodedb                           Reset the node db of the device
  trace-route                            Trace the sequence of nodes routing to the destination
  canned-messages <Get|Set> <messages>   Get or set the collection of canned messages on the device [operation: Get, ]    
  waypoint <lat> <lon>                   Send a waypoint from the device
  file <path>                            Get or send a file from the device
  update                                 Update the firmware of the serial connected device
  export                                 Export the profile of the connected device as yaml
  import                                 Import the profile export from a yaml file and set the connected device
  mqtt-proxy                             Proxy to the MQTT server referenced in the MQTT module config of the connected   
                                         device
  request-telemetry                      Request a telemetry packet from a repeater by nodenum

Example of Meshtastic.Cli info output with default console output level

image

Installation (dotnet cli / tool method)

  • Install the latest dotnet 8 sdk for your platform
  • Install the Meshtastic.Cli nuget package as a dotnet tool via dotnet tool install --global Meshtastic.Cli in your terminal of choice

Installation (standalone executable)

  • Navigate to the Releases page in this github repsitory
  • Download and extract the zip archive with the standalone executable for your platform

image

  • Execute it in the terminal of your choice (this may require security allowances or display warnings on some platforms)

Updating via dotnet cli

  • Execute dotnet tool update Meshtastic.Cli -g in your terminal of choice