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
167
168
169 Simply create your own python file with the following bare minimum con‐
170 tent in it: from apprise.decorators import notify
171
172
173 # This example assumes you want your function to trigger on foobar://
174 # references:
175 @notify(on="foobar", name="My Custom Notification")
176 def my_wrapper(body, title, notify_type, *args, **kwargs):
177
178 <define your custom code here>
179
180 # Returning True/False is a way to relay your status back to Apprise.
181 # Returning nothing (None by default) is always interpreted as a Success
182 return True
183
184
185
187 A configuration file can be in the format of either TEXT or YAML where
188 [TEXT][textconfig] is the easiest and most ideal solution for most
189 users. However YAML https://github.com/caronc/apprise/wiki/config_yaml
190 configuration files grants the user a bit more leverage and access to
191 some of the internal features of Apprise. Reguardless of which format
192 you choose, both provide the users the ability to leverage tagging
193 which adds a more rich and powerful notification environment.
194
195 Configuration files can be directly referenced via apprise when refer‐
196 encing the --config= (-c) CLI directive. You can identify as many as
197 you like on the command line and all of them will be loaded. You can
198 also point your configuration to a cloud location (by referencing
199 http:// or https://. By default apprise looks in the following local
200 locations for configuration files and loads them:
201
202
203 ~/.apprise
204 ~/.apprise.yml
205 ~/.config/apprise
206 ~/.config/apprise.yml
207
208 ~/.apprise/apprise
209 ~/.apprise/apprise.yaml
210 ~/.config/apprise/apprise
211 ~/.config/apprise/apprise.yaml
212
213
214
215 If a default configuration file is referenced in any way by the apprise
216 tool, you no longer need to provide it a Service URL. Usage of the ap‐
217 prise tool simplifies to:
218
219
220 $ apprise -vv -t "my title" -b "my notification body"
221
222
223
224 If you leveraged tagging https://github.com/caronc/apprise/wiki/CLI_Us‐
225 age#label-leverage-tagging, you can define all of Apprise Service URLs
226 in your configuration that you want and only specifically notify a sub‐
227 set of them:
228
229
230 $ apprise -vv -t "Will Be Late" -b "Go ahead and make dinner without me" \
231 --tag=family
232
233
234
236 If you find any bugs, please make them known at:
237 https://github.com/caronc/apprise/issues
238
240 Apprise is Copyright (C) 2021 Chris Caron lead2gold@gmail.com
241
242
243
244 July 2022 APPRISE(1)