---
name: "mqtt-simple"
section: "1p"
platform: "linux"
package: "libnet-mqtt-simple-perl"
version: "1.29-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/mqtt-simple"
---

# mqtt-simple(1p)

Very simple MQTT implementation

## NAME

mqtt-simple - Very simple MQTT implementation

## SYNOPSIS

```
 mqtt-simple -h mqtt.example.org -c -s "sensors/#" -s "debug/#" -s "#"
 mqtt-simple -h mqtt.example.org -p "example/unretained" -m "message"
 mqtt-simple -h mqtt.example.org -r -p "example/retained" -m "message"
 tail -f logfile | mqtt-simple -h mqtt.example.org -p "log/example"
 mqtt-simple --ssl --insecure ...
 mqtt-simple --ssl --ca ca.crt --cert client.crt --key client.key
```

## DESCRIPTION

This is just a simple utility program. It doesn't do much. Specifically, all the QoS features are unsupported. Also, don't expect fancy error messages and such :-)

## COMMAND LINE OPTIONS

- \-h --host

  MQTT server to connect to, required.

- \-p --publish *topic*

  Publish a message. Uses the message given with `"-m"`, or will read lines from **stdin**, and publish a message for each given line.

- \-m --message *message*

  Message to publish. Requires `"-p"`.

- \-r --retain

  Causes messages published with `"-p"` to have the "retain" flag on.

- \-s --subscribe *filter*

  Subscribe to the given topic filter. Use the standard MQTT wildcards like `"+"` and `"#"`. Outputs matching published messages on **stdout**. Can be given multiple times.

- \-e --except *filter*

  Suppress published messages that match *filter*. Can be given multiple times.

- \--count *number*

  Quit after receiving *number* messages.

- \--message-only

  Output only the message values, without the topics.

- \-1 --one

  Shortcut for `"--count 1 --message-only"`.

- \--color

  - \--no-color

  For each given `"-s"`, print the matching topic in a different color. Note that the first matching topic will be used for color selection, so specify the topics with the most specific one first, the least specific one (like `"#"`) last.

  Color is enabled by default if *stdout* is a terminal.

- \--raw

  Pass ASCII control characters unaltered. By default, they're replaced by `"^@"` notation or, when `"--color"` is enabled, reverse video characters. For example, an ASCII newline would be displayed as `"^J"` unless `"--raw"` is used.

- \-d --datetime *format*

  Prefix messages with a timestamp. Optionally, a *format* for `"strftime"` can be supplied.

- \-u --user --username *username*

  Specify a username. Overrides the environment variable `"MQTT_SIMPLE_USERNAME"`.

- \--pass --password *password*

  Specify a password. Overrides the environment variable `"MQTT_SIMPLE_PASSWORD"`.

### SSL options

- \--ssl

  Use SSL instead of unencrypted connection.

- \--insecure

  Disable SSL certificate validation and enable clear text passwords. Useful for testing, bad idea in production.

  Overrides the environment variables `"MQTT_SIMPLE_SSL_INSECURE"` and `"MQTT_SIMPLE_ALLOW_INSECURE_LOGIN"`.

- \--ca *path*

  The Certificate Authority to validate against. *path* can be a file or a directory. If unspecified, IO::Socket::SSL attempts to use the system wide CA configuration.

  Overrides the environment variable `"MQTT_SIMPLE_SSL_CA"`.

- \--cert *path*

  - \--key *path*

  A client certificate with its key.

  Override the environment variables `"MQTT_SIMPLE_SSL_CERT"` and `"MQTT_SIMPLE_SSL_KEY"`.

## LICENSE

Pick your favourite OSI approved license :)

http://www.opensource.org/licenses/alphabetical

## AUTHOR

Juerd Waalboer \<juerd@tnx.nl\>

## SEE ALSO

Net::MQTT::Simple
