# IRC Services Manual

## 4. Services command reference

4-1. NickServ commands

4-2. ChanServ commands

4-3. MemoServ commands

4-4. OperServ commands

4-5. StatServ commands

4-6. Command index

Note: This section is based on the help messages included in IRC Services itself, which can be accessed by typing "`/msg pseudoclient-name HELP`" in IRC.

Previous section: Overview of Services features | Table of Contents | Next section: Importing and exporting databases

### 4-1. NickServ commands

REGISTER

Syntax:
  `REGISTER password [E-mail]`

Registers your nickname in the NickServ database. Once your nickname is registered, you can use the `SET` and `ACCESS` commands to configure your nickname's settings as you like them. Make sure you remember the password you use when registering; you'll need it to make changes to your nickname later. (Note that case matters! `FIDO`, `Fido`, and `fido` are all different passwords!)

You may include an E-mail address when registering your nickname; you may also set one later using the `SET EMAIL` command. (If the `NSRequireEmail` is set, the E-mail address is mandatory.)

Guidelines on choosing passwords:

Passwords should not be easily guessable. For example, using your real name as a password is a bad idea. Using your nickname as a password is a much worse idea and, in fact, NickServ will not allow it. Also, short passwords are vulnerable to trial-and-error searches, so you should choose a password at least 5 characters long.

IDENTIFY

Syntax:
  `IDENTIFY password`

Tells NickServ that you are really the owner of this nickname. Many commands require you to authenticate yourself with this command before you use them. The password should be the same one you sent with the `REGISTER` command.

DROP

Syntax:
  `DROP password`

De-registers (drops) your nickname from the NickServ database. A nickname that has been dropped is free for anyone to re-register.

Note that when you drop a nickname, all nicknames linked to it will be dropped as well. To remove a single linked nickname, use the `UNLINK` command.

To prevent accidental use of this command, you must enter your password in order to drop your nickname.

DROPNICK

Syntax:
  `DROPNICK nickname`

Drops the given nickname from the NickServ database, as well as any linked nicknames.

Limited to Services admins.

DROPEMAIL

Syntax:
  `DROPEMAIL pattern`
  `DROPEMAIL-CONFIRM pattern`

Drops all nicknames with an E-mail address matching the given `pattern`. If `pattern` is the single character "`-`", drops all nicknames without an E-mail address.

To prevent accidentally dropping nicknames via this command, it must be given twice: first using the `DROPEMAIL` command name, then using `DROPEMAIL-CONFIRM` with the same pattern. The `DROPEMAIL-CONFIRM` command must be given within 10 minutes of (by default, changeable via the `NSDropEmailExpire` option in `modules.conf`) and by the same person who gave the `DROPEMAIL` command. If more than 4 `DROPEMAIL` commands are given in a row, the oldest will be discarded and no longer recognized for a `DROPEMAIL-CONFIRM` command.

Limited to Services admins.

AUTH (requires the `nickserv/mail-auth` module)

Syntax:
  `AUTH code`

Authenticates registration or change of E-mail for a nickname. To ensure that your E-mail address is correct, NickServ will send an message containing an authentication code to the E-mail address given when you register your nickname or change your E-mail address with the `SET EMAIL` command. This command allows you to confirm that you have received the message and continue using your nickname normally. Replace `code` in the command with the nine-digit authentication code given in the E-mail message.

SENDAUTH (requires the `nickserv/mail-auth` module)

Syntax:
  `SENDAUTH`

Sends you a copy of the authentication code for your nickname after a `REGISTER` or `SET EMAIL`. If you accidentally delete or otherwise lose the message with the authentication code, you can use this command to have an extra copy sent to you.

To prevent abuse, this command may only be used once every 24 hours.

REAUTH (requires the `nickserv/mail-auth` module)

Syntax:
  `REAUTH`

Sets an authentication code which you can use to identify for your nickname. If you forget your nickname password, use this command to generate a new authentication code, then give that code (which will be mailed to you) with the `AUTH` command to identify for your nickname; you can then change your password with the `SET PASSWORD` command as usual.

RESTOREMAIL (requires the `nickserv/mail-auth` module)

Syntax:
  `RESTOREMAIL password`

Restores the last authenticated E-mail address for your nickname. If you accidentally use the wrong E-mail address in a `SET EMAIL` command, you can use this command to restore the previous E-mail address and clear the authentication code for your nickname, allowing you to identify for the nickname again. You must give your nickname's password with this command.

`RESTOREMAIL` can only be used after `SET EMAIL` and before entering the new authorization code with the `AUTH` command.

SETAUTH (requires the `nickserv/mail-auth` module)

Syntax:
  `SETAUTH nickname`

Sets a new authentication code for the given nickname. The nickname's owner will have to use the `AUTH` command for the nickname before being allowed to identify again. If the nickname is currently in use, a notice will be sent to the user of the nickname and they will no longer be treated as identified for the nickname.

GETAUTH (requires the `nickserv/mail-auth` module)

Syntax:
  `GETAUTH nickname`

Retrieves the authentication code associated with `nickname`, if one exists.

CLEARAUTH (requires the `nickserv/mail-auth` module)

Syntax:
  `CLEARAUTH nickname`

Clears any authentication code associated with `nickname`, allowing the nickname to be used normally.

LINK (requires the `nickserv/link` module)

Syntax:
  `LINK nickname`

Links a new nickname to the nickname you are currently using, creating a new "alias" for your nick. The new nick will be equivalent to your current nick in terms of access privileges and memos; for example, you can read memos sent to one of your linked nicks from any other one, and if one of your nicks has auto-op privileges in a channel, you will get auto-opped no matter which linked nick you use.

To cancel a link, use the `UNLINK` command.

In order to use this command, you must identify for your current nickname (using the `IDENTIFY` command), and the nickname to be linked must not currently be in use.

UNLINK (requires the `nickserv/link` module)

Syntax:
  `UNLINK nickname [FORCE]`

Removes a link (alias) to your nickname created with the `LINK` command. You cannot unlink the nickname you are currently using; change to another linked nick first before using this command.

If you unlink the "main nickname" you have selected using the `SET MAINNICK` command, your current nickname will automatically be selected as the main nickname.

Services admins may add the `FORCE` option, which allows removal of a link to a nickname other than their own.

LISTLINKS (requires the `nickserv/link` module)

Syntax:
  `LISTLINKS`

Lists all nicknames which are linked to your nick. The main nickname for the group of linked nicks will be indicated by a "`*`" to the left of the nick.

Services operators may list links for any nick by specifying the nick in the command.

ACCESS (requires the `nickserv/access` module)

Syntax:
  `ACCESS ADD mask`
  `ACCESS DEL mask`
  `ACCESS LIST`

Modifies or displays the access list for your nickname. This is the list of `user@host` addresses which will be automatically recognized by NickServ as allowed to use the nickname. If you connect to IRC with an address on this list, you will not be affected by the nick's `SET KILL` setting, and if the `SET SECURE` option is disabled, you will be able to receive auto-op and other privileges in channels without using the `IDENTIFY` command.

The mask given to the `ADD` and `DEL`commands may contain wildcards (`*` or `?`).

Examples:

`ACCESS ADD achurch@*.dragonfire.net`
  Allows access to user `achurch` from any machine in the `dragonfire.net` domain.
`ACCESS DEL achurch@*.dragonfire.net`
  Reverses the previous command.
`ACCESS LIST`
  Displays the current access list.

Services admins may give a nickname parameter to the LIST command to display the access list for any nickname.

AJOIN (requires the `nickserv/autojoin` module)

Syntax:
  `AJOIN ADD channel`
  `AJOIN DEL channel`
  `AJOIN LIST`

Modifies or displays the autojoin list for your nickname. This is the list of channels that you would like to automatically join, and takes effect whenever you identify to NickServ. You may only put channel names starting with "`#`" in the autojoin list (local channels cannot be added).

Note that the IRC server may prohibit you from entering some channels on the autojoin list, such as channels that have a channel key set (mode `+k`) or are invite-only (mode `+i`). However, if you have access to the ChanServ `INVITE` command on a registered channel, NickServ will automatically invite you into the channel.

Services admins can list the autojoin list for any nickname with the format `LIST nickname`.

SET

Syntax:
  `SET option parameters`

Sets various nickname options. `option` can be one of:

`PASSWORD`
  Set your nickname password
`LANGUAGE`
  Set the language Services will use when sending messages to you
`URL`
  Associate a URL with your nickname
`EMAIL`
  Associate an E-mail address with your nickname
`INFO`
  Set text to be displayed with the `INFO` command
`KILL`
  Turn kill protection on or off
`SECURE`
  Turn nickname security on or off
`PRIVATE`
  Prevent your nickname from appearing in a `/msg NickServ LIST`
`NOOP`
  Prevent your nickname from being added to channel access lists
`HIDE`
  Hide certain pieces of nickname information
`TIMEZONE`
  Set the time zone to use for displaying times
`MAINNICK`
  Set the nickname shown in channel access lists

In order to use this command, you must first identify with your password (`/msg NickServ HELP IDENTIFY` for more information).

Services admins can also set the option `NOEXPIRE`, with which nicknames can be prevented from expiring. Additionally, Services admins can set options for any nickname without entering a password, using the format `SET !nickname option parameters`.

SET PASSWORD

Syntax:
  `SET PASSWORD new-password`

Changes the password used to identify you as the nickname's owner.

SET LANGUAGE

