1APPRISE(1) General Commands Manual APPRISE(1)
2
3
4
6 apprise - Push Notifications that work with just about every platform!
7
9 apprise [options...] service-url...
10
12 Apprise allows you to send a notification to almost all of the most
13 popular notification services available to us today such as: Discord,
14 Telegram, Pushbullet, Slack, Twitter, etc.
15
16 ○ One notification library to rule them all.
17
18 ○ A common and intuitive notification syntax.
19
20 ○ Supports the handling of images (to the notification services that
21 will accept them).
22
23
24
26 The Apprise options are as follows:
27
28 -b, --body=TEXT: Specify the message body. If no body is specified then
29 content is read from stdin.
30
31 -t, --title=TEXT: Specify the message title. This field is complete op‐
32 tional.
33
34 -c, --config=CONFIG-URL: Specify one or more configuration locations.
35
36 -a, --attach=ATTACH-URL: Specify one or more file attachment locations.
37
38 -P, --plugin-path=PLUGIN-PATH: Specify a path to scan for custom noti‐
39 fication plugin support. You can create your own notification by simply
40 creating a Python file that contains the @notify("schema") decorator.
41
42 You can optioanly chose to specify more then one --plugin-path (-P) to
43 increase the modules included.
44
45 -n, --notification-type=TYPE: Specify the message type (default=info).
46 Possible values are "info", "success", "failure", and "warning".
47
48 -i, --input-format=FORMAT: Specify the input message format (de‐
49 fault=text). Possible values are "text", "html", and "markdown".
50
51 -T, --theme=THEME: Specify the default theme.
52
53 -g, --tag=TAG: Specify one or more tags to filter which services to no‐
54 tify. Use multiple --tag (-g) entries to OR the tags together and comma
55 separated to AND them. If no tags are specified then all services are
56 notified.
57
58 -Da, --disable-async: Send notifications synchronously (one after the
59 other) instead of all at once.
60
61 -R, --recursion-depth: he number of recursive import entries that can
62 be loaded from within Apprise configuration. By default this is set to
63 1. If this is set to zero, then import statements found in any configu‐
64 ration is ignored.
65
66 -e, --interpret-escapes Enable interpretation of backslash escapes. For
67 example, this would convert sequences such as \n and \r to their re‐
68 spected ascii new-line and carriage
69
70 -d, --dry-run: Perform a trial run but only prints the notification
71 services to-be triggered to stdout. Notifications are never sent using
72 this mode.
73
74 return characters prior to the delivery of the notification.
75
76 -l, --details Prints details about the current services supported by
77 Apprise.
78
79 -v, --verbose: The more of these you specify, the more verbose the out‐
80 put is. e.g: -vvvv
81
82 -D, --debug: A debug mode; useful for troubleshooting.
83
84 -V, --version: Display the apprise version and exit.
85
86 -h, --help: Show this message and exit.
87
89 apprise exits with a status of:
90
91 ○ 0 if all of the notifications were sent successfully.
92
93 ○ 1 if one or more notifications could not be sent.
94
95 ○ 2 if there was an error specified on the command line such as not
96 providing an valid argument.
97
98 ○ 3 if there was one or more Apprise Service URLs successfully loaded
99 but none could be notified due to user filtering (via tags).
100
101
102
104 There are to many service URL and combinations to list here. It´s best
105 to visit the Apprise GitHub page https://github.com/caronc/ap‐
106 prise/wiki#notification-services and see what´s available.
107
109 Send a notification to as many servers as you want to specify as you
110 can easily chain them together:
111
112
113 $ apprise -vv -t "my title" -b "my notification body" \
114 "mailto://myemail:mypass@gmail.com" \
115 "pbul://o.gn5kj6nfhv736I7jC3cj3QLRiyhgl98b"
116
117
118
119 If you don´t specify a --body (-b) then stdin is used allowing you to
120 use the tool as part of your every day administration:
121
122
123 $ cat /proc/cpuinfo | apprise -vv -t "cpu info" \
124 "mailto://myemail:mypass@gmail.com"
125
126
127
128 Load in a configuration file which identifies all of your notification
129 service URLs and notify them all:
130
131
132 $ apprise -vv -t "my title" -b "my notification body" \
133 --config=~/apprise.yml
134
135
136
137 Load in a configuration file from a remote server that identifies all
138 of your notification service URLs and only notify the ones tagged as
139 devops.
140
141
142 $ apprise -vv -t "my title" -b "my notification body" \
143 --config=https://localhost/my/apprise/config \
144 -t devops
145
146
147
148 Include an attachment:
149
150
151 $ apprise -vv -t "School Assignment" -b "See attached" \
152 --attach=Documents/FinalReport.docx
153
154
155
157 Apprise can additionally allow you to define your own custom schema://
158 entries that you can trigger on and call services you´ve defined.
159
160 By default apprise looks in the following local locations for custom
161 plugin files and loads them:
162
163
164 ~/.apprise/plugins
165 ~/.config/apprise/plugins
166 /var/lib/apprise/plugins
167
168
169
170 Simply create your own python file with the following bare minimum con‐
171 tent in it: from apprise.decorators import notify
172
173
174 # This example assumes you want your function to trigger on foobar://
175 # references:
176 @notify(on="foobar", name="My Custom Notification")
177 def my_wrapper(body, title, notify_type, *args, **kwargs):
178
179 <define your custom code here>
180
181 # Returning True/False is a way to relay your status back to Apprise.
182 # Returning nothing (None by default) is always interpreted as a Success
183 return True
184
185
186
188 A configuration file can be in the format of either TEXT or YAML where
189 [TEXT][textconfig] is the easiest and most ideal solution for most
190 users. However YAML https://github.com/caronc/apprise/wiki/config_yaml
191 configuration files grants the user a bit more leverage and access to
192 some of the internal features of Apprise. Reguardless of which format
193 you choose, both provide the users the ability to leverage tagging
194 which adds a more rich and powerful notification environment.
195
196 Configuration files can be directly referenced via apprise when refer‐
197 encing the --config= (-c) CLI directive. You can identify as many as
198 you like on the command line and all of them will be loaded. You can
199 also point your configuration to a cloud location (by referencing
200 http:// or https://. By default apprise looks in the following local
201 locations for configuration files and loads them:
202
203
204 ~/.apprise
205 ~/.apprise.yml
206 ~/.config/apprise
207 ~/.config/apprise.yml
208
209 ~/.apprise/apprise
210 ~/.apprise/apprise.yaml
211 ~/.config/apprise/apprise
212 ~/.config/apprise/apprise.yaml
213
214 /etc/apprise
215 /etc/apprise.yml
216 /etc/apprise/apprise
217 /etc/apprise/apprise.yml
218
219
220
221 If a default configuration file is referenced in any way by the apprise
222 tool, you no longer need to provide it a Service URL. Usage of the ap‐
223 prise tool simplifies to:
224
225
226 $ apprise -vv -t "my title" -b "my notification body"
227
228
229
230 If you leveraged tagging https://github.com/caronc/apprise/wiki/CLI_Us‐
231 age#label-leverage-tagging, you can define all of Apprise Service URLs
232 in your configuration that you want and only specifically notify a sub‐
233 set of them:
234
235
236 $ apprise -vv -t "Will Be Late" -b "Go ahead and make dinner without me" \
237 --tag=family
238
239
240
242 If you find any bugs, please make them known at:
243 https://github.com/caronc/apprise/issues
244
246 Apprise is Copyright (C) 2023 Chris Caron lead2gold@gmail.com
247
248
249
250 May 2023 APPRISE(1)