Blame


1 68cb1a8c 2013-01-02 alex
2 68cb1a8c 2013-01-02 alex ngIRCd - Next Generation IRC Server
3 68cb1a8c 2013-01-02 alex http://ngircd.barton.de/
4 68cb1a8c 2013-01-02 alex
5 13122bc9 2019-06-29 alex (c)2001-2019 Alexander Barton and Contributors.
6 68cb1a8c 2013-01-02 alex ngIRCd is free software and published under the
7 68cb1a8c 2013-01-02 alex terms of the GNU General Public License.
8 68cb1a8c 2013-01-02 alex
9 68cb1a8c 2013-01-02 alex -- Commands.txt --
10 68cb1a8c 2013-01-02 alex
11 68cb1a8c 2013-01-02 alex
12 68cb1a8c 2013-01-02 alex This file lists all commands available on ngIRCd. It is written in a format
13 68cb1a8c 2013-01-02 alex that is human readable as well as machine parseable and therefore can be used
14 68cb1a8c 2013-01-02 alex as "help text file" of the daemon.
15 68cb1a8c 2013-01-02 alex
16 7fce7191 2013-02-09 alex In short, the daemon reads this file on startup and parses it as following
17 7fce7191 2013-02-09 alex when an user issues a "HELP <cmd>" command:
18 68cb1a8c 2013-01-02 alex
19 68cb1a8c 2013-01-02 alex 1. Search the file for a line "- <cmd>",
20 68cb1a8c 2013-01-02 alex 2. Output all subsequent lines that start with a TAB (ASCII 9) character
21 68cb1a8c 2013-01-02 alex to the client using NOTICE commands, treat lines containing a single "."
22 68cb1a8c 2013-01-02 alex after the TAB as empty lines.
23 68cb1a8c 2013-01-02 alex 3. Break at the first line not starting with a TAB character.
24 68cb1a8c 2013-01-02 alex
25 68cb1a8c 2013-01-02 alex This format allows to have information to each command stored in this file
26 68cb1a8c 2013-01-02 alex which will not be sent to an IRC user requesting help which enables us to
27 68cb1a8c 2013-01-02 alex have additional annotations stored here which further describe the origin,
28 7fce7191 2013-02-09 alex implementation details, or limits of the specific command which are not
29 7fce7191 2013-02-09 alex relevant to an end-user but administrators and developers.
30 68cb1a8c 2013-01-02 alex
31 68cb1a8c 2013-01-02 alex A special "Intro" block is returned to the user when the HELP command is
32 68cb1a8c 2013-01-02 alex used without a command name:
33 68cb1a8c 2013-01-02 alex
34 68cb1a8c 2013-01-02 alex
35 68cb1a8c 2013-01-02 alex - Intro
36 68cb1a8c 2013-01-02 alex This is ngIRCd, a server software for Internet Relay Chat (IRC)
37 68cb1a8c 2013-01-02 alex networks. You can find more information about ngIRCd on its homepage:
38 68cb1a8c 2013-01-02 alex <http://ngircd.barton.de>
39 68cb1a8c 2013-01-02 alex .
40 68cb1a8c 2013-01-02 alex Use "HELP COMMANDS" to get a list of all available commands and
41 68cb1a8c 2013-01-02 alex "HELP <command-name>" to get help for a specific IRC command, for
42 68cb1a8c 2013-01-02 alex example "HELP quit" or "HELP privmsg".
43 68cb1a8c 2013-01-02 alex
44 68cb1a8c 2013-01-02 alex
45 7fce7191 2013-02-09 alex Connection Handling Commands
46 7fce7191 2013-02-09 alex ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47 68cb1a8c 2013-01-02 alex
48 68cb1a8c 2013-01-02 alex - CAP
49 7fce7191 2013-02-09 alex CAP LS
50 7fce7191 2013-02-09 alex CAP LIST
51 7fce7191 2013-02-09 alex CAP REQ <capabilities>
52 7fce7191 2013-02-09 alex CAP ACK <capabilities>
53 7fce7191 2013-02-09 alex CAP NAK <capabilities>
54 7fce7191 2013-02-09 alex CAP CLEAR
55 7fce7191 2013-02-09 alex CAP END
56 7fce7191 2013-02-09 alex .
57 7fce7191 2013-02-09 alex List, request, and clear "IRC Capabilities".
58 7fce7191 2013-02-09 alex .
59 7fce7191 2013-02-09 alex Using this command, an IRC client can request additional "IRC
60 7fce7191 2013-02-09 alex capabilities" during login or later on, which influences the
61 7fce7191 2013-02-09 alex communication between server and client. Normally, these commands
62 7fce7191 2013-02-09 alex aren't directly used by humans, but automatically by their client
63 7fce7191 2013-02-09 alex software. And please note that issuing such commands manually can
64 7fce7191 2013-02-09 alex irritate the client software used, because of the "non-standard"
65 7fce7191 2013-02-09 alex behavior of the server!
66 7fce7191 2013-02-09 alex .
67 7fce7191 2013-02-09 alex - CAP LS: list all available capabilities.
68 7fce7191 2013-02-09 alex - CAP LIST: list active capabilities of this connection.
69 7fce7191 2013-02-09 alex - CAP REQ: Request particular capabilities.
70 7fce7191 2013-02-09 alex - CAP ACK: Acknowledge a set of capabilities to be enabled/disabled.
71 7fce7191 2013-02-09 alex - CAP NAK: Reject a set of capabilities.
72 7fce7191 2013-02-09 alex - CAP CLEAR: Clear all set capabilities.
73 7fce7191 2013-02-09 alex - CAP END: Indicate end of capability negotiation during login,
74 7fce7191 2013-02-09 alex ignored in an fully registered session.
75 68cb1a8c 2013-01-02 alex
76 7fce7191 2013-02-09 alex Please note that the <capabilities> must be given in a single
77 7fce7191 2013-02-09 alex parameter but whitespace separated, therefore a command could look
78 7fce7191 2013-02-09 alex like this: "CAP REQ :capability1 capability2 capability3" for example.
79 7fce7191 2013-02-09 alex
80 7fce7191 2013-02-09 alex References:
81 f6b7764e 2015-06-24 alex - <http://ircv3.net/specs/core/capability-negotiation-3.1.html>
82 7fce7191 2013-02-09 alex - <http://ngircd.barton.de/doc/Capabilities.txt>
83 7fce7191 2013-02-09 alex - doc/Capabilities.txt
84 7fce7191 2013-02-09 alex
85 68cb1a8c 2013-01-02 alex - CHARCONV
86 7fce7191 2013-02-09 alex CHARCONV <client-charset>
87 7fce7191 2013-02-09 alex .
88 7fce7191 2013-02-09 alex Set client character set encoding to <client-charset>.
89 7fce7191 2013-02-09 alex .
90 7fce7191 2013-02-09 alex After receiving such a command, the server translates all message
91 7fce7191 2013-02-09 alex data received from the client using the set <client-charset> to the
92 7fce7191 2013-02-09 alex server encoding (UTF-8), and all message data which is to be sent to
93 7fce7191 2013-02-09 alex the client from the server encoding (UTF-8) to <client-charset>.
94 7fce7191 2013-02-09 alex .
95 7fce7191 2013-02-09 alex This enables older clients and clients using "strange" character sets
96 7fce7191 2013-02-09 alex to transparently participate in channels and direct messages to
97 7fce7191 2013-02-09 alex clients using UTF-8, which should be the default today.
98 68cb1a8c 2013-01-02 alex
99 7fce7191 2013-02-09 alex References:
100 fef10f59 2013-08-01 alex - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
101 fef10f59 2013-08-01 alex - IRC+, doc/Protocol.txt
102 7fce7191 2013-02-09 alex
103 7fce7191 2013-02-09 alex - NICK
104 659d1264 2013-07-30 alex NICK <nickname>
105 659d1264 2013-07-30 alex NICK <nickname> [<hops>]
106 659d1264 2013-07-30 alex NICK <nickname> <hops> <username> <host> <servertoken> <usermodes> <realname>
107 7fce7191 2013-02-09 alex .
108 659d1264 2013-07-30 alex Set or change the <nickname> of a client (first form) and register
109 659d1264 2013-07-30 alex remote clients (second and third form; servers only).
110 7fce7191 2013-02-09 alex
111 659d1264 2013-07-30 alex References:
112 659d1264 2013-07-30 alex - RFC 1459, 4.1.2 "Nick message" (old client and server protocol)
113 659d1264 2013-07-30 alex - RFC 2812, 3.1.2 "Nick message" (client protocol)
114 659d1264 2013-07-30 alex - RFC 2813, 4.1.3 "Nick" (server protocol)
115 659d1264 2013-07-30 alex
116 7fce7191 2013-02-09 alex - PASS
117 659d1264 2013-07-30 alex PASS <password>
118 7fce7191 2013-02-09 alex PASS <password> <version> <flags> [<options>]
119 7fce7191 2013-02-09 alex .
120 659d1264 2013-07-30 alex Set a connection <password>. This command must be the first command
121 659d1264 2013-07-30 alex sent to the server, even before the NICK/USER or SERVER commands.
122 7fce7191 2013-02-09 alex .
123 659d1264 2013-07-30 alex The first form is used by user sessions or (old) RFC 1459 servers,
124 659d1264 2013-07-30 alex the second form is used by RFC 2812 or IRC+ compliant servers and
125 659d1264 2013-07-30 alex enables the server to indicate its version and supported protocol
126 659d1264 2013-07-30 alex features.
127 7fce7191 2013-02-09 alex
128 659d1264 2013-07-30 alex References:
129 659d1264 2013-07-30 alex - RFC 1459, 4.1.1 "Password message" (old client and server protocol)
130 659d1264 2013-07-30 alex - RFC 2812, 3.1.1 "Password message" (client protocol)
131 659d1264 2013-07-30 alex - RFC 2813, 4.1.1 "Password message" (server protocol)
132 fef10f59 2013-08-01 alex - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
133 fef10f59 2013-08-01 alex - IRC+, doc/Protocol.txt
134 659d1264 2013-07-30 alex
135 7fce7191 2013-02-09 alex - PING
136 659d1264 2013-07-30 alex PING <token> [<target>]
137 7fce7191 2013-02-09 alex .
138 659d1264 2013-07-30 alex Tests the presence of a connection to a client or server.
139 659d1264 2013-07-30 alex .
140 659d1264 2013-07-30 alex If no <target> has been given, the local server is used. User clients
141 659d1264 2013-07-30 alex can only use other servers as <target>, no user clients.
142 659d1264 2013-07-30 alex .
143 659d1264 2013-07-30 alex A PING message results in a PONG reply containing the <token>, which
144 659d1264 2013-07-30 alex can be arbitrary text.
145 7fce7191 2013-02-09 alex
146 659d1264 2013-07-30 alex Please note:
147 659d1264 2013-07-30 alex The RFCs state that the <token> parameter is used to specify the
148 fcdb5cf8 2013-08-05 fgsch origin of the PING command when forwarded in the network, but this
149 659d1264 2013-07-30 alex is not the case: the sender is specified using the prefix as usual,
150 659d1264 2013-07-30 alex and the parameter is used to identify the PONG reply in practice.
151 659d1264 2013-07-30 alex
152 659d1264 2013-07-30 alex References:
153 659d1264 2013-07-30 alex - RFC 2812, 3.7.2 "Ping message"
154 659d1264 2013-07-30 alex
155 7fce7191 2013-02-09 alex - PONG
156 659d1264 2013-07-30 alex PONG <target> [<token>]
157 7fce7191 2013-02-09 alex .
158 659d1264 2013-07-30 alex Reply to a "PING" command, indicate that the connection is alive.
159 659d1264 2013-07-30 alex .
160 659d1264 2013-07-30 alex The <token> is the arbitrary text received in the "PING" command and
161 659d1264 2013-07-30 alex can be used to identify the correct PONG sent as answer.
162 659d1264 2013-07-30 alex .
163 659d1264 2013-07-30 alex When the "PONG" command is received from a user session, the <target>
164 659d1264 2013-07-30 alex parameter is ignored; otherwise the PONG is forwarded to this client.
165 7fce7191 2013-02-09 alex
166 659d1264 2013-07-30 alex References:
167 659d1264 2013-07-30 alex - RFC 2812, 3.7.3 "Pong message"
168 659d1264 2013-07-30 alex
169 7fce7191 2013-02-09 alex - QUIT
170 7fce7191 2013-02-09 alex QUIT [<quit-message>]
171 7fce7191 2013-02-09 alex .
172 659d1264 2013-07-30 alex Terminate a user session.
173 7fce7191 2013-02-09 alex .
174 659d1264 2013-07-30 alex When received from a user, the server acknowledges this by sending
175 659d1264 2013-07-30 alex an "ERROR" message back to the client and terminates the connection.
176 659d1264 2013-07-30 alex .
177 659d1264 2013-07-30 alex When a <quit-message> has been given, it is sent to all the channels
178 659d1264 2013-07-30 alex that the client is a member of when leaving.
179 659d1264 2013-07-30 alex
180 659d1264 2013-07-30 alex References:
181 659d1264 2013-07-30 alex - RFC 2812, 3.1.7 "Quit"
182 659d1264 2013-07-30 alex - RFC 2813, 4.1.5 "Quit"
183 7fce7191 2013-02-09 alex
184 7fce7191 2013-02-09 alex - USER
185 659d1264 2013-07-30 alex USER <username> <hostname> <unused> <realname>
186 7fce7191 2013-02-09 alex .
187 659d1264 2013-07-30 alex Register (and authenticate) a new user session with a short <username>
188 659d1264 2013-07-30 alex and a human-readable <realname>.
189 7fce7191 2013-02-09 alex .
190 659d1264 2013-07-30 alex The parameter <hostname> is only used when received by an other server
191 659d1264 2013-07-30 alex and ignored otherwise; and the parameter <unused> is always ignored.
192 659d1264 2013-07-30 alex But both parameters are required on each invocation by the protocol
193 659d1264 2013-07-30 alex and can be set to arbitrary characters/text when not used.
194 659d1264 2013-07-30 alex .
195 659d1264 2013-07-30 alex If <username> contains an "@" character, the full <username> is used
196 659d1264 2013-07-30 alex for authentication, but only the first part up to this character is
197 659d1264 2013-07-30 alex set as "user name" for this session.
198 7fce7191 2013-02-09 alex
199 659d1264 2013-07-30 alex References:
200 659d1264 2013-07-30 alex - RFC 2812, 3.1.3 "User message"
201 659d1264 2013-07-30 alex
202 7fce7191 2013-02-09 alex - WEBIRC
203 659d1264 2013-07-30 alex WEBIRC <password> <username> <hostname> <ip-address>
204 659d1264 2013-07-30 alex .
205 659d1264 2013-07-30 alex Allow Web-to-IRC gateway software (for example) to set the correct
206 659d1264 2013-07-30 alex user name and host name of users instead of their own.
207 659d1264 2013-07-30 alex .
208 659d1264 2013-07-30 alex It must be the very first command sent to the server, even before
209 659d1264 2013-07-30 alex USER and NICK commands!
210 659d1264 2013-07-30 alex .
211 659d1264 2013-07-30 alex The <password> must be set in the server configuration file to prevent
212 659d1264 2013-07-30 alex unauthorized clients to fake their identity; it is an arbitrary string.
213 7fce7191 2013-02-09 alex
214 659d1264 2013-07-30 alex References:
215 fef10f59 2013-08-01 alex - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
216 fef10f59 2013-08-01 alex - IRC+, doc/Protocol.txt
217 7fce7191 2013-02-09 alex
218 659d1264 2013-07-30 alex
219 7fce7191 2013-02-09 alex General Commands
220 7fce7191 2013-02-09 alex ~~~~~~~~~~~~~~~~
221 7fce7191 2013-02-09 alex
222 7fce7191 2013-02-09 alex - AWAY
223 7fce7191 2013-02-09 alex AWAY [<message>]
224 7fce7191 2013-02-09 alex .
225 7fce7191 2013-02-09 alex Provides the server with a message to automatically send in reply to a
226 7fce7191 2013-02-09 alex PRIVMSG directed at the user, but not to a channel they are on.
227 7fce7191 2013-02-09 alex .
228 7fce7191 2013-02-09 alex If <message> is omitted, the away status is removed.
229 7fce7191 2013-02-09 alex
230 a8ecde25 2013-08-01 alex References:
231 a8ecde25 2013-08-01 alex - RFC 2812, 4.1 "Away"
232 a8ecde25 2013-08-01 alex
233 68cb1a8c 2013-01-02 alex - HELP
234 68cb1a8c 2013-01-02 alex HELP [<command>]
235 68cb1a8c 2013-01-02 alex .
236 68cb1a8c 2013-01-02 alex Show help information for a specific IRC <command>. The <command> name
237 68cb1a8c 2013-01-02 alex is case-insensitive.
238 68cb1a8c 2013-01-02 alex .
239 68cb1a8c 2013-01-02 alex Use the command "HELP Commands" to get a list of all available commands.
240 68cb1a8c 2013-01-02 alex
241 68cb1a8c 2013-01-02 alex The HELP command isn't specified by any RFC but implemented by most
242 68cb1a8c 2013-01-02 alex daemons. If no help text could be read in, ngIRCd outputs a list of all
243 68cb1a8c 2013-01-02 alex implemented commands when receiving a plain "HELP" command as well as
244 68cb1a8c 2013-01-02 alex on "HELP Commands".
245 68cb1a8c 2013-01-02 alex
246 68cb1a8c 2013-01-02 alex ngIRCd replies using "NOTICE" commands like ircd 2.10/2.11; other
247 68cb1a8c 2013-01-02 alex implementations are using numerics 704, 705, and 706.
248 68cb1a8c 2013-01-02 alex
249 68cb1a8c 2013-01-02 alex - MODE
250 a8ecde25 2013-08-01 alex MODE <nickname> [{+|-}<mode>[<mode>] [{+|-}<mode>[<mode>] [...]]]
251 a8ecde25 2013-08-01 alex MODE <channel> [{+|-}<mode>[<mode>] [<arg> [<arg> [...]]] [{+|-}<mode>[<mode>] [<arg> [<arg> [...]]] [...]]]
252 7fce7191 2013-02-09 alex .
253 a8ecde25 2013-08-01 alex Set and get user and channel modes.
254 7fce7191 2013-02-09 alex .
255 a8ecde25 2013-08-01 alex When no mode parameters are given, the currently set user or channel
256 a8ecde25 2013-08-01 alex modes are returned. Otherwise the modes are adjusted accordingly
257 a8ecde25 2013-08-01 alex and the changes will be reported back to the client.
258 a8ecde25 2013-08-01 alex .
259 fcdb5cf8 2013-08-05 fgsch All user and channel "modes" are indicated by single case-sensitive
260 a8ecde25 2013-08-01 alex characters.
261 a8ecde25 2013-08-01 alex .
262 a8ecde25 2013-08-01 alex Please note that a user can only get and set his own modes, and not
263 a8ecde25 2013-08-01 alex all user "levels" are allowed to change all channel modes ...
264 a8ecde25 2013-08-01 alex .
265 a8ecde25 2013-08-01 alex The mode parameters can become quite complex, especially when dealing
266 a8ecde25 2013-08-01 alex with channel modes that require additional arguments:
267 a8ecde25 2013-08-01 alex .
268 a8ecde25 2013-08-01 alex {+|-}<mode(s}> -- set or unset one or more modes.
269 a8ecde25 2013-08-01 alex +<mode(s)> -<mode(s)> -- set some modes and unset others.
270 a8ecde25 2013-08-01 alex +<modes> <arg1> <arg2> -- set (at least) two modes with arguments.
271 a8ecde25 2013-08-01 alex .
272 a8ecde25 2013-08-01 alex Some examples:
273 a8ecde25 2013-08-01 alex .
274 a8ecde25 2013-08-01 alex MODE nick +i -- set user to "invisible".
275 a8ecde25 2013-08-01 alex MODE #chan +tn -- set "topic lock" and "no external messages".
276 a8ecde25 2013-08-01 alex MODE #chan -t +l 50 -- remove "topic lock", set "user limit" to 50.
277 a8ecde25 2013-08-01 alex MODE #chan +ov nick1 nick2 -- set "channel op" and "voice" mode
278 a8ecde25 2013-08-01 alex to nick1 and nick2 in channel #chan.
279 a8ecde25 2013-08-01 alex .
280 a8ecde25 2013-08-01 alex A complete list of all modes supported by ngIRCd can be found online
281 a8ecde25 2013-08-01 alex here: <http://ngircd.barton.de/doc/Modes.txt>.
282 a8ecde25 2013-08-01 alex
283 a8ecde25 2013-08-01 alex References:
284 a8ecde25 2013-08-01 alex - RFC 2811, 4. "Channel Modes"
285 a8ecde25 2013-08-01 alex - RFC 2812, 3.1.5 "User mode message"
286 a8ecde25 2013-08-01 alex - RFC 2812, 3.2.3 "Channel mode message"
287 a8ecde25 2013-08-01 alex - <http://ngircd.barton.de/doc/Modes.txt>
288 a8ecde25 2013-08-01 alex - doc/Modes.txt
289 68cb1a8c 2013-01-02 alex
290 68cb1a8c 2013-01-02 alex - NOTICE
291 76dcb082 2013-07-19 alex NOTICE <target>[,<target>[,...]] <message>
292 7fce7191 2013-02-09 alex .
293 76dcb082 2013-07-19 alex Send a <message> to a given <target>, which can be a user or a
294 76dcb082 2013-07-19 alex channel, but DON'T report any error.
295 7fce7191 2013-02-09 alex .
296 76dcb082 2013-07-19 alex The "NOTICE" command exactly behaves like the "PRIVMSG" command, but
297 76dcb082 2013-07-19 alex doesn't report any errors it encounters (like an unknown <target>).
298 76dcb082 2013-07-19 alex Please see the help text of the "PRIVMSG" command for a detailed
299 76dcb082 2013-07-19 alex description of the parameters!
300 68cb1a8c 2013-01-02 alex
301 76dcb082 2013-07-19 alex References:
302 76dcb082 2013-07-19 alex - RFC 2812, 2.3.1 "Message format in Augmented BNF"
303 76dcb082 2013-07-19 alex - RFC 2812, 3.3 "Sending messages"
304 76dcb082 2013-07-19 alex - RFC 2812, 3.3.2 "Notice"
305 76dcb082 2013-07-19 alex
306 68cb1a8c 2013-01-02 alex - PRIVMSG
307 76dcb082 2013-07-19 alex PRIVMSG <target>[,<target>[,...]] <message>
308 68cb1a8c 2013-01-02 alex .
309 76dcb082 2013-07-19 alex Send a <message> to a given <target>, which can be a user or a
310 76dcb082 2013-07-19 alex channel, and report all errors.
311 68cb1a8c 2013-01-02 alex .
312 76dcb082 2013-07-19 alex The <target> must follow one of these syntax variants:
313 76dcb082 2013-07-19 alex .
314 76dcb082 2013-07-19 alex - <nickname>
315 76dcb082 2013-07-19 alex - <channel>
316 76dcb082 2013-07-19 alex - <user>[%<host>]@<server>
317 76dcb082 2013-07-19 alex - <user>%<host>
318 76dcb082 2013-07-19 alex - <nickname>!<user>@<host>
319 76dcb082 2013-07-19 alex .
320 76dcb082 2013-07-19 alex If the <target> is a user, a private message is sent directly to this
321 76dcb082 2013-07-19 alex user; if it resolves to a channel name, a public message is sent
322 76dcb082 2013-07-19 alex to all the members of that channel.
323 76dcb082 2013-07-19 alex .
324 76dcb082 2013-07-19 alex In addition, IRC Ops can use these two forms to specify the <target>:
325 76dcb082 2013-07-19 alex .
326 76dcb082 2013-07-19 alex - #<hostmask>
327 40bea95c 2016-01-04 alex - $<servermask>
328 76dcb082 2013-07-19 alex .
329 76dcb082 2013-07-19 alex The <mask> can contain the wildcard characters "*" and "?", but must
330 76dcb082 2013-07-19 alex contain at least one dot (".") and no wildcard after the last one.
331 76dcb082 2013-07-19 alex Then, the <message> is sent to all users matching this <mask>.
332 76dcb082 2013-07-19 alex .
333 76dcb082 2013-07-19 alex All warnings and errors are reported back to the initiator using
334 76dcb082 2013-07-19 alex numeric status codes, which is the only difference to the "NOTICE"
335 76dcb082 2013-07-19 alex command, which doesn't report back any errors or warnings at all.
336 76dcb082 2013-07-19 alex .
337 76dcb082 2013-07-19 alex Please note that clients often use "MSG" as an alias to PRIVMSG, and
338 76dcb082 2013-07-19 alex a command "QUERY <nick> [<message>]" to initiate private chats. Both
339 76dcb082 2013-07-19 alex are command extensions of the client and never sent to the server.
340 68cb1a8c 2013-01-02 alex
341 76dcb082 2013-07-19 alex References:
342 76dcb082 2013-07-19 alex - RFC 2812, 2.3.1 "Message format in Augmented BNF"
343 76dcb082 2013-07-19 alex - RFC 2812, 3.3 "Sending messages"
344 76dcb082 2013-07-19 alex - RFC 2812, 3.3.1 "Private messages"
345 68cb1a8c 2013-01-02 alex
346 68cb1a8c 2013-01-02 alex Status and Informational Commands
347 68cb1a8c 2013-01-02 alex ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
348 68cb1a8c 2013-01-02 alex
349 7fce7191 2013-02-09 alex - ADMIN
350 7fce7191 2013-02-09 alex ADMIN [<target>]
351 7fce7191 2013-02-09 alex .
352 7fce7191 2013-02-09 alex Show administrative information about an IRC server in the network.
353 7fce7191 2013-02-09 alex .
354 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
355 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
356 ac32d07a 2013-02-09 alex The server of the current connection is used when <target> is omitted.
357 7fce7191 2013-02-09 alex
358 7fce7191 2013-02-09 alex References:
359 7fce7191 2013-02-09 alex - RFC 2812, 3.4.9 "Admin command"
360 7fce7191 2013-02-09 alex
361 68cb1a8c 2013-01-02 alex - INFO
362 7fce7191 2013-02-09 alex INFO [<target>]
363 7fce7191 2013-02-09 alex .
364 7fce7191 2013-02-09 alex Show the version, birth & online time of an IRC server in the network.
365 7fce7191 2013-02-09 alex .
366 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
367 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
368 ac32d07a 2013-02-09 alex The server of the current connection is used when <target> is omitted.
369 68cb1a8c 2013-01-02 alex
370 7fce7191 2013-02-09 alex References:
371 7fce7191 2013-02-09 alex - RFC 2812, 3.4.10 "Info command"
372 7fce7191 2013-02-09 alex
373 68cb1a8c 2013-01-02 alex - ISON
374 7fce7191 2013-02-09 alex ISON <nickname> [<nickname> [...]]
375 7fce7191 2013-02-09 alex .
376 7fce7191 2013-02-09 alex Query online status of a list of nicknames. The server replies with
377 ac32d07a 2013-02-09 alex a list only containing nicknames actually connected to a server in
378 7fce7191 2013-02-09 alex the network. If no nicknames of the given list are online, an empty
379 7fce7191 2013-02-09 alex list is returned to the client requesting the information.
380 68cb1a8c 2013-01-02 alex
381 7fce7191 2013-02-09 alex Please note that "all" IRC daemons even parse separate nicknames in
382 7fce7191 2013-02-09 alex a single parameter (like ":nick1 nick2"), and therefore ngIRCd
383 cb3a4321 2015-09-06 alex implements this behavior, too.
384 7fce7191 2013-02-09 alex
385 7fce7191 2013-02-09 alex References:
386 7fce7191 2013-02-09 alex - RFC 2812, 4.9 "Ison message"
387 7fce7191 2013-02-09 alex
388 68cb1a8c 2013-01-02 alex - LINKS
389 13122bc9 2019-06-29 alex LINKS [[<target>] <mask>]
390 7fce7191 2013-02-09 alex .
391 7fce7191 2013-02-09 alex List all servers currently registered in the network matching <mask>,
392 7fce7191 2013-02-09 alex or all servers if <mask> has been omitted, as seen by the server
393 7fce7191 2013-02-09 alex specified by <target> or the local server when <target> is omitted.
394 7fce7191 2013-02-09 alex .
395 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
396 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
397 68cb1a8c 2013-01-02 alex
398 7fce7191 2013-02-09 alex References:
399 7fce7191 2013-02-09 alex - RFC 2812, 3.4.5 "Links message"
400 7fce7191 2013-02-09 alex
401 68cb1a8c 2013-01-02 alex - LUSERS
402 7fce7191 2013-02-09 alex LUSERS [<mask> [<target>]]
403 7fce7191 2013-02-09 alex .
404 7fce7191 2013-02-09 alex Return statistics about the number of clients (users, servers,
405 7fce7191 2013-02-09 alex services, ...) in the network as seen by the server <target>.
406 7fce7191 2013-02-09 alex .
407 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
408 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
409 ac32d07a 2013-02-09 alex The server of the current connection is used when <target> is omitted.
410 68cb1a8c 2013-01-02 alex
411 7fce7191 2013-02-09 alex Please note that ngIRCd ignores the <mask> parameter entirely: it
412 7fce7191 2013-02-09 alex is not possible to get information for a part of the network only.
413 68cb1a8c 2013-01-02 alex
414 7fce7191 2013-02-09 alex References:
415 7fce7191 2013-02-09 alex - RFC 2812, 3.4.2 "Lusers message"
416 7fce7191 2013-02-09 alex
417 68cb1a8c 2013-01-02 alex - MOTD
418 7fce7191 2013-02-09 alex MOTD [<target>]
419 7fce7191 2013-02-09 alex .
420 7fce7191 2013-02-09 alex Show the "Message of the Day" (MOTD) of an IRC server in the network.
421 7fce7191 2013-02-09 alex .
422 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
423 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
424 ac32d07a 2013-02-09 alex The server of the current connection is used when <target> is omitted.
425 68cb1a8c 2013-01-02 alex
426 7fce7191 2013-02-09 alex References:
427 7fce7191 2013-02-09 alex - RFC 2812, 3.4.1 "Motd message"
428 7fce7191 2013-02-09 alex
429 68cb1a8c 2013-01-02 alex - NAMES
430 7fce7191 2013-02-09 alex NAMES [<channel>[,<channel>[,...]] [<target>]]
431 7fce7191 2013-02-09 alex .
432 7fce7191 2013-02-09 alex Show the list of users that are members of a particular <channel>
433 7fce7191 2013-02-09 alex (and that are visible for the client requesting this information) as
434 7fce7191 2013-02-09 alex seen by the server <target>. More than one <channel> can be given
435 7fce7191 2013-02-09 alex separated by "," (but not whitespaces!).
436 7fce7191 2013-02-09 alex .
437 7fce7191 2013-02-09 alex If <channel> has been omitted, all visible users are shown, grouped
438 7fce7191 2013-02-09 alex by channel name, and all visible users not being members of at least
439 7fce7191 2013-02-09 alex one channel are shown as members of the pseudo channel "*".
440 7fce7191 2013-02-09 alex .
441 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
442 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
443 ac32d07a 2013-02-09 alex The server of the current connection is used when <target> is omitted.
444 68cb1a8c 2013-01-02 alex
445 7fce7191 2013-02-09 alex References:
446 7fce7191 2013-02-09 alex - RFC 2812, 3.2.5 "Names message"
447 7fce7191 2013-02-09 alex
448 68cb1a8c 2013-01-02 alex - STATS
449 7fce7191 2013-02-09 alex STATS [<query> [<target>]]
450 7fce7191 2013-02-09 alex .
451 7fce7191 2013-02-09 alex Show statistics and other information of type <query> of a particular
452 7fce7191 2013-02-09 alex IRC server in the network.
453 7fce7191 2013-02-09 alex .
454 ec5ab4fc 2013-09-24 alex The following <query> types are supported (case-insensitive where
455 ec5ab4fc 2013-09-24 alex applicable):
456 7fce7191 2013-02-09 alex .
457 7fce7191 2013-02-09 alex - g Network-wide bans ("G-Lines").
458 7fce7191 2013-02-09 alex - k Server-local bans ("K-Lines").
459 ec5ab4fc 2013-09-24 alex - L Link status (servers and user links).
460 ec5ab4fc 2013-09-24 alex - l Link status (servers and own link).
461 7fce7191 2013-02-09 alex - m Command usage count.
462 7fce7191 2013-02-09 alex - u Server uptime.
463 7fce7191 2013-02-09 alex .
464 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
465 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
466 ac32d07a 2013-02-09 alex The server of the current connection is used when <target> is omitted.
467 ec5ab4fc 2013-09-24 alex .
468 ec5ab4fc 2013-09-24 alex To use "STATS L" the user must be an IRC Operator.
469 68cb1a8c 2013-01-02 alex
470 7fce7191 2013-02-09 alex References:
471 7fce7191 2013-02-09 alex - RFC 2812, 3.4.4 "Stats message"
472 7fce7191 2013-02-09 alex
473 68cb1a8c 2013-01-02 alex - TIME
474 7fce7191 2013-02-09 alex TIME [<target>]
475 7fce7191 2013-02-09 alex .
476 7fce7191 2013-02-09 alex Show the local time of an IRC server in the network.
477 7fce7191 2013-02-09 alex .
478 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
479 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
480 ac32d07a 2013-02-09 alex The server of the current connection is used when <target> is omitted.
481 68cb1a8c 2013-01-02 alex
482 7fce7191 2013-02-09 alex References
483 7fce7191 2013-02-09 alex - RFC 2812, 3.4.6 "Time message"
484 7fce7191 2013-02-09 alex
485 68cb1a8c 2013-01-02 alex - TRACE
486 24183b1a 2013-08-02 alex TRACE [<target>]
487 7fce7191 2013-02-09 alex .
488 a8ecde25 2013-08-01 alex Find the route to a specific server and send information about its
489 a8ecde25 2013-08-01 alex peers. Each server that processes this command reports back to the
490 a8ecde25 2013-08-01 alex sender about it: the replies from pass-through servers form a chain
491 a8ecde25 2013-08-01 alex which shows the route to the destination.
492 24183b1a 2013-08-02 alex .
493 24183b1a 2013-08-02 alex <target> can be a server name, the nickname of a client connected to
494 24183b1a 2013-08-02 alex a specific server, or a mask matching a server name in the network.
495 24183b1a 2013-08-02 alex The server of the current connection is used when <target> is omitted.
496 68cb1a8c 2013-01-02 alex
497 a8ecde25 2013-08-01 alex References:
498 a8ecde25 2013-08-01 alex - RFC 2812, 3.4.8 "Trace message"
499 a8ecde25 2013-08-01 alex
500 68cb1a8c 2013-01-02 alex - USERHOST
501 7fce7191 2013-02-09 alex USERHOST <nickname> [<nickname> [...]]
502 7fce7191 2013-02-09 alex .
503 7fce7191 2013-02-09 alex Show flags and the hostmasks (<user>@<host>) of the <nickname>s,
504 ac32d07a 2013-02-09 alex separated by spaces. The following flags are used:
505 7fce7191 2013-02-09 alex .
506 7fce7191 2013-02-09 alex - "-" The client is "away" (the mode "+a" is set on this client).
507 7fce7191 2013-02-09 alex - "+" Client seems to be available, at least it isn't marked "away".
508 7fce7191 2013-02-09 alex - "*" The client is an IRC operator (the mode "+o" is set).
509 68cb1a8c 2013-01-02 alex
510 7fce7191 2013-02-09 alex References:
511 7fce7191 2013-02-09 alex - RFC 2812, 4.8 "Userhost message"
512 7fce7191 2013-02-09 alex
513 68cb1a8c 2013-01-02 alex - VERSION
514 7fce7191 2013-02-09 alex VERSION [<target>]
515 7fce7191 2013-02-09 alex .
516 7fce7191 2013-02-09 alex Show version information about a particular IRC server in the network.
517 7fce7191 2013-02-09 alex .
518 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to
519 7fce7191 2013-02-09 alex a specific server, or a mask matching a server name in the network.
520 ac32d07a 2013-02-09 alex The server of the current connection is used when <target> is omitted.
521 7fce7191 2013-02-09 alex .
522 7fce7191 2013-02-09 alex Please note: in normal operation, the version number ends in a dot
523 7fce7191 2013-02-09 alex (".", for example "ngIRCd-20.1."). If it ends in ".1" (for example
524 7fce7191 2013-02-09 alex "ngIRCd-20.1.1", same version than before!), the server is running in
525 7fce7191 2013-02-09 alex debug-mode; and if it ends in ".2", the "network sniffer" is active!
526 7fce7191 2013-02-09 alex Keep your privacy in mind ...
527 68cb1a8c 2013-01-02 alex
528 7fce7191 2013-02-09 alex References:
529 7fce7191 2013-02-09 alex - RFC 2812, 3.4.3 "Version message"
530 7fce7191 2013-02-09 alex
531 68cb1a8c 2013-01-02 alex - WHO
532 7fce7191 2013-02-09 alex WHO [<mask> ["o"]]
533 7fce7191 2013-02-09 alex .
534 7fce7191 2013-02-09 alex Show a list of users who match the <mask>, or all visible users when
535 7fce7191 2013-02-09 alex the <mask> has been omitted. (Special case: the <mask> "0" is
536 7fce7191 2013-02-09 alex equivalent to "*")
537 7fce7191 2013-02-09 alex .
538 7fce7191 2013-02-09 alex If the flag "o" is given, the server will only return information about
539 7fce7191 2013-02-09 alex IRC Operators.
540 68cb1a8c 2013-01-02 alex
541 7fce7191 2013-02-09 alex References:
542 7fce7191 2013-02-09 alex - RFC 2812, 3.6.1 "Who query"
543 7fce7191 2013-02-09 alex
544 68cb1a8c 2013-01-02 alex - WHOIS
545 7fce7191 2013-02-09 alex WHOIS [<target>] <mask>[,<mask>[,...]]
546 7fce7191 2013-02-09 alex .
547 7fce7191 2013-02-09 alex Query information about users matching the <mask> parameter(s) as seen
548 7fce7191 2013-02-09 alex by the server <target>; up to 3 <masks> are supported.
549 7fce7191 2013-02-09 alex .
550 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to a
551 7fce7191 2013-02-09 alex specific server, or a mask matching a server name in the network. The
552 ac32d07a 2013-02-09 alex server of the current connection is used when <target> is omitted.
553 68cb1a8c 2013-01-02 alex
554 7fce7191 2013-02-09 alex References:
555 7fce7191 2013-02-09 alex - RFC 2812, 3.6.2 "Whois query"
556 7fce7191 2013-02-09 alex
557 68cb1a8c 2013-01-02 alex - WHOWAS
558 7fce7191 2013-02-09 alex WHOWAS <nickname>[,<nickname>[,...]] [<count> [<target>]]
559 7fce7191 2013-02-09 alex .
560 7fce7191 2013-02-09 alex Query information about nicknames no longer in use in the network,
561 7fce7191 2013-02-09 alex either because of nickname changes or disconnects. The history is
562 7fce7191 2013-02-09 alex searched backwards, returning the most recent entry first. If there
563 7fce7191 2013-02-09 alex are multiple entries, up to <count> entries will be shown (or all of
564 7fce7191 2013-02-09 alex them, if no <count> has been given).
565 7fce7191 2013-02-09 alex .
566 7fce7191 2013-02-09 alex <target> can be a server name, the nickname of a client connected to a
567 7fce7191 2013-02-09 alex specific server, or a mask matching a server name in the network. The
568 ac32d07a 2013-02-09 alex server of the current connection is used when <target> is omitted.
569 68cb1a8c 2013-01-02 alex
570 7fce7191 2013-02-09 alex References:
571 7fce7191 2013-02-09 alex - RFC 2812, 3.6.3 "Whowas"
572 68cb1a8c 2013-01-02 alex
573 7fce7191 2013-02-09 alex
574 68cb1a8c 2013-01-02 alex Channel Commands
575 68cb1a8c 2013-01-02 alex ~~~~~~~~~~~~~~~~
576 68cb1a8c 2013-01-02 alex
577 68cb1a8c 2013-01-02 alex - INVITE
578 be08349d 2013-02-24 alex INVITE <nickname> <channel>
579 7fce7191 2013-02-09 alex .
580 be08349d 2013-02-24 alex Invite <nickname> to join channel <channel>.
581 7fce7191 2013-02-09 alex .
582 be08349d 2013-02-24 alex <channel> does not have to exist, but if it does, only members of the
583 be08349d 2013-02-24 alex channel are allowed to invite other users. If the channel mode "+i"
584 be08349d 2013-02-24 alex is set, only channel "half-ops" (and above) may invite other clients,
585 be08349d 2013-02-24 alex and if channel mode "+V" is set, nobody can invite other users.
586 68cb1a8c 2013-01-02 alex
587 be08349d 2013-02-24 alex References:
588 be08349d 2013-02-24 alex - RFC 2812, 3.2.7 "Invite message"
589 be08349d 2013-02-24 alex
590 68cb1a8c 2013-01-02 alex - JOIN
591 a8ecde25 2013-08-01 alex JOIN {<channel>[,<channel>[,...]] [<key>[,<key>[,...]]] | 0}
592 a8ecde25 2013-08-01 alex .
593 a8ecde25 2013-08-01 alex Makes the client join the <channel> (comma-separated list), specifying
594 a8ecde25 2013-08-01 alex the channel keys ("passwords"). A <channel-key> is only needed if the
595 a8ecde25 2013-08-01 alex <channel> has the mode "+k" set.
596 7fce7191 2013-02-09 alex .
597 7fce7191 2013-02-09 alex If the channel(s) do not exist, then they will be created.
598 a8ecde25 2013-08-01 alex .
599 a8ecde25 2013-08-01 alex Using "JOIN 0" parts all channels at once.
600 68cb1a8c 2013-01-02 alex
601 a8ecde25 2013-08-01 alex References:
602 a8ecde25 2013-08-01 alex - RFC 2812, 3.2.1 "Join message" (client protocol)
603 a8ecde25 2013-08-01 alex - RFC 2813, 4.2.1 "Join message" (server protocol)
604 a8ecde25 2013-08-01 alex
605 68cb1a8c 2013-01-02 alex - KICK
606 b25fd8a9 2013-02-24 alex KICK <channel>[,<channel>[,...]] <nickname>[,<nickname>[,...]] [<reason>]
607 7fce7191 2013-02-09 alex .
608 b25fd8a9 2013-02-24 alex Remove users(s) with <nickname>(s) from <channel>(s).
609 7fce7191 2013-02-09 alex .
610 b25fd8a9 2013-02-24 alex There must be either exactly one <channel> parameter and multiple
611 b25fd8a9 2013-02-24 alex <nickname> parameters, or as many <channel> parameters as there are
612 b25fd8a9 2013-02-24 alex <nickname> parameters. The <reason> is shown to the users being
613 b25fd8a9 2013-02-24 alex kicked, and the nickname of the current user is used when <reason>
614 b25fd8a9 2013-02-24 alex is omitted.
615 68cb1a8c 2013-01-02 alex
616 b25fd8a9 2013-02-24 alex References:
617 b25fd8a9 2013-02-24 alex - RFC 2812, 3.2.8 "Kick command"
618 b25fd8a9 2013-02-24 alex
619 68cb1a8c 2013-01-02 alex - LIST
620 13122bc9 2019-06-29 alex LIST [<mask>[,<mask>[,...]] [<server>]]
621 7fce7191 2013-02-09 alex .
622 13122bc9 2019-06-29 alex List all visible channels matching the <mask> (comma-separated list),
623 13122bc9 2019-06-29 alex or all channels when no <mask> was specified.
624 a8ecde25 2013-08-01 alex .
625 7fce7191 2013-02-09 alex If <server> is given, the command will be forwarded to <server> for
626 7fce7191 2013-02-09 alex evaluation.
627 68cb1a8c 2013-01-02 alex
628 a8ecde25 2013-08-01 alex References:
629 a8ecde25 2013-08-01 alex - RFC 2812, 3.2.6 "List message"
630 a8ecde25 2013-08-01 alex
631 a8ecde25 2013-08-01 alex - PART
632 a8ecde25 2013-08-01 alex PART <channel>[,<channel>[,...]] [<part-message>]
633 a8ecde25 2013-08-01 alex .
634 a8ecde25 2013-08-01 alex Leave <channel> (comma-separated list), optionally with sending a
635 a8ecde25 2013-08-01 alex <part-message> to all the other channel members.
636 68cb1a8c 2013-01-02 alex
637 a8ecde25 2013-08-01 alex References:
638 a8ecde25 2013-08-01 alex - RFC 2812, 3.2.2 "Part message"
639 a8ecde25 2013-08-01 alex
640 68cb1a8c 2013-01-02 alex - TOPIC
641 a8ecde25 2013-08-01 alex TOPIC <channel> [<topic>]
642 7fce7191 2013-02-09 alex .
643 fcdb5cf8 2013-08-05 fgsch Change or view the topic of a channel.
644 7fce7191 2013-02-09 alex .
645 a8ecde25 2013-08-01 alex The topic for channel <channel> is returned if there is no <topic>
646 a8ecde25 2013-08-01 alex given. If the <topic> parameter is present, the topic for that
647 a8ecde25 2013-08-01 alex channel will be changed, if this action is allowed for the user
648 a8ecde25 2013-08-01 alex requesting it. If the <topic> parameter is an empty string, the
649 a8ecde25 2013-08-01 alex topic for that channel will be removed.
650 68cb1a8c 2013-01-02 alex
651 a8ecde25 2013-08-01 alex References:
652 a8ecde25 2013-08-01 alex - RFC 2812, 3.2.4 "Topic message"
653 68cb1a8c 2013-01-02 alex
654 a8ecde25 2013-08-01 alex
655 68cb1a8c 2013-01-02 alex Administrative Commands
656 68cb1a8c 2013-01-02 alex ~~~~~~~~~~~~~~~~~~~~~~~
657 68cb1a8c 2013-01-02 alex
658 7fce7191 2013-02-09 alex - CONNECT
659 adc8d4f6 2013-08-02 alex CONNECT <server> [<port> [<remote-server> [<my-pwd> <peer-pwd>]]]
660 68cb1a8c 2013-01-02 alex .
661 adc8d4f6 2013-08-02 alex Instructs the current server, or <remote-server> if specified,
662 adc8d4f6 2013-08-02 alex to connect to the server named <server>, which must be configured
663 adc8d4f6 2013-08-02 alex in the server configuration file.
664 7fce7191 2013-02-09 alex .
665 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator. To establish
666 adc8d4f6 2013-08-02 alex a connection on a <remote-server>, you must have remote IRC operator
667 adc8d4f6 2013-08-02 alex privileges.
668 adc8d4f6 2013-08-02 alex .
669 adc8d4f6 2013-08-02 alex If <port>, <my-pwd> and <peer-pwd> are given, these values override
670 adc8d4f6 2013-08-02 alex the ones specified in the server configuration file.
671 adc8d4f6 2013-08-02 alex
672 adc8d4f6 2013-08-02 alex References:
673 adc8d4f6 2013-08-02 alex - RFC 2812, 3.4.7 "Connect message"
674 68cb1a8c 2013-01-02 alex
675 68cb1a8c 2013-01-02 alex - DIE
676 e5cdd61f 2013-09-04 alex DIE [<message>]
677 7fce7191 2013-02-09 alex .
678 7fce7191 2013-02-09 alex Instructs the server to shut down.
679 adc8d4f6 2013-08-02 alex .
680 e5cdd61f 2013-09-04 alex The optional (and non-standard) <message> text is sent to each client
681 e5cdd61f 2013-09-04 alex connected to this server before all connections are closed.
682 e5cdd61f 2013-09-04 alex .
683 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator.
684 68cb1a8c 2013-01-02 alex
685 adc8d4f6 2013-08-02 alex References:
686 adc8d4f6 2013-08-02 alex - RFC 2812, 4.3 "Die message"
687 adc8d4f6 2013-08-02 alex
688 68cb1a8c 2013-01-02 alex - DISCONNECT
689 adc8d4f6 2013-08-02 alex DISCONNECT <server>
690 7fce7191 2013-02-09 alex .
691 adc8d4f6 2013-08-02 alex Disconnect and disable a locally linked server.
692 adc8d4f6 2013-08-02 alex .
693 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator.
694 68cb1a8c 2013-01-02 alex
695 adc8d4f6 2013-08-02 alex References:
696 adc8d4f6 2013-08-02 alex - This command is not specified in the IRC RFCs, it is an extension
697 adc8d4f6 2013-08-02 alex of ngIRCd.
698 adc8d4f6 2013-08-02 alex
699 68cb1a8c 2013-01-02 alex - GLINE
700 adc8d4f6 2013-08-02 alex GLINE <nick!user@hostmask> [<timeout> :<reason>]
701 7fce7191 2013-02-09 alex .
702 adc8d4f6 2013-08-02 alex This command provides timed G-Lines (network-wide bans).
703 adc8d4f6 2013-08-02 alex .
704 7fce7191 2013-02-09 alex If a client matches a G-Line, it cannot connect to any server on
705 fcdb5cf8 2013-08-05 fgsch the IRC network for <timeout> seconds. When <timeout> is 0, it make
706 adc8d4f6 2013-08-02 alex the G-Line permanent.
707 7fce7191 2013-02-09 alex .
708 adc8d4f6 2013-08-02 alex If no <timeout> and no <reason> is given, the G-Line is removed.
709 adc8d4f6 2013-08-02 alex .
710 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator.
711 adc8d4f6 2013-08-02 alex .
712 adc8d4f6 2013-08-02 alex "STATS g" can be used to list all currently active G-Lines.
713 68cb1a8c 2013-01-02 alex
714 adc8d4f6 2013-08-02 alex References:
715 adc8d4f6 2013-08-02 alex - This command is not specified in the IRC RFCs, it is an extension
716 adc8d4f6 2013-08-02 alex of ngIRCd.
717 adc8d4f6 2013-08-02 alex
718 68cb1a8c 2013-01-02 alex - KILL
719 2fea782e 2013-03-09 alex KILL <nickname> <reason>
720 7fce7191 2013-02-09 alex .
721 2fea782e 2013-03-09 alex Forcibly remove all users with a given <nickname> from the IRC
722 2fea782e 2013-03-09 alex network and display the given <reason> to them.
723 2fea782e 2013-03-09 alex .
724 2fea782e 2013-03-09 alex This command is used internally between servers, too, for example
725 2fea782e 2013-03-09 alex to disconnect duplicate <nickname>'s after a "net split".
726 adc8d4f6 2013-08-02 alex .
727 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator.
728 68cb1a8c 2013-01-02 alex
729 2fea782e 2013-03-09 alex References:
730 2fea782e 2013-03-09 alex - RFC 2812, 3.7.1 "Kill message"
731 2fea782e 2013-03-09 alex
732 68cb1a8c 2013-01-02 alex - KLINE
733 adc8d4f6 2013-08-02 alex KLINE <nick!user@hostmask> [<timeout> :<reason>]
734 7fce7191 2013-02-09 alex .
735 adc8d4f6 2013-08-02 alex This command provides timed K-Lines (server-local bans).
736 7fce7191 2013-02-09 alex .
737 adc8d4f6 2013-08-02 alex If a client matches a K-Line, it cannot connect to this server for
738 fcdb5cf8 2013-08-05 fgsch <timeout> seconds. When <timeout> is 0, it makes the K-Line permanent.
739 adc8d4f6 2013-08-02 alex .
740 adc8d4f6 2013-08-02 alex If no <timeout> and no <reason> is given, the K-Line is removed.
741 adc8d4f6 2013-08-02 alex .
742 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator.
743 adc8d4f6 2013-08-02 alex .
744 adc8d4f6 2013-08-02 alex "STATS k" can be used to list all currently active K-Lines.
745 68cb1a8c 2013-01-02 alex
746 adc8d4f6 2013-08-02 alex References:
747 adc8d4f6 2013-08-02 alex - This command is not specified in the IRC RFCs, it is an extension
748 adc8d4f6 2013-08-02 alex of ngIRCd.
749 adc8d4f6 2013-08-02 alex
750 68cb1a8c 2013-01-02 alex - OPER
751 adc8d4f6 2013-08-02 alex OPER <name> <password>
752 7fce7191 2013-02-09 alex .
753 adc8d4f6 2013-08-02 alex Authenticates a user named <name> as an IRC operator on the current
754 adc8d4f6 2013-08-02 alex server/network.
755 adc8d4f6 2013-08-02 alex .
756 adc8d4f6 2013-08-02 alex This operator <name> must be configured in the server configuration.
757 adc8d4f6 2013-08-02 alex .
758 adc8d4f6 2013-08-02 alex Please note that <name> is NOT related to a nickname at all!
759 68cb1a8c 2013-01-02 alex
760 adc8d4f6 2013-08-02 alex References:
761 adc8d4f6 2013-08-02 alex - RFC 2812, 3.1.4 "Oper message"
762 adc8d4f6 2013-08-02 alex
763 68cb1a8c 2013-01-02 alex - REHASH
764 7fce7191 2013-02-09 alex REHASH
765 7fce7191 2013-02-09 alex .
766 7fce7191 2013-02-09 alex Causes the server to re-read and re-process its configuration file(s).
767 adc8d4f6 2013-08-02 alex .
768 adc8d4f6 2013-08-02 alex While rehashing, no new connections are accepted, but all already
769 adc8d4f6 2013-08-02 alex established connections stay connected.
770 adc8d4f6 2013-08-02 alex .
771 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator.
772 68cb1a8c 2013-01-02 alex
773 adc8d4f6 2013-08-02 alex References:
774 adc8d4f6 2013-08-02 alex - RFC 2812, 4.2 "Rehash message"
775 adc8d4f6 2013-08-02 alex
776 68cb1a8c 2013-01-02 alex - RESTART
777 7fce7191 2013-02-09 alex RESTART
778 7fce7191 2013-02-09 alex .
779 7fce7191 2013-02-09 alex Restart the server.
780 adc8d4f6 2013-08-02 alex .
781 adc8d4f6 2013-08-02 alex While restarting, all connections are reset and no new connections
782 adc8d4f6 2013-08-02 alex are accepted.
783 adc8d4f6 2013-08-02 alex .
784 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator.
785 68cb1a8c 2013-01-02 alex
786 adc8d4f6 2013-08-02 alex References:
787 adc8d4f6 2013-08-02 alex - RFC 2812, 4.4 "Restart message"
788 adc8d4f6 2013-08-02 alex
789 7fce7191 2013-02-09 alex - WALLOPS
790 7fce7191 2013-02-09 alex WALLOPS <message>
791 7fce7191 2013-02-09 alex .
792 7fce7191 2013-02-09 alex Sends <message> to all users with user mode "+w".
793 adc8d4f6 2013-08-02 alex .
794 adc8d4f6 2013-08-02 alex To use this command, the user must be an IRC Operator.
795 68cb1a8c 2013-01-02 alex
796 adc8d4f6 2013-08-02 alex References:
797 adc8d4f6 2013-08-02 alex - RFC 2812, 4.7 "Operwall message"
798 7fce7191 2013-02-09 alex
799 68cb1a8c 2013-01-02 alex IRC Service Commands
800 7fce7191 2013-02-09 alex ~~~~~~~~~~~~~~~~~~~~
801 68cb1a8c 2013-01-02 alex
802 68cb1a8c 2013-01-02 alex - SERVICE
803 659d1264 2013-07-30 alex SERVICE <name> <reserved1> <distribution> <type> <reserved2> <info>
804 659d1264 2013-07-30 alex SERVICE <name> <servertoken> <distribution> {<type>|+<modes>} <hops> <info>
805 659d1264 2013-07-30 alex .
806 659d1264 2013-07-30 alex Register a new service in the network.
807 659d1264 2013-07-30 alex .
808 659d1264 2013-07-30 alex The first form is used by directly linked services and isn't supported
809 659d1264 2013-07-30 alex by ngIRCd at the moment. The second form announces services connected
810 659d1264 2013-07-30 alex to remote "pseudo-servers" ("services hubs").
811 659d1264 2013-07-30 alex .
812 659d1264 2013-07-30 alex The <distribution> and <type> parameters are ignored by ngIRCd.
813 659d1264 2013-07-30 alex
814 659d1264 2013-07-30 alex References:
815 659d1264 2013-07-30 alex - RFC 2812, 3.1.6 "Service message"
816 659d1264 2013-07-30 alex - RFC 2813, 4.1.4 "Service message"
817 68cb1a8c 2013-01-02 alex
818 68cb1a8c 2013-01-02 alex - SERVLIST
819 7fce7191 2013-02-09 alex SERVLIST [<mask> [<type>]]
820 7fce7191 2013-02-09 alex .
821 7fce7191 2013-02-09 alex List all IRC services currently registered in the network.
822 7fce7191 2013-02-09 alex .
823 7fce7191 2013-02-09 alex The optional <mask> and <type> parameters can be used to limit the
824 7fce7191 2013-02-09 alex listing to services matching the <mask> and that are of type <type>.
825 7fce7191 2013-02-09 alex .
826 7fce7191 2013-02-09 alex Please note that ngIRCd doesn't use any service types at the moment
827 7fce7191 2013-02-09 alex and therefore all services are of type "0".
828 68cb1a8c 2013-01-02 alex
829 7fce7191 2013-02-09 alex References:
830 7fce7191 2013-02-09 alex - RFC 2812, 3.5.1 "Servlist message"
831 7fce7191 2013-02-09 alex
832 68cb1a8c 2013-01-02 alex - SQUERY
833 76dcb082 2013-07-19 alex SQUERY <target>[,<target>[,...]] <message>
834 76dcb082 2013-07-19 alex .
835 76dcb082 2013-07-19 alex Send a <message> to a given <target> IRC service, and report all
836 76dcb082 2013-07-19 alex errors.
837 76dcb082 2013-07-19 alex .
838 76dcb082 2013-07-19 alex The "SQUERY" command exactly behaves like the "PRIVMSG" command, but
839 76dcb082 2013-07-19 alex enforces that the <target> of the <message> is an IRC service.
840 76dcb082 2013-07-19 alex Please see the help text of the "PRIVMSG" command for a detailed
841 76dcb082 2013-07-19 alex description of the parameters!
842 76dcb082 2013-07-19 alex .
843 76dcb082 2013-07-19 alex If a user wants to interact with IRC services, he should use "SQUERY"
844 76dcb082 2013-07-19 alex instead of "PRIVMSG" or "NOTICE": only "SQUERY makes sure that no
845 76dcb082 2013-07-19 alex regular user, which uses the nickname of an IRC service, receives
846 76dcb082 2013-07-19 alex the command in error, for example during a "net split"!
847 68cb1a8c 2013-01-02 alex
848 76dcb082 2013-07-19 alex References:
849 76dcb082 2013-07-19 alex - RFC 2812, 2.3.1 "Message format in Augmented BNF"
850 76dcb082 2013-07-19 alex - RFC 2812, 3.3 "Sending messages"
851 76dcb082 2013-07-19 alex - RFC 2812, 3.3.2 "Notice"
852 76dcb082 2013-07-19 alex
853 68cb1a8c 2013-01-02 alex - SVSNICK
854 659d1264 2013-07-30 alex SVSNICK <oldnick> <newnick>
855 659d1264 2013-07-30 alex .
856 659d1264 2013-07-30 alex Forcefully change foreign user nicknames. This command is allowed
857 659d1264 2013-07-30 alex for servers only.
858 659d1264 2013-07-30 alex .
859 659d1264 2013-07-30 alex The "SVSNICK" command is forwarded to the server to which the user
860 659d1264 2013-07-30 alex with nickname <oldnick> is connected to, which in turn generates a
861 659d1264 2013-07-30 alex regular "NICK" command that then is sent to the client, so no special
862 659d1264 2013-07-30 alex support in the client software is required.
863 68cb1a8c 2013-01-02 alex
864 659d1264 2013-07-30 alex References:
865 659d1264 2013-07-30 alex - ngIRCd GIT commit e3f300d3231f
866 68cb1a8c 2013-01-02 alex
867 659d1264 2013-07-30 alex
868 68cb1a8c 2013-01-02 alex Server Protocol Commands
869 68cb1a8c 2013-01-02 alex ~~~~~~~~~~~~~~~~~~~~~~~~
870 68cb1a8c 2013-01-02 alex
871 68cb1a8c 2013-01-02 alex - CHANINFO
872 7fce7191 2013-02-09 alex CHANINFO <channel> +<modes> [[<key> <limit>] <topic>]
873 7fce7191 2013-02-09 alex .
874 7fce7191 2013-02-09 alex CHANINFO is used by servers to inform each other about a channel:
875 7fce7191 2013-02-09 alex its modes, channel key, user limits and its topic.
876 07cb8ed9 2020-06-11 alex .
877 07cb8ed9 2020-06-11 alex Note: even when <modes> don't include "k" (key) or "l" (limit), both
878 07cb8ed9 2020-06-11 alex parameters must be given when used; use "*" for "no key" and 0 for
879 07cb8ed9 2020-06-11 alex "no limit" for the unused parameter in this case.
880 61a6691b 2013-08-02 alex .
881 61a6691b 2013-08-02 alex The CHANINFO command is allowed on server-links only.
882 fef10f59 2013-08-01 alex
883 fef10f59 2013-08-01 alex References:
884 fef10f59 2013-08-01 alex - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
885 fef10f59 2013-08-01 alex - IRC+, doc/Protocol.txt
886 68cb1a8c 2013-01-02 alex
887 68cb1a8c 2013-01-02 alex - ERROR
888 68cb1a8c 2013-01-02 alex ERROR [<message> [<> [...]]]
889 68cb1a8c 2013-01-02 alex .
890 13122bc9 2019-06-29 alex Inform a client or a server about an error condition. The first
891 720eb874 2013-07-18 alex parameter, if given, is logged by the server receiving the message,
892 720eb874 2013-07-18 alex all other parameters are silently ignored.
893 68cb1a8c 2013-01-02 alex .
894 720eb874 2013-07-18 alex This command is silently ignored on non-server and non-service links
895 720eb874 2013-07-18 alex and shouldn't be used by regular IRC clients.
896 720eb874 2013-07-18 alex .
897 720eb874 2013-07-18 alex The ERROR message is also sent before terminating a regular client
898 720eb874 2013-07-18 alex connection.
899 68cb1a8c 2013-01-02 alex
900 720eb874 2013-07-18 alex References:
901 720eb874 2013-07-18 alex - RFC 2812, 3.7.4 "Error message"
902 720eb874 2013-07-18 alex
903 7fce7191 2013-02-09 alex - METADATA
904 7fce7191 2013-02-09 alex METADATA <target> <key> <value>
905 7fce7191 2013-02-09 alex .
906 7fce7191 2013-02-09 alex The METADATA command is used on server-links to update "metadata"
907 7fce7191 2013-02-09 alex information of clients, like the hostname, the info text ("real name"),
908 7fce7191 2013-02-09 alex or the user name.
909 61a6691b 2013-08-02 alex .
910 61a6691b 2013-08-02 alex The METADATA command is allowed on server-links only.
911 7fce7191 2013-02-09 alex
912 fef10f59 2013-08-01 alex References:
913 fef10f59 2013-08-01 alex - IRC+, <http://ngircd.barton.de/doc/Protocol.txt>
914 fef10f59 2013-08-01 alex - IRC+, doc/Protocol.txt
915 fef10f59 2013-08-01 alex
916 68cb1a8c 2013-01-02 alex - NJOIN
917 61a6691b 2013-08-02 alex NJOIN <channel> [<mode>]<nick>[,[<mode>]<nick>[,...]]
918 61a6691b 2013-08-02 alex .
919 fcdb5cf8 2013-08-05 fgsch The NJOIN command is used on server-links to add users with <nick>
920 61a6691b 2013-08-02 alex and <mode> to a <channel> while peering.
921 61a6691b 2013-08-02 alex .
922 61a6691b 2013-08-02 alex The NJOIN command is allowed on server-links only.
923 61a6691b 2013-08-02 alex
924 61a6691b 2013-08-02 alex References:
925 61a6691b 2013-08-02 alex - RFC 2813, 4.2.2 "Njoin message"
926 68cb1a8c 2013-01-02 alex
927 68cb1a8c 2013-01-02 alex - SERVER
928 61a6691b 2013-08-02 alex SERVER <servername> <info>
929 61a6691b 2013-08-02 alex SERVER <servername> <hopcount> <info>
930 61a6691b 2013-08-02 alex SERVER <servername> <hopcount> <token> <info>
931 61a6691b 2013-08-02 alex .
932 61a6691b 2013-08-02 alex The first form registers the local connection as a new server in the
933 61a6691b 2013-08-02 alex network, the second (RFC 1459) and third (RFC 2812) form announce a
934 61a6691b 2013-08-02 alex new remote server in the network.
935 61a6691b 2013-08-02 alex .
936 61a6691b 2013-08-02 alex The SERVER command is allowed on unregistered or server-links only.
937 61a6691b 2013-08-02 alex
938 61a6691b 2013-08-02 alex References:
939 61a6691b 2013-08-02 alex - RFC 1459, 4.1.4 "Server message"
940 61a6691b 2013-08-02 alex - RFC 2813, 4.1.2 "Server message"
941 68cb1a8c 2013-01-02 alex
942 68cb1a8c 2013-01-02 alex - SQUIT
943 61a6691b 2013-08-02 alex SQUIT <server> <comment>
944 7fce7191 2013-02-09 alex .
945 7fce7191 2013-02-09 alex Disconnects an IRC Server from the network.
946 61a6691b 2013-08-02 alex .
947 61a6691b 2013-08-02 alex This command is used on server-links, but can be used by IRC Operators
948 61a6691b 2013-08-02 alex to forcefully disconnect servers from the network, too.
949 68cb1a8c 2013-01-02 alex
950 61a6691b 2013-08-02 alex References:
951 61a6691b 2013-08-02 alex - RFC 2812, 3.1.8 "Squit"
952 61a6691b 2013-08-02 alex - RFC 2813, 4.1.6 "Server quit message"
953 68cb1a8c 2013-01-02 alex
954 68cb1a8c 2013-01-02 alex Dummy Commands
955 68cb1a8c 2013-01-02 alex ~~~~~~~~~~~~~~
956 68cb1a8c 2013-01-02 alex
957 68cb1a8c 2013-01-02 alex - SUMMON
958 7fce7191 2013-02-09 alex SUMMON <user> [<target> [<channel>]]
959 7fce7191 2013-02-09 alex .
960 7fce7191 2013-02-09 alex This command was intended to call people into IRC who are directly
961 7fce7191 2013-02-09 alex connected to the terminal console of the IRC server -- but is
962 7fce7191 2013-02-09 alex deprecated today. Therefore ngIRCd doesn't really implement this
963 7fce7191 2013-02-09 alex command and always returns an error message, regardless of the
964 7fce7191 2013-02-09 alex parameters given.
965 68cb1a8c 2013-01-02 alex
966 7fce7191 2013-02-09 alex References:
967 7fce7191 2013-02-09 alex - RFC 2812, 4.5 "Summon message"
968 7fce7191 2013-02-09 alex
969 68cb1a8c 2013-01-02 alex - USERS
970 7fce7191 2013-02-09 alex USERS [<target>]
971 7fce7191 2013-02-09 alex .
972 7fce7191 2013-02-09 alex This command was intended to list users directly logged in into the
973 7fce7191 2013-02-09 alex console of the IRC server -- but is deprecated today. Therefore ngIRCd
974 7fce7191 2013-02-09 alex doesn't really implement this command and always returns an error
975 7fce7191 2013-02-09 alex message, regardless of the parameters given.
976 68cb1a8c 2013-01-02 alex
977 7fce7191 2013-02-09 alex References:
978 7fce7191 2013-02-09 alex - RFC 2812, 4.6 "Users"
979 7fce7191 2013-02-09 alex
980 68cb1a8c 2013-01-02 alex - GET
981 61a6691b 2013-08-02 alex GET [...]
982 61a6691b 2013-08-02 alex .
983 61a6691b 2013-08-02 alex Fake HTTP GET command. When received, the connection is shut down
984 61a6691b 2013-08-02 alex immediately again to protect against crazy web browsers ...
985 68cb1a8c 2013-01-02 alex
986 61a6691b 2013-08-02 alex References:
987 61a6691b 2013-08-02 alex - ngIRCd GIT commit 33e8c2480649
988 61a6691b 2013-08-02 alex
989 68cb1a8c 2013-01-02 alex - POST
990 61a6691b 2013-08-02 alex POST [...]
991 61a6691b 2013-08-02 alex .
992 61a6691b 2013-08-02 alex Fake HTTP POST command. When received, the connection is shut down
993 61a6691b 2013-08-02 alex immediately again to protect against crazy web browsers ...
994 61a6691b 2013-08-02 alex
995 61a6691b 2013-08-02 alex References:
996 61a6691b 2013-08-02 alex - ngIRCd GIT commit 33e8c2480649