Syntax:
  `SET LANGUAGE number`

Changes the language Services uses when sending messages to you (for example, when responding to a command you send). `number` should be chosen from the list of supported languages displayed with `/msg NickServ HELP SET LANGUAGE`.

SET URL

Syntax:
  `SET URL url`

Associates the given URL with your nickname. This URL will be displayed whenever someone requests information on your nickname with the `INFO` command.

SET EMAIL

Syntax:
  `SET EMAIL address`

Associates the given E-mail address with your nickname. This address will be displayed whenever someone requests information on your nickname with the `INFO` command.

SET INFO

Syntax:
  `SET INFO test`

Associates the given text with your nickname; it will be displayed whenever someone requests information on your nickname with the `INFO` command.

SET KILL

Syntax:
  `SET KILL {ON | QUICK | IMMED | OFF}`

Turns the automatic kill protection option for your nickname on or off. With kill protection on, if another user tries to take your nick, they will be given one minute to change to another nick, after which they will be forcibly removed from IRC by NickServ.

If you select `QUICK`, the user will be given only 20 seconds to change their nickname instead of the usual 60. If you select `IMMED`, the user will be killed immediately without being warned first or given a chance to change their nick; please do not use this option unless necessary. (`IMMED` can be disabled; see the `NSAllowKillImmed` option in `modules.conf`.)

SET SECURE

Syntax:
  `SET SECURE {ON | OFF}`

Turns NickServ's security features on or off for your nickname. With `SECURE` set, you must enter your password before you will be recognized as the owner of the nick, regardless of whether your address is on the access list. However, if you are on the access list, NickServ will not auto-kill you regardless of the setting of the `KILL` option.

SET PRIVATE

Syntax:
  `SET PRIVATE {ON | OFF}`

Turns NickServ's privacy option on or off for your nickname. With `PRIVATE` set, your nickname will not appear in nickname lists generated with NickServ's `LIST` command. (However, anyone who knows your nickname can still get information on it using the `INFO` command.)

SET NOOP

Syntax:
  `SET NOOP {ON | OFF}`

Turns NickServ's no-op option on or off for your nickname. Setting the `NOOP` option prevents your nickname from being added to channel access lists. However, if your nickname is already on a channel's access list, it will not be removed even if you turn this option on.

SET HIDE

Syntax:
  `SET HIDE {EMAIL | USERMASK | QUIT} {ON | OFF}`

Allows you to prevent certain pieces of information from being displayed when someone does a NickServ `INFO` on your nickname. You can hide your E-mail address (`EMAIL`), last seen `user@host` mask (`USERMASK`), and last quit message (`QUIT`). The second parameter specifies whether the information should be displayed (`OFF`) or hidden (`ON`).

SET TIMEZONE

Syntax:
  `SET TIMEZONE {UTC-offset | time-zone | DEFAULT}`

Sets the time zone to use for displaying times (such as a nickname or channel's last used time), instead of using the time zone Services is operating in; the `DEFAULT` setting can be used to return to Services' time zone. The time zone can be specified in one of two ways:

- As a UTC offset, the time difference between your local time and UTC (Universal Coordinated Time, also known as GMT, Greenwich Mean Time). The offset is given as a "+" or "-" to indicate ahead of (east) or behind (west) UTC, followed by either a whole number of hours or a string in the form "`hh:mm`".

- As a time zone name, such as "GMT" or "EDT". Not all time zone names are supported by Services, and some countries' time zones have the same names, so if you get an error or the time displayed by Services is wrong, use a UTC offset instead.

Note that Services will not automatically adjust for daylight savings time (summer time); you will have to adjust the time zone manually.

Examples:

`SET TIMEZONE -5`
  Set the time zone to 5 hours behind UTC.
`SET TIMEZONE +3:30`
  Set the time zone to 3 hours, 30 minutes ahead of UTC.
`SET TIMEZONE JST`
  Set the time zone to Japan Standard Time (UTC+9:00).

SET MAINNICK (requires the `nickserv/link` module)

Syntax:
  `SET MAINNICK nickname`

When you have several nicknames linked together, allows you to select which one is displayed in channel access lists. If you later unlink this nick, then a different one will be selected automatically.

SET NOEXPIRE

Syntax:
  `SET [nickname] NOEXPIRE {ON | OFF}`

Sets whether the given nickname will expire. Setting this to `ON` prevents the nickname from expiring. If no nickname is given, sets the no-expire flag for your nick.

Limited to Services admins.

UNSET

Syntax:
  `UNSET {URL | EMAIL | INFO}`

Allows you to clear the URL (`URL`), E-mail address (`EMAIL`), or information text (`INFO`) associated with your nickname.

If the `NSRequireEmail` option is set in `modules.conf`, then the E-mail address cannot be cleared (`UNSET EMAIL` will generate an error).

Services admins may use the `UNSET` command on any nickname by adding "`!nickname`" before the option name, as with the `SET` command.

RECOVER

Syntax:
  `RECOVER nickname [password]`

Allows you to recover your nickname if someone else has taken it; this does the same thing that NickServ does automatically if someone tries to use a kill-protected nickname.

When you give this command, NickServ will bring a fake user online with the same nickname as the user you're trying to recover your nick from, causing the IRC servers to disconnect the other user. This fake user will remain online for one minute (by default, changeable with the `NSReleaseTimeout` option in `modules.conf`) to ensure that the other user does not immediately reconnect; after that time, you can reclaim your nick. Alternatively, use the `RELEASE` command to get the nick back sooner.

In order to use the `RECOVER` command for a nickname, you must supply the correct password for the nickname, or you must already have identified to a nick linked to the given nick.

RELEASE

Syntax:
  `RELEASE nickname [password]`

Instructs NickServ to remove any hold on your nickname caused by automatic kill protection or use of the `RECOVER` command. By default, such holds last for one minute (changeable with the `NSReleaseTimeout` option in `modules.conf`); this command gets rid of them sooner.

In order to use the `RELEASE` command for a nickname, you must supply the correct password for the nickname, or you must already have identified to a nick linked to the given nick.

GHOST

Syntax:
  `GHOST nickname [password]`

Terminates a "ghost" IRC session using your nickname. A "ghost" session is one which is not actually connected, but which the IRC server believes is still online for one reason or another. Typically, this happens if your computer crashes or your Internet or modem connection goes down while you're on IRC.

In order to use the `GHOST` command for a nickname, you must supply the correct password for the nickname, or you must already have identified to a nick linked to the given nick.

INFO

Syntax:
  `INFO nickname [ALL]`

Displays information about the given nickname, such as the nickname's owner, last seen address and time, and options. If you are identified for the nick you're getting information for and `ALL` is specified, you will be shown all the information, regardless of whether it's hidden or not.

When the `nickserv/mail-auth` module is in use, if the nickname's E-mail address has not yet been confirmed with the `AUTH` command, it will not be shown to anyone except the nickname owner and Services administrators, regardless of the nickname's `SET HIDE EMAIL` setting.

Services admins may use the `ALL` parameter with any nickname.

LISTCHANS

Syntax:
  `LISTCHANS`

Lists the names and the total number of channels you have registered under your nickname.

Services admins may list channels for any nickname by giving the nickname with the command (for example, `/msg NickServ LISTCHANS OtherNick`).

LIST

Syntax:
  `LIST [+start] pattern [FORBIDDEN] [NOEXPIRE] [SUSPENDED] [NOAUTH]`

Lists all registered nicknames for which either the nickname itself or the last seen address (in `user@host` format) match the given pattern. Nicks with the `PRIVATE` option set will only be displayed to Services admins. For Services admins, nicks with the `NOEXPIRE` option set will have a `!` prepended to the nickname, those that are suspended will be prepended by a `*`, and those that have not yet been authenticated (with the `AUTH` command) will be prepended by a `?`.

If the `start` parameter is given, it specifies how many matches to skip before displaying results (for example, `+50` would cause the first 50 matches to be skipped).

If the `FORBIDDEN`, `SUSPENDED`, `NOEXPIRE`, or `NOAUTH` options are given, only nicks which, respectively, are forbidden, suspended, have the `NOEXPIRE` option set, or have not yet been authenticated will be displayed. The options can be used in any order and in any combination. These options are limited to Services admins. (Note that the `NOAUTH` option is not available unless the `nickserv/mail-auth` module is loaded.)

If the `NSListOpersOnly` option is given in `modules.conf`, only IRC operators will be allowed to use this command.

Examples:

`LIST joeuser@foo.com`
  Lists all registered nicknames last used by `joeuser@foo.com`.
`LIST *Bot*`
  Lists all registered nicknames with `Bot` in their names (case insensitive).
`LIST * NOEXPIRE`
  Lists all registered nicknames which have been set to not expire.

LISTEMAIL

Syntax:
  `LISTEMAIL [+start] pattern [FORBIDDEN] [NOEXPIRE] [SUSPENDED] [NOAUTH]`

Lists registered nicknames like the `LIST` command, but matches on E-mail addresses instead of `user@host` addresses. See the `LIST` command help for more information.

STATUS

Syntax:
  `STATUS nickname...`

Returns whether the user using the given nickname is recognized as the owner of the nickname. The response has this format:

> `nickname status-code`

where `nickname` is the nickname sent with the command, and `status-code` is one of the following:

`0`
  no such user online or nickname not registered
`1`
  user not recognized as nickname's owner
`2`
  user recognized as owner via access list only
`3`
  user recognized as owner via password identification

Up to sixteen nicknames may be sent with each command; the rest will be ignored. No error message is generated if no nickname is given.

GETPASS

Syntax:
  `GETPASS nickname`

Returns the password for the given nickname. Note that whenever this command is used, a message including the person who issued the command and the nickname it was used on will be logged.

If encryption (see section 3-7) is in use, this command may not be available depending on the type of encryption used.

Limited to Services admins.

FORBID

Syntax:
  `FORBID nickname`

Disallows a nickname from being registered or used by anyone. May be cancelled by dropping the nickname.

Limited to Services admins.

SUSPEND

Syntax:
  `SUSPEND [+expiry] nickname reason`

Prevents a nickname, and all nicknames linked to it, from being used or identified for by anyone. A nickname can be unsuspended with the `UNSUSPEND` command, which will allow it to be used as before. The `expiry` parameter is interpreted in the same manner as for the OperServ `AKILL` command.

Limited to Services admins.

UNSUSPEND

Syntax:
  `UNSUSPEND nickname`

Allows people to use and identify for a previously suspended nickname.

Limited to Services admins.

### 4-2. ChanServ commands

REGISTER

Syntax:
  `REGISTER channel password description`

Registers a channel in the ChanServ database. In order to use this command, you must first be a channel operator on the channel you're trying to register. The password is used with the `IDENTIFY` command to allow you to make changes to the channel settings at a later time. The last parameter, which must be included, is a general description of the channel's purpose.

When you register a channel, you are recorded as the "founder" of the channel. The channel founder is allowed to change all of the channel settings for the channel; ChanServ will also automatically give the founder channel-operator privileges when s/he enters the channel. See the `ACCESS` command (`/msg ChanServ HELP ACCESS`) for information on giving a subset of these privileges to other channel users.

NOTICE: In order to register a channel, you must have first registered and identified for your nickname. If you haven't, `/msg NickServ HELP` for information on how to do so.

Non-Services admins may be prevented from registering channels by unsetting the `CSEnableRegister` option (enabled by default) in `modules.conf`

IDENTIFY

Syntax:
  `IDENTIFY channel password`

Authenticates you to ChanServ as the founder of the given channel. Many commands require you to use this command before using them. The password should be the same one you sent with the `REGISTER` command.

DROP

Syntax:
  `DROP channel`

Unregisters the named channel. Can only be used by channel founder, who must use the `IDENTIFY` command first. (However, Services admins may drop any channel without identifying for the channel.)

SET

Syntax:
  `SET channel option parameters`

Allows the channel founder to set various channel options and other information. The founder must use the `IDENTIFY` command before using `SET`.

Available options:

`FOUNDER`
  Set the founder of a channel
`SUCCESSOR`
  Set the successor for a channel
`PASSWORD`
  Set the founder password
`DESC`
  Set the channel description
`URL`
  Associate a URL with the channel
`EMAIL`
  Associate an E-mail address with the channel
`ENTRYMSG`
  Set a message to be sent to users when they enter the channel
`KEEPTOPIC`
  Retain topic when channel is not in use
`TOPICLOCK`
  Topic can only be changed with TOPIC
`MLOCK`
  Lock channel modes on or off
`PRIVATE`
  Hide channel from LIST command
`RESTRICTED`
  Restrict access to the channel
`SECURE`
  Activate ChanServ security features
`SECUREOPS`
  Stricter control of chanop status
`LEAVEOPS`
  Do not de-op users on channel entry
`OPNOTICE`
  Send a notice when OP/VOICE commands are used
`ENFORCE`
  Enforce auto-op, auto-voice status
`MEMO-RESTRICTED`
  Limit who can send memos to the channel

Services admins can also set the option `NOEXPIRE`, with which channels can be prevented from expiring. Additionally, Services admins can set options for any channel without identifying by password for the channel.

SET FOUNDER

Syntax:
  `SET channel FOUNDER nickname`

Changes the founder of a channel. The new nickname must be a registered one.

SET SUCCESSOR

Syntax:
  `SET channel SUCCESSOR nickname`

Changes the successor of a channel. If the founder's nickname expires or is dropped while the channel is still registered, the successor will become the new founder of the channel. However, if the successor already has too many channels registered (20 by default, changeable with the `CSMaxReg` directive in `modules.conf`), the channel will be dropped instead, just as if no successor had been set. The nickname must be a registered one.

SET PASSWORD

Syntax:
  `SET channel PASSWORD password`

Sets the password used to identify as the founder of the channel.

SET DESC

Syntax:
  `SET channel DESC description`

Sets the description for the channel, which shows up with the `LIST` and `INFO` commands.

SET URL

Syntax:
  `SET channel URL url`

Associates the given URL with the channel. This URL will be displayed whenever someone requests information on the channel with the `INFO` command.

SET EMAIL

Syntax:
  `SET channel EMAIL address`

Associates the given E-mail address with the channel. This address will be displayed whenever someone requests information on the channel with the `INFO` command.

SET ENTRYMSG

Syntax:
  `SET channel ENTRYMSG message`

Sets the message which will be sent via `/NOTICE` to users when they enter the channel.

SET KEEPTOPIC

Syntax:
  `SET channel KEEPTOPIC {ON | OFF}`

Enables or disables the topic retention option for a channel. When topic retention is set, the topic for the channel will be remembered by ChanServ even after the last user leaves the channel, and will be restored the next time the channel is created.

SET TOPICLOCK

Syntax:
  `SET channel TOPICLOCK {ON | OFF}`

Enables or disables the topic lock option for a channel. When topic lock is set, ChanServ will not allow the channel topic to be changed except via the `TOPIC` command.

SET MLOCK

Syntax:
  `SET channel MLOCK modes`

Sets the mode-lock parameter for the channel. ChanServ allows you to define certain channel modes to be always on (or off). All binary modes (`n`, `s`, `t`, `k`, `l`, and so on) can be locked; each mode can be locked on, locked off, or not locked. The `modes` parameter is constructed exactly the same way as a `/MODE` command; that is, modes followed by a `+` are locked on, and modes followed by a `-` are locked off.

Warning: If you set a mode-locked key, as in the second example below, you should also set the `RESTRICTED` option for the channel, or anyone entering the channel when it is empty will be able to see the key! `MLOCK +i` will likewise not prevent users from entering the channel when it is empty without being invited.

Examples:
  `SET #channel MLOCK +nt-ikl`
    Forces modes `n` and `t` on, and modes `i`, `k`, and `l` off. All other modes are left free to be either on or off.
  `SET #channel MLOCK +knst-ilmp my-key`
    Forces modes `k`, `n`, `s`, and `t` on, and modes `i`, `l`, `m`, and `p` off. Also forces the channel key to be "`my-key`".
  `SET #channel MLOCK +`
    Removes the mode lock; all channel modes are free to be either on or off.

SET HIDE

Syntax:
  `SET channel HIDE {EMAIL | TOPIC | MLOCK} {ON | OFF}`

Allows you to prevent certain pieces of information from being displayed when someone does a ChanServ `INFO` on the given channel. You can hide the channel's E-mail address (`EMAIL`), last topic (`TOPIC`), and mode lock (`MLOCK`). The second parameter specifies whether the information should be displayed (`OFF`) or hidden (`ON`).

Note that the topic will always be hidden if the channel is mode-locked `+p` or `+s`.

SET PRIVATE

Syntax:
  `SET channel PRIVATE {ON | OFF}`

Enables or disables the private option for a channel. When private is set, a `/msg ChanServ LIST` will not include the channel in any lists.

SET RESTRICTED

Syntax:
  `SET channel RESTRICTED {ON | OFF}`

Enables or disables the restricted access option for a channel. When restricted access is set, users who are not on the access list or who would normally be disallowed from having channel operator privileges will be kicked and banned from the channel.

SET SECURE

Syntax:
  `SET channel SECURE {ON | OFF}`

Enables or disables ChanServ's security features for a channel. When `SECURE` is set, only users who have registered their nicknames with NickServ and `IDENTIFY`'d with their password will be given privileges on the channel as controlled by the access list. If the `RESTRICTED` option is also set, users will not be able to join the channel until they identify to NickServ.

SET SECUREOPS

Syntax:
  `SET channel SECUREOPS {ON | OFF}`

Enables or disables the secure ops option for a channel. When secure ops is set, users who are not on the access list will not be allowed chanop status.

SET LEAVEOPS

Syntax:
  `SET channel LEAVEOPS {ON | OFF}`

Enables or disables the leave ops option for a channel. When leave ops is set, ChanServ will leave server ops (`+o` for the first person in the channel) in place even if the user would not normally get auto-opped. The SECUREOPS option will still be enforced. Notice: This can allow users to "steal" ops during a netsplit.

SET OPNOTICE

Syntax:
  `SET channel OPNOTICE {ON | OFF}`

Enables or disables the op-notice option for a channel. When op-notice is set, ChanServ will send a notice to the channel whenever the `OP`, `VOICE`, or related commands are used for a user in the channel.

SET ENFORCE

Syntax:
  `SET channel ENFORCE {ON | OFF}`

Enables or disables the enforce option for a channel. When enforce is set, ChanServ will enforce the auto-op and auto-voice levels for all users. For example, if a user with auto-op privileges is deopped, ChanServ will automatically op the user again, and ChanServ will also not allow the `DEOP` command to be used on that user.

SET MEMO-RESTRICTED

Syntax:
  `SET channel MEMO-RESTRICTED {ON | OFF}`

Enables or disables the memo restriction option for a channel. When memo restriction is set, only users with privileges to receive channel memos will be able to send memos to the channel.

SET NOEXPIRE

Syntax:
  `SET channel NOEXPIRE {ON | OFF}`

Sets whether the given channel will expire. Setting this to `ON` prevents the channel from expiring.

Limited to Services admins.

UNSET

Syntax:
  `UNSET channel {SUCCESSOR | URL | EMAIL | ENTRYMSG}`

Clears the given setting for a channel.

As with the `SET` command, Services admins can clear settings for any channel without identifying for the channel.

SOP (requires the `chanserv/access-xop` module)

Syntax:
  `SOP channel ADD nickname`
  `SOP channel DEL nickname`
  `SOP channel LIST [+start] [mask]`
  `SOP channel COUNT`

Maintains the SuperOp (SOP) list for a channel. Users with SOP status are automatically opped (set mode `+o`) and protected (mode `+a`), if supported by the IRC server) when they join the channel.

An SOP can modify the AOP, HOP (if the IRC server supports halfops), VOP, and NOP lists. Only a channel's founder can modify the SOP list.

The `ADD`, `DEL`, `LIST`, and `COUNT` subcommands function the same way as for the `AOP` command.

AOP (requires the `chanserv/access-xop` module)

Syntax:
  `AOP channel ADD nickname`
  `AOP channel DEL nickname`
  `AOP channel LIST [+start] [mask]`
  `AOP channel COUNT`

Maintains the AutoOp (AOP) list for a channel. Users with AOP status are automatically opped (set mode `+o`) when they join the channel.

An AOP can modify the HOP (if the IRC server supports halfops), VOP, and NOP lists; SOPs can modify the AOP list.

The `AOP ADD` command adds a user to the AOP list, and the `AOP DEL` command removes a user from the AOP list. Note that a user can only be on one channel access list at once; if the user given in an `AOP ADD` command is already on another channel access list, such as the VOP list, they will be removed from that list first. (If you would not be allowed to modify that list—for example, if the user is already on the SOP list and you are not the channel founder—then the `AOP ADD` command will fail.)

The `AOP LIST` command displays the AOP list. If a wildcard mask is given, only those entries matching the mask are displayed. If the `start` parameter is given, it specifies how many matches to skip before displaying results (for example, `+50` would cause the first 50 matches to be skipped).

The `AOP COUNT` command shows the number of entries there are are on the AOP list.

HOP (requires the `chanserv/access-xop` module)

Syntax:
  `HOP channel ADD nickname`
  `HOP channel DEL nickname`
  `HOP channel LIST [+start] [mask]`
  `HOP channel COUNT`

Maintains the HalfOp (HOP) list for a channel. Users with HOP status are automatically halfopped (set mode `+h`) when they join the channel.

An HOP can modify the VOP and NOP lists; SOPs and AOPs can modify the HOP list.

The `ADD`, `DEL`, `LIST`, and `COUNT` subcommands function the same way as for the `AOP` command.

Note that this command is only available if the IRC server in use supports halfops.

VOP (requires the `chanserv/access-xop` module)

Syntax:
  `VOP channel ADD nickname`
  `VOP channel DEL nickname`
  `VOP channel LIST [+start] [mask]`
  `VOP channel COUNT`

Maintains the VoiceOp (VOP) list for a channel. Users with VOP status are automatically voiced (set mode `+v`) when they join the channel.

The `ADD`, `DEL`, `LIST`, and `COUNT` subcommands function the same way as for the `AOP` command.

NOP (requires the `chanserv/access-xop` module)

Syntax:
  `NOP channel ADD nickname`
  `NOP channel DEL nickname`
  `NOP channel LIST [+start] [mask]`
  `NOP channel COUNT`

Maintains the NeverOp (NOP) list for a channel. Users with NOP status are not permitted to be given channel operator (mode `+o`) status, and ChanServ will remove mode `+o` from such users whenever it is given to them.

The `ADD`, `DEL`, `LIST`, and `COUNT` subcommands function the same way as for the `AOP` command.

`ACCESS` (requires the `chanserv/access-levels` module)

Syntax:
  `ACCESS channel ADD nickname level`
  `ACCESS channel DEL nickname`
  `ACCESS channel LIST [+start] [mask]`
  `ACCESS channel LISTLEVEL [+start] level`
  `ACCESS channel COUNT`

Maintains the access list for a channel. The access list specifies which users are allowed chanop status or access to ChanServ commands on the channel. Different user levels allow for access to different subsets of privileges; `/msg ChanServ HELP ACCESS LEVELS` for more specific information. Any nickname not on the access list has a user level of 0.

The `ACCESS ADD` command adds the given nickname to the access list with the given user level; if the nick is already present on the list, its access level is changed to the level specified in the command. The `level` specified must be less than that of the user giving the command, and if the nick is already on the access list, the current access level of that nick must be less than the access level of the user giving the command.

The `ACCESS DEL` command removes the given nickname from the access list.

The `ACCESS LIST` command displays the access list. If a wildcard mask is given, only those entries matching the mask are displayed. If the `start` parameter is given, it specifies how many matches to skip before displaying results (for example, `+50` would cause the first 50 matches to be skipped).

The `ACCESS LISTLEVEL` command is similar to `ACCESS LIST`, but displays only entries with the given access level. The level can be specified as a range: `LISTLEVEL 50-100`, for example, lists all users with access levels between 50 and 100 inclusive.

The `ACCESS COUNT` command returns the number of entries there are on the access list.

Note that the access list may also be manipulated with the `SOP`, `AOP`, `HOP`, `VOP`, and `NOP` commands, which correspond to levels of 100, 50, 40, 30, and -1 respectively, if the `chanserv/access-xop` module is also loaded.

LEVELS (requires the `chanserv/access-levels` module)

Syntax:
  `LEVELS channel SET type level`
  `LEVELS channel {DIS | DISABLE} type`
  `LEVELS channel LIST`
  `LEVELS channel RESET`

The `LEVELS` command allows fine control over the meaning of the numeric access levels used by the `ACCESS` command. With this command, you can define the access level required for most of ChanServ's functions. (The `SET FOUNDER` and `SET PASSWORD` commands, as well as this command, are always restricted to the channel founder.)

Caution: This command is for advanced users only! Changing level settings with this command may cause the `SOP`, `AOP`, `HOP`, `VOP`, and `NOP` commands to stop working correctly.

`LEVELS SET` allows the access level for a function or group of functions to be changed. `LEVELS DISABLE` (or `DIS` for short) disables an automatic feature or disallows access to a function by anyone other than the channel founder. `LEVELS LIST` shows the current levels for each function or group of functions. `LEVELS RESET` resets the levels to the default levels of a newly-created channel (see `HELP ACCESS LEVELS`).

For a list of the features and functions whose levels can be set, see `HELP LEVELS DESC`.

AKICK

Syntax:
  `AKICK channel ADD mask [reason]`
  `AKICK channel DEL mask`
  `AKICK channel LIST [+start] [mask]`
  `AKICK channel VIEW [+start] [mask]`
  `AKICK channel COUNT`
  `AKICK channel ENFORCE`

Maintains the autokick list for a channel. If a user on the autokick list attempts to join the channel, ChanServ will ban that user from the channel, then kick the user.

The `AKICK ADD` command adds the given `user@host` or `nickname!user@host` mask to the autokick list. If a `reason` is given with the command, that reason will be used in the kick message when the user is kicked.

The `AKICK DEL` command removes the given mask from the autokick list. It does not, however, remove any bans placed by an autokick; those must be removed manually.

The `AKICK LIST` command displays the autokick list, or optionally only those autokick entries which match the given mask. `AKICK VIEW` is similar, but shows more details. If the `start` parameter is given to either command, it specifies how many matches to skip before displaying results (for example, `+50` would cause the first 50 matches to be skipped).

The `AKICK COUNT` command shows how many entries there are on the autokick list.

The `AKICK ENFORCE` command causes ChanServ to enforce the current autokick list by removing those users who match an autokick mask.

By default, limited to users with level 100 (SOP) access and above on the channel.

INFO

Syntax:
  `INFO channel [ALL]`

Lists information about the named registered channel, including its founder, time of registration, last time used, description, and mode lock, if any. If you are identified as the founder of the channel you're getting information for and `ALL` is specified, the entry message and successor will also be displayed.

Services admins can use the `ALL` parameter with any channel.

LIST

Syntax:
  `LIST [+start] pattern`

Lists all registered channels matching the given pattern. Channels with the `PRIVATE` option set will only be displayed to Services admins. Channels with the `NOEXPIRE` option set will have a `!` prepended to the channel name for Services admins.

If the `start` parameter is given, it specifies how many matches to skip before displaying results (for example, `+50` would cause the first 50 matches to be skipped).

If the `FORBIDDEN`, `SUSPENDED` or `NOEXPIRE` options are given, only channels which, respectively, are forbidden, suspended or have the `NOEXPIRE` flag set will be displayed. The options can be used in any order and in any combination. These options are limited to `Services admins`.

If the `CSListOpersOnly` option is given in `modules.conf`, only IRC operators will be allowed to use this command.

OP

Syntax:
  `OP #channel [nickname]`

Ops a selected nickname on a channel. If `nickname` is not given, ops you. By default, limited to users with level 50 (AOP) access and above on the channel.

DEOP

Syntax:
  `DEOP #channel [nickname]`

Deops a selected nickname on a channel. If `nickname` is not given, deops you. By default, limited to users with level 50 (AOP) access and above on the channel.

VOICE

Syntax:
  `VOICE #channel [nickname]`

Voices a selected nickname on a channel. If `nickname` is not given, voices you. By default, limited to users with level 30 (VOP) access and above on the channel.

DEVOICE

Syntax:
  `DEVOICE #channel [nickname]`

Devoices a selected nickname on a channel. If `nickname` is not given, devoices you. By default, limited to users with level 30 (VOP) access and above on the channel.

HALFOP

Syntax:
  `HALFOP #channel [nickname]`

Gives halfop access to a selected nickname on a channel. If `nickname` is not given, gives you halfop access. By default, limited to users with level 40 (HOP) access and above on the channel. Only available with IRC servers which support halfops.

DEHALFOP

Syntax:
  `DEHALFOP #channel [nickname]`

Removes halfop access from a selected nickname on a channel. If `nickname` is not given, removes halfop access from you. By default, limited to users with level 40 (HOP) access and above on the channel. Only available with IRC servers which support halfops.

PROTECT

Syntax:
  `PROTECT #channel [nickname]`

Gives channel protection (mode `+a`) to a selected nickname on a channel. If `nickname` is not given, gives channel protection to you. By default, limited to users with level 100 (SOP) access and above on the channel. Only available with IRC servers which support this mode.

DEPROTECT

Syntax:
  `DEPROTECT #channel [nickname]`

Removes channel protection (mode `+a`) from a selected nickname on a channel. If `nickname` is not given, removes channel protection from you. By default, limited to users with level 100 (SOP) access and above on the channel. Only available with IRC servers which support this mode.

INVITE

Syntax:
  `INVITE channel`

Tells ChanServ to invite you into the given channel. By default, limited to users with level 50 (AOP) access and above on the channel.

Note: If you get a message saying that the channel is not in use, it means that the channel is empty, and you can join it freely without needing to use this command.

UNBAN

Syntax:
  `UNBAN channel`

Tells ChanServ to remove all bans preventing you from entering the given channel. By default, limited to users with level 50 (AOP) access and above on the channel.

KICK

Syntax:
  `KICK channel nickname [reason]`

Tells ChanServ to kick the given nickname from the given channel. The message included in the kick will show who used the `KICK` command, as well as the reason given with the command, if any. By default, limited to users with level 50 (AOP) access and above on the channel.

Note that protected (`+a`) users and IRC operators with Services operator privileges cannot be kicked with this command, even by the channel founder.

TOPIC

Syntax:
  `TOPIC channel topic`

Causes ChanServ to set the channel topic to the one specified. This command is most useful in conjunction with `SET TOPICLOCK`. By default, limited to users with level 50 (AOP) access and above on the channel.

CLEAR

Syntax:
  `CLEAR channel what`

Tells ChanServ to clear certain settings on a channel. `what` can be any of the following:

`MODES`
  Clears all modes on the channel except those set in the channel's mode lock.
`BANS`
  Clears all bans on the channel.
`EXCEPTIONS`
  Clears all exceptions on the channel (only available if the IRC server supports ban exceptions).
`INVITES`
  Clears all invite masks on the channel (only available if the IRC server supports invite masks).
`OPS`
  Removes channel-operator status (mode `+o`) from all users.
`HALFOPS`
  Removes halfop status (mode `+h`) from all users (only available if the IRC server supports halfops).
`VOICES`
  Removes "voice" status (mode `+v`) from all users.
`USERS`
  Removes (kicks) all users from the channel.

By default, limited to users with level 100 (SOP) access and above on the channel.

STATUS

Syntax:
  `STATUS channel nickname`

Returns the current access level of the given nickname on the given channel. The reply is of the form:

> `STATUS channel nickname access-level`

If an error occurs, the reply will be in the form:

> `STATUS channel nickname ERROR error-message`

By default, limited to users with level 100 (SOP) access and above on the channel.

The format of the `access-level` response parameter depends on which access-level modules are loaded, as follows:

`access-levels` module | `access-xop` module | Format
--- | --- | ---
Loaded | Not loaded | `numeric-level`
Loaded | Loaded | `numeric-level (XOP-level)`
Not loaded | Loaded | `XOP-level`

In the table, `numeric-level` is the numeric access level, while `XOP-level` is one of "`Founder`", "`SOP`", "`AOP`", "`HOP`" (if the IRC server supports halfops), "`VOP`", "`NOP`", or "`---`" (meaning no privileges). These strings do not change regardless of the user's NickServ language setting.

GETPASS

Syntax:
  `GETPASS channel`

Returns the password for the given channel. Note that whenever this command is used, a message including the person who issued the command and the channel it was used on will be logged.

If encryption (see section 3-7) is in use, encryption may not be available depending on the type of encryption used.

Limited to Services admins.

FORBID

Syntax:
  `FORBID channel`

Disallows anyone from registering or using the given channel. May be cancelled by dropping the channel.

Limited to Services admins.

SUSPEND

Syntax:
  `SUSPEND [+expiry] channel reason`

Prevents a channel from being used or identified for by anyone. The channel can be unsuspended with the `UNSUSPEND` command, which will allow it to be used as before. The `expiry` parameter is interpreted in the same manner as for the OperServ `AKILL` command.

Limited to Services admins.

UNSUSPEND

Syntax:
  `UNSUSPEND channel`

Allows users to use and identify for a previously suspended channel.

Limited to Services admins.

### 4-3. MemoServ commands

SEND

Syntax:
  `SEND {nickname | channel} memo-text`

Sends the named `nickname` or `channel` a memo containing `memo-text`. When sending to a nickname, the recipient will receive a notice that he/she has a new memo. The target nickname/channel must be registered.

LIST

Syntax:
  `LIST [channel] [num | list | NEW]`

Lists any memos you currently have. With `NEW`, lists only new (unread) memos. Unread memos are marked with a "`*`" to the left of the memo number; memos that will not expire are marked with a "`+`". You can also specify a list of numbers, as in the example below:

`LIST 2-5,7-9`
  Lists memos numbered 2 through 5 and 7 through 9.

READ

Syntax:
  `READ [channel] {num | list | LAST | NEW}`

Sends you the text of the memos specified. If LAST is given, sends you the memo you most recently received. If NEW is given, sends you all of your new memos. Otherwise, sends you memo number `num`. You can also give a list of numbers, as with the `LIST` command.

SAVE

Syntax:
  `SAVE [channel] {num | list}`

Marks the given memo or memos as non-expiring. You can give either a single memo number or, as with the `LIST` command, a list of memos.

Note that this command will not be available if the `MSExpire` option is not set (since there would be no point in using it). However, all memos received while `MSExpire` is unset will be treated as if SAVE had been used for them, and they will not expire even if `MSExpire` is later enabled.

DEL

Syntax:
  `DEL [channel] {num | list | ALL}`

Deletes the specified memo or memos. You can supply multiple memo numbers or ranges of numbers instead of a single number, as with the `LIST` command; you can also give the word `ALL`, which causes all of your memos to be deleted.

Warning: Once a memo is deleted, it cannot be recovered!

RENUMBER

Syntax:
  `RENUMBER`

Renumbers your memo list, removing "holes" in the number sequence resulting from deleted memos.

SET

Syntax:
  `SET option parameters`

Sets various memo options. `option` can be one of:

`NOTIFY`
  Changes when you will be notified about new memos (only for nicknames)
`LIMIT`
  Sets the maximum number of memos you can receive
`FORWARD`
  Sets whether memos are automatically forwarded to you

SET NOTIFY

Syntax:
  `SET NOTIFY {ON | LOGON | NEW | OFF}`

Changes when you will be notified about new memos:

`ON`
  You will be notified of memos when you log on, when you unset `/AWAY`, and when they are sent to you.
`LOGON`
  You will only be notified of memos when you log on or when you unset `/AWAY`.
`NEW`
  You will only be notified of memos when they are sent to you.
`OFF`
  You will not receive any notification of memos.

`ON` is equivalent to `LOGON` and `NEW` combined.

Note that if your nickname has the "secure" setting on, you will only be notified of new memos (for `LOGON` or `ON`) after you identify to NickServ.

SET LIMIT

Syntax:
  `SET LIMIT [nickname | channel] {limit | NONE | DEFAULT} [HARD]`

Sets the maximum number of memos a nickname (or channel) is allowed to have. Setting the limit to 0 prevents the nick from receiving any memos; setting it to `NONE` allows the nick to receive and keep as many memos as they want; and setting it to `DEFAULT` restores the limit to the default value (`MSMaxMemos` in `modules.conf`, 20 by default). If you do not give a nickname or channel, your own limit is set.

Adding `HARD` prevents the user from changing the limit. Not adding `HARD` has the opposite effect, allowing the user to change the limit (even if a previous limit was set with `HARD`).

This use of the SET LIMIT command is limited to Services admins. Other users may only enter a limit for themselves or a channel on which they have such privileges, may not remove their limit or set their limit to the default, may not set a limit above the default limit, and may not set a hard limit.

INFO

Syntax:
  `INFO [nickname | channel]`

Without a parameter, displays information on the number of memos you have, how many of them are unread, how many total memos you can receive and when you are notified of new ones.

With a channel parameter, displays the same information for the given channel.

With a nickname parameter, displays the same information for the given nickname. This use limited to Services admins.

FORWARD (requires the `memoserv/forward` module)

Syntax:
  `FORWARD {num | list | ALL}`

Forwards one or more of your memos to your E-mail address. You must have a valid E-mail address set for your nickname in order to use this command. Channel memos cannot be forwarded.

SET FORWARD (requires the `memoserv/forward` module)

Syntax:
  `SET FORWARD {ON | COPY | OFF}`

Sets whether MemoServ automatically forwards to your E-mail address memos sent to you. When set to `ON`, memos sent to your nickname will instead be forwarded to the E-mail address registered with your nickname. `COPY` is similar, but also causes MemoServ to save a copy of the memo to read online. When set to `OFF`, your memos will be stored online as usual. Even if you set this option to `ON`, you may still receive memos online if Services is unable to forward them to you.

Note that when this option is set to `COPY` and you have received the maximum number of memos you are allowed to, you will not be able to receive any new memos (including by E-mail) until you delete some old memos using the `DEL` command.

IGNORE (requires the `memoserv/ignore` module)

Syntax:
  `IGNORE {ADD | DEL | LIST} [nickname | mask]`

Controls the list of "ignored" users; users whose nickname or user@host mask match an entry on this list are not allowed to send you memos. `ADD` adds the given nickname or user@host mask to your ignore list, and `DEL` removes the given nickname or mask from the list; `LIST` displays your current ignore list.

Note that the nickname or mask given to the `ADD` command may contain "*" or "?" wildcards, and is not case-sensitive; for example, "*Evil*" matches "EvilNick", "AN_EVIL_USER" and "devil".

### 4-4. OperServ commands

GLOBAL

Syntax:
  `GLOBAL message`

Allows IRCops to send messages to all users on the network. The message will be sent from the nickname "Global" (which can be changed with the `GlobalName` option in `modules.conf`).

STATS

Syntax:
  `STATS [RESET | NETWORK | AKILL | ALL]`

Without any option, shows the current number of users and IRCops online (excluding Services), the highest number of users online since Services was started, and the length of time Services has been running.

With the `RESET` option, resets the maximum user count to the number of users currently online.

With the `NETWORK` option, shows the amount of data sent to and received from the remote server, and the amount of memory used by network send/receive buffers. The ratio of the current buffer memory usage to the buffer size limit is also displayed as a percentage if a limit is configured (via `NetBufferSize` in `ircservices.conf`).

With the `AKILL` option, displays the current size of the AKILL list and the current default expiry time.

The `ALL` option is available only to Services admins, and displays information on Services' memory usage. Using this option can freeze Services for a short period of time on large networks, so don't overuse it!

`UPTIME` may be used as a synonym for `STATS`.

SERVERMAP

Syntax:
  `SERVERMAP`

Displays a map of servers connected to the network, from the viewpoint of Services. "Fake" servers—Services itself and any servers jupitered with the `JUPE` command—have "`(*)`" displayed after the sever name.

OPER

Syntax:
  `OPER ADD nickname`
  `OPER DEL nickname`
  `OPER LIST`

Allows Services admins to add or remove nicknames to or from the Services operator list. A user whose nickname is on the Services operator list and who has identified to NickServ will be able to access Services operator commands.

Any IRC operator may use the `OPER LIST` form of the command. All other use limited to Services admins.

ADMIN

Syntax:
  `ADMIN ADD nickname`
  `ADMIN DEL nickname`
  `ADMIN LIST`

Allows the Services super-user to add or remove nicknames to or from the Services admin list. A user whose nickname is on the Services admin list and who has identified to NickServ will be able to access Services admin commands.

Any IRC operator may use the `ADMIN LIST` form of the command. All other use limited to Services super-user.

GETKEY

Syntax:
  `GETKEY channel`

Returns the channel key set on the given channel, if any.

Limited to Services operators.

MODE

Syntax:
  `MODE channel modes`

Allows Services operators to set channel modes for any channel. Parameters are the same as for the standard `/MODE` command.

Limited to Services operators.

CLEARMODES

Syntax:
  `CLEARMODES channel [ALL]`

Clears all channel modes (`n`, `s`, `t`, `k`, `l`, `b`, and so on) from a channel. If ALL is given, also clears all user modes (like `+o` and `+v`) from the channel. However, if the channel is registered, its mode lock will still take effect.

Limited to Services operators.

CLEARCHAN

Syntax:
  `CLEARCHAN channel`

Removes all users from a channel (masskick).

Limited to Services operators.

KICK

Syntax:
  `KICK channel user reason`

Allows IRCops to kick a user from any channel. Parameters are the same as for the standard `/KICK` command. The kick message will have the nickname of the IRCop sending the `KICK` command prepended; for example:

`*** SpamMan has been kicked off channel #my_channel by OperServ (Alcan (Flood))`

Limited to Services operators.

AKILL (requires the `operserv/akill` module)

Syntax:
  `AKILL ADD [+expiry] mask reason`
  `AKILL DEL mask`
  `AKILL CLEAR ALL`
  `AKILL LIST [+start] [pattern] [NOEXPIRE]`
  `AKILL VIEW [+start] [pattern] [NOEXPIRE]`
  `AKILL CHECK mask`
  `AKILL COUNT`

Allows Services operators to manipulate the autokill (AKILL) list. If a user matching an autokill mask attempts to connect, Services will issue a KILL for that user and, on supported server types, will instruct all servers to add a ban (K-line) for the mask which the user matched.

`AKILL ADD` adds the given `user@host` mask to the autokill list. The `reason` should describe why the entry is being added; depending on how Services is configured, it may also be displayed to users in KILL messages. An expiry time can also be specified, as described below.

`AKILL DEL` removes the given mask from the autokill list if it is present.

`AKILL CLEAR` clears (removes) all masks from the autokill list. The `ALL` parameter is mandatory, to avoid accidental use of this command.

`AKILL LIST` shows all current autokills; if the optional pattern is given, the list is limited to those AKILLs matching the pattern. If the `start` parameter is given, it specifies how many matches to skip before displaying results (for example, `+50` would cause the first 50 matches to be skipped). Additionally, `NOEXPIRE` can be used to limit the list to autokills that do not expire.

`AKILL VIEW` is a more verbose version of `AKILL LIST`, and will show who added an autokill, the date it was added, and when it expires, as well as the `user@host` mask and reason.

`AKILL CHECK` will display any entries on the autokill list which the given `user@host` mask would match; this can be used to determine which autokill caused a particular user to be killed.

`AKILL COUNT` simply returns the number of autokills in the autokill list.

Optionally, an expiry time can be given with the `AKILL ADD` command. The expiry time precedes the `user@host` mask, and is specified as an integer followed by one of "`d`" (days), "`h`" (hours), or "`m`" (minutes). Combinations (such as `1h30m`) are also permitted. If a unit specifier is not included, the default is days (so `+30` by itself means 30 days). To add an autokill which does not expire, use `+0`. If the usermask to be added starts with a `+`, an expiry time must be given, even if it is the same as the default (specified with the `AutokillExpiry` option in `modules.conf`).

If the `OperMaxExpiry` option is set in `modules.conf`, Services operators may only set an expiry time up to that limit; otherwise, they may set any expiry time. Services administrators can always set any expiry time.

Limited to Services operators.

AKILLCHAN (requires the `operserv/akill` module)

Syntax:
  `AKILLCHAN [KILL] [+expiry] channel reason`

Adds autokills for all users except IRC operators in a given `channel`, and optionally (if `KILL` is given) removes them from the network. The `reason` will be stored with each autokill, and may be displayed in kill messages depending on how Services is configured. `expiry` takes the same format as in the `AKILL ADD` command; if not given, it defaults to the value given in the `AkillChanExpiry` directive in `modules.conf`.

Autokills added by this command will have the form `*@hostname`, for each hostname used by a client in the channel. If such an autokill already exists for a hostname, it will not be modified; this may cause the number of autokills added to be less than the number of users affected. Also, these autokills will automatically be sent to the IRC network regardless of the status of the `ImmediatelySendAutokill` setting.

Limited to Services operators.

EXCLUDE (requires the `operserv/akill` module)

Syntax:
  `EXCLUDE ADD [+expiry] mask reason`
  `EXCLUDE DEL mask`
  `EXCLUDE CLEAR ALL`
  `EXCLUDE LIST [+start] [pattern] [NOEXPIRE]`
  `EXCLUDE VIEW [+start] [pattern] [NOEXPIRE]`
  `EXCLUDE CHECK mask`
  `EXCLUDE COUNT`

Allows Services operators to manipulate the autokill exclusion list. When a user matching an autokill exclusion mask connects to the network, Services will not issue a `KILL` for that user even if the user would otherwise match an autokill mask. This is useful if you have wide autokill masks, and still want specific hosts or users that match those masks to be able to connect.

The `ADD`, `DEL`, `CLEAR`, `LIST`, `VIEW`, `CHECK`, and `COUNT` subcommands function the same way as the subcommands for the `AKILL` command; see the `AKILL` help for more information. (Note that autokill exclusions are not affected by the state of the `ImmediatelySendAutokill` setting, and are always immediately sent to the server.)

Limited to Services operators.

SGLINE (requires the `operserv/sline` module)

Syntax:
  `SGLINE ADD [+expiry] mask reason`
  `SGLINE DEL mask`
  `SGLINE CLEAR ALL`
  `SGLINE LIST [+start] [pattern] [NOEXPIRE]`
  `SGLINE VIEW [+start] [pattern] [NOEXPIRE]`
  `SGLINE CHECK mask`
  `SGLINE COUNT`

Allows Services operators to manipulate the SGLINE list. If a user whose "real name" matches an SGLINE mask attempts to connect, Services will issue a KILL for that user and, on supported server types, will instruct all servers to add a ban (server G-line) for the mask which the user matched.

`SGLINE ADD` adds the given real name mask to the SGLINE list. The `reason` should describe why the entry is being added; depending on how Services is configured, it may also be displayed to users in KILL messages.

`SGLINE DEL` removes the given mask from the SGLINE list if it is present.

`SGLINE CLEAR` clears (removes) all masks from the SGLINE list. The `ALL` parameter is mandatory, to avoid accidental use of this command.

`SGLINE LIST` shows all SGLINE entries; if the optional pattern is given, the list is limited to those entries matching the pattern. If the `start` parameter is given, it specifies how many matches to skip before displaying results (for example, `+50` would cause the first 50 matches to be skipped). Additionally, `NOEXPIRE` can be used to limit the list to entries that do not expire.

`SGLINE VIEW` is a more verbose version of SGLINE LIST, and will show who added each SGLINE entry, the date it was added, when it was last used, and when it expires, as well as the mask and reason.

`SGLINE CHECK` will display any entries on the SGLINE list which the given user@host mask would match; this can be used to determine which SGLINE caused a particular user to be killed.

`SGLINE COUNT` simply returns the number of entries in the SGLINE list.

The `mask` parameter may be enclosed in double quotes, and must be when the mask contains spaces; for example:

> `/msg OperServ SGLINE ADD +0 "bad name" This is a bad name.`

Optionally, an expiry time can be given with the `SGLINE ADD` command. The expiry time precedes the user@host mask, and is specified as an integer followed by one of "`d`" (days), "`h`" (hours), or "`m`" (minutes). Combinations (such as `1h30m`) are also permitted. If a unit specifier is not included, the default is days (so `+30` by itself means 30 days). To add an entry which does not expire, use `+0`. If the mask to be added starts with a `+` and no expiry time is given, the mask must be enclosed in double quotes, as described above.

Limited to Services operators.

SQLINE (requires the `operserv/sline` module)

Syntax:
  `SQLINE ADD [+expiry] mask reason`
  `SQLINE DEL mask`
  `SQLINE CLEAR ALL`
  `SQLINE LIST [+start] [pattern] [NOEXPIRE]`
  `SQLINE VIEW [+start] [pattern] [NOEXPIRE]`
  `SQLINE CHECK mask`
  `SQLINE COUNT`

Allows Services operators to manipulate the SQLINE list. If a user whose nickname matches an SQLINE mask attempts to connect, Services will either (1) if the `SQlineKill` option is set in `modules.conf` or the IRC server type in use does not support forced nick changing, issue a KILL for that user; or (2) change the user's nickname to a "guest" nickname, and send the user a message that will normally cause the user's IRC client to request a new nickname. On supported server types, Services will also instruct all servers to add a ban (server Q-line) for the mask which the user matched.

If the `SQlineIgnoreOpers` option is set in `modules.conf`, then IRC operators will not be affected by SQlines.

The `ADD`, `DEL`, `CLEAR`, `LIST`, `VIEW`, `CHECK`, and `COUNT` subcommands function the same way as the subcommands for the `SGLINE` command; see the `SGLINE` help for more information.

Limited to Services operators.

SZLINE (requires the `operserv/sline` module)

Syntax:
  `SZLINE ADD [+expiry] mask reason`
  `SZLINE DEL mask`
  `SZLINE CLEAR ALL`
  `SZLINE LIST [+start] [pattern] [NOEXPIRE]`
  `SZLINE VIEW [+start] [pattern] [NOEXPIRE]`
  `SZLINE CHECK mask`
  `SZLINE COUNT`

Allows Services operators to manipulate the SZLINE list. If a user whose IP address matches an SZLINE mask attempts to connect, Services will issue a `KILL` for that user and, on supported server types, will instruct all servers to add a ban (server Z-line) for the mask which the user matched.

The `ADD`, `DEL`, `CLEAR`, `LIST`, `VIEW`, `CHECK`, and `COUNT` subcommands function the same way as the subcommands for the `SGLINE` command; see the `SGLINE` help for more information.

Note that SZLINEs are not supported by all IRC servers, and this command will not be available when using a server without SZLINE support. Some servers may require the `ImmediatelySendSline` option in `modules.conf` to be set in order to use SZLINEs.

Limited to Services operators.

EXCEPTION (requires the `operserv/sessions` module)

Syntax:
  `EXCEPTION ADD [+expiry] mask limit reason`
  `EXCEPTION DEL {mask | list}`
  `EXCEPTION CLEAR ALL`
  `EXCEPTION MOVE num newnum`
  `EXCEPTION LIST [[+start] pattern | list]`
  `EXCEPTION VIEW [[+start] pattern | list]`
  `EXCEPTION CHECK hostname`
  `EXCEPTION COUNT`

Allows Services operators to manipulate the list of hosts that have specific session limits, allowing certain machines, such as shell servers, to carry more than the default number of clients at a time. Once a host reaches its session limit, all clients attempting to connect from that host will be killed. Before the user is killed, they are notified, via a `/NOTICE` from OperServ, of a source of help regarding session limiting. The content of this notice is a configuration setting (`SessionLimitExceeded` and `SessionLimitDetailsLoc` in `modules.conf`).

`EXCEPTION ADD` adds the given host mask to the exception list. Note that `nick!user@host` and `user@host` masks are invalid! Only real host masks, such as `box.host.dom` and `*.host.dom`, are allowed because sessions limiting does not take nick or user names into account. `limit` must be a number greater than or equal to zero; this determines how many sessions this host may carry at a time (a value of zero means the host has an unlimited session limit).

Optionally, an expiry time can be given with the `EXCEPTION ADD` command. The expiry time precedes the host mask, and is specified as an integer followed by one of "`d`" (days), "`h`" (hours), or "`m`" (minutes). Combinations (such as `1h30m`) are also permitted. If a unit specifier is not included, the default is days (so `+30` by itself means 30 days). To add an entry which does not expire, use `+0`. If the mask to be added starts with a `+`, an expiry time must be given, even if it is the same as the default.

`EXCEPTION DEL` removes the given mask or numbered entry or entries from the exception list (entry numbers can be found with `VIEW` or `LIST`).

`EXCEPTION CLEAR` clears (removes) all masks from the autokill exclusion list. The `ALL` parameter is mandatory, to avoid accidental use of this command.

`EXCEPTION MOVE` moves exception `num` to `newnum`. If `newnum` is already used by another exception, its number will be increased to make room.

`EXCEPTION LIST` and `EXCEPTION VIEW` show all current exceptions. If a pattern is given, the display is limited to entries matching the pattern (with the optional `start` parameter giving the number of entries to skip before displaying results); if a number list is given, only entries in the list will be displayed. The difference between the two commands is that `EXCEPTION VIEW` is more verbose, displaying the name of the person who added the exception, its session limit, reason, host mask and the expiry date and time, as well as the last time the exception was "used", i.e. the last time a user connected who matched the exception's mask.

`EXCEPTION CHECK` will display any entries on the exception list which the given hostname would match; this can be used to determine which exception, if any, is applied to a particular user.

`EXCEPTION COUNT` displays the number of entries on the exception list.

Note that when a client connects, the first matching exception found will be applied to that client. Large exception lists and widely matching exception masks are likely to degrade Services' performance.

Limited to Services operators.

SESSION (requires the `operserv/sessions` module)

Syntax:
  `SESSION LIST threshold`
  `SESSION VIEW host`

Allows Services operators to view the session list.

`SESSION LIST` lists hosts with at least `threshold` sessions. The threshold must be a number greater than 1, to prevent accidental listing of the large number of single session hosts.

`SESSION VIEW` displays detailed information about a specific host, including the current session count and session limit. The `host` value may not include wildcards.

See the `EXCEPTION` help for more information about session limiting and how to set session limits specific to certain hosts and groups thereof.

Limited to Services operators.

SU

Syntax:
  `SU password`

Allows access to functions which require Services super-user privileges. The password is the same as that set with the `SET SUPASS` command; note that the password must be set once before using this command. Super-user privileges last until you quit IRC.

WARNING: If you enter an incorrect password, Services will broadcast a warning message to all IRC operators.

Limited to Services admins.

SET

Syntax:
  `SET option setting`

Sets various global Services options. Option names currently defined are:

`READONLY`
  Set read-only or read-write mode
`DEBUG`
  Activate or deactivate debug mode
`SUPASS`
  Set password for `SU` command (super-user)

Limited to Services admins; the `SUPASS` option may only be set by the Services super-user.

SET READONLY

Syntax:
  `SET READONLY {ON | OFF}`

Sets read-only mode on or off. In read-only mode, normal users will not be allowed to modify any Services data, including channel and nickname access lists, etc. IRCops with sufficient Services privileges will be able to modify Services' AKILL list and drop or forbid nicknames and channels, but any such changes will not be saved unless read-only mode is deactivated before Services is terminated or restarted.

This option is equivalent to the command-line option `-readonly`.

SET DEBUG

Syntax:
  `SET DEBUG {ON | OFF | num}`

Sets debug mode on or off. In debug mode, all data sent to and from Services as well as a number of other debugging messages are written to the log file. If `num` is given, debug mode is activated, with the debugging level set to `num`.

This option is equivalent to the command-line option `-debug`.

SET SUPASS

Syntax:
  `SET SUPASS [password]`

Sets the password to be used for the `SU` command. The password must be set once before using the SU command for the first time. If no password is given, the SU command will be unavailable.

This option may only be set by the Services super-user.

JUPE

Syntax:
  `JUPE server [reason]`

Tells Services to jupiter a server—that is, to create a fake "server" connected to Services which prevents the real server of that name from connecting. The jupe may be removed using a standard `/SQUIT`. If a reason is given, it is placed in the server information field; otherwise, the server information field will contain the text "`Jupitered by nickname`", showing the nickname of the person who jupitered the server.

Limited to Services admins.

RAW

Syntax:
  `RAW text`

Sends a string of text directly to the server to which Services is connected, without performing any processing on it. This command is intended primarily for testing of Services and IRC servers; it has a very limited range of uses on a live network, and can wreak havoc on a network or cause Services to crash if used improperly. DO NOT USE THIS COMMAND unless you are absolutely certain you know what you are doing!

Limited to the Services super-user.

UPDATE

Syntax:
  `UPDATE [FORCE]`

Causes Services to update all database files as soon as you send the command. If the `FORCE` option is given, Services will attempt to unlock the databases before performing the update; this can be used to fix "databases are locked" errors when updating the databases.

Limited to Services admins.

QUIT

Syntax:
  `QUIT`

Causes Services to do an immediate shutdown; databases are not saved. This command should not be used unless damage to the in-memory copies of the databases is feared and they should not be saved. For normal shutdowns, use the `SHUTDOWN` command.

Limited to Services admins.

SHUTDOWN

Syntax:
  `SHUTDOWN`

Causes Services to save all databases and then shut down.

Limited to Services admins.

RESTART

Syntax:
  `RESTART`

Causes Services to save all databases and then restart (i.e. exit and immediately re-run the executable).

Limited to Services admins.

REHASH

Syntax:
  `REHASH`

Causes Services to re-read its configuration files and update active settings. Some settings, such as `RemoteServer` (which sets the hostname of the IRC server to connect to), cannot be changed with REHASH, and will only take effect when Services is restarted; in these cases, a message will be written to the Services log file, and a notice will be sent notifying you of this.

If `LoadModule` lines have been added to or removed from the main Services configuration file (`ircservices.conf`), modules will be loaded or unloaded as needed. Modules which no longer have a `LoadModule` line will be unloaded in reverse order of loading; then, after the remaining modules have been rehashed, new modules will be loaded in the order listed in the configuration file. If an error occurs at any step, rehashing will be aborted.

Note that due to module dependencies, some modules cannot be removed or changed via REHASH; in such cases, you will need to restart Services for the changes to take effect.

Limited to Services admins.

KILLCLONES

Syntax:
  `KILLCLONES nickname`

Kills all users who have the same hostname as `nickname`. A temporary AKILL, in the form `*@host`, is added to prevent the offending clients from immediately reconnecting. A `WALLOPS` is also sent indicating who used the command, which host was affected, and how many users were killed. It's useful for removing numerous clones from the network.

Limited to Services operators.

LOGONNEWS

Syntax:
  `LOGONNEWS ADD text` `LOGONNEWS DEL {num | ALL}` `LOGONNEWS LIST`

Edits or displays the list of logon news messages. When a user connects to the network, these messages will be sent to them. (However, no more than three messages will be sent in order to avoid flooding the user. If there are more than three news messages, only the three most recent will be sent.)

`LOGONNEWS LIST` may be used by any IRC operator to list the current news messages. `ADD` and `DEL` may only be used by Services administrators.

OPERNEWS

Syntax:
  `OPERNEWS ADD text` `OPERNEWS DEL {num | ALL}` `OPERNEWS LIST`

Edits or displays the list of logon news messages. When a user opers up (with the `/OPER` command), these messages will be sent to them. (However, no more than three messages will be sent in order to avoid flooding the user. If there are more than three news messages, only the three most recent will be sent.)

`OPERNEWS LIST` may be used by any IRC operator to list the current news messages. `ADD` and `DEL` may only be used by Services administrators.

Back to top

### 4-5. StatServ commands

SERVERS

Syntax:
  `SERVERS STATS`
  `SERVERS LIST [mask]`
  `SERVERS VIEW [mask] [ONLINE | OFFLINE]`
  `SERVERS DELETE server`
  `SERVERS COPY server newname`
  `SERVERS RENAME server newname`

Displays statistics relating to the network's servers.

`SERVERS STATS` displays a brief summary of the servers currently visible (online) and invisible (offline) to Services. `SERVERS LIST` displays a list of online servers and current statistics about each. `SERVERS VIEW` displays a list of online and offline servers with detailed statistics about each. The `ONLINE` and `OFFLINE` options cause, respectively, only online or offline servers to be shown.

Use the `mask` option to limit which servers' statistics are shown.

`DELETE` deletes the specified server's statistics.
`COPY` duplicates a set of server statistics.
`RENAME` rename's a set of server statistics.
These three commands are limited to Services administrators.

USERS

Syntax:
  `USERS STATS`

Displays statistics relating to the network's users.

Back to top

### 4-6. Command index

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

#### A

`ACCESS` (ChanServ)
`ACCESS` (NickServ)
`ADMIN`
`AJOIN`
`AKICK`
`AKILL`
`AOP`
`AUTH`

#### B

#### C

`CLEAR`
`CLEARAUTH`
`CLEARCHAN`
`CLEARMODES`

#### D

`DEHALFOP`
`DEL`
`DEOP`
`DEPROTECT`
`DEVOICE`
`DROP` (ChanServ)
`DROP` (NickServ)
`DROPEMAIL`
`DROPNICK`

#### E

`EXCEPTION`

#### F

`FORBID` (ChanServ)
`FORBID` (NickServ)
`FORWARD`

#### G

`GETAUTH`
`GETKEY`
`GETPASS` (ChanServ)
`GETPASS` (NickServ)
`GHOST`
`GLOBAL`

#### H

`HALFOP`
`HOP`

#### I

`IDENTIFY` (ChanServ)
`IDENTIFY` (NickServ)
`IGNORE`
`INFO` (ChanServ)
`INFO` (MemoServ)
`INFO` (NickServ)
`INVITE`

#### J

`JUPE`

#### K

`KICK` (ChanServ)
`KICK` (OperServ)
`KILLCLONES`

#### L

`LEVELS`
`LINK`
`LIST` (ChanServ)
`LIST` (MemoServ)
`LIST` (NickServ)
`LISTCHANS`
`LISTEMAIL`
`LISTLINKS`
`LOGONNEWS`

#### M

`MODE`

#### N

`NOP`

#### O

`OP`
`OPER`
`OPERNEWS`

#### P

`PROTECT`

#### Q

`QUIT`

#### R

`RAW`
`READ`
`REAUTH`
`RECOVER`
`REGISTER` (ChanServ)
`REGISTER` (NickServ)
`REHASH`
`RELEASE`
`RENUMBER`
`RESTART`

#### S

`SAVE`
`SEND`
`SENDAUTH`
`SERVERMAP`
`SERVERS`
`SESSION`
`SET` (ChanServ)
`SET` (MemoServ)
`SET` (NickServ)
`SET` (OperServ)
`SET DEBUG`
`SET DESC`
`SET EMAIL` (ChanServ)
`SET EMAIL` (NickServ)
`SET ENFORCE`
`SET ENTRYMSG`
`SET FORWARD`
`SET FOUNDER`
`SET HIDE` (ChanServ)
`SET HIDE` (NickServ)
`SET KEEPTOPIC`
`SET KILL`
`SET LANGUAGE`
`SET LEAVEOPS`
`SET LIMIT`
`SET MAINNICK`
`SET MLOCK`
`SET NOEXPIRE` (ChanServ)
`SET NOEXPIRE` (NickServ)
`SET NOTIFY`
`SET OPNOTICE`
`SET PASSWORD` (ChanServ)
`SET PASSWORD` (NickServ)
`SET PRIVATE` (ChanServ)
`SET PRIVATE` (NickServ)
`SET READONLY`
`SET RESTRICTED`
`SET SECURE` (ChanServ)
`SET SECURE` (NickServ)
`SET SECUREOPS`
`SET SUCCESSOR`
`SET SUPASS`
`SET TIMEZONE`
`SET TOPICLOCK`
`SET URL` (ChanServ)
`SET URL` (NickServ)
`SETAUTH`
`SGLINE`
`SHUTDOWN`
`SOP`
`SQLINE`
`STATS`
`STATUS` (ChanServ)
`STATUS` (NickServ)
`SU`
`SUSPEND` (ChanServ)
`SUSPEND` (NickServ)
`SZLINE`

#### T

`TOPIC`

#### U

`UNBAN`
`UNLINK`
`UNSET` (ChanServ)
`UNSET` (NickServ)
`UNSUSPEND` (ChanServ)
`UNSUSPEND` (NickServ)
`UPDATE`
`USERS`

#### V

`VOICE`
`VOP`

#### W

#### X

#### Y

#### Z

Back to top

Previous section: Overview of Services features | Table of Contents | Next section: Importing and exporting databases