The new web management interface, which simplifies many watchlist operations.

WatchlistBot is an XMPP bot that will allow users to maintain a watchlist that is similar to (but separate from) their watchlist on Wikipedia. The key difference is that when a page on a user's WatchlistBot watchlist is changed, they are immediately notified of the edit through their IM client.

If you like using WatchlistBot, you can put ((User:Crazycomputers/Userbox/WatchlistBot)) on your userpage to let others know about this project.

Watchlist entry types

You will be alerted whenever the article is edited.
You will be alerted whenever the user performs an edit.
You will be alerted whenever any IP address in the network performs an edit.
Edits performed by a whitelisted user will never be reported to you, and override all other types of watchlist entries.

Watchlist entry specification

All watchlist entries can be specified with a common syntax, with slight variations for each type of entry:

Networks must be specified as a CIDR block (the notation As indicated above, you can specify the wiki on which to watch edits by this network using the "{language.project}" prefix. As a safeguard, the bot will not permit networks with a network identifier less than 16 bits in length to be watched.

Article and usernames are normalized using a subset of MediaWiki's own normalization algorithm, with a few exceptions:

Attempting to watch an item on a wiki that does not exist will result in an error.


To begin using WatchlistBot, send a subscription request to in your XMPP client. The bot should immediately approve this request. (Note that this is not an email address.)

Then simply send the message "help" to the bot for a command summary. The available commands are also documented here.

Command parsing

The bot employs a very basic version of the parsing algorithm used by the Bourne shell. Specifically, note that single and double quotation marks (' and ") are treated as special, and allow for easier embedding of spaces into command arguments (when needed). If you are trying to watch an article whose title contains one of these characters then you will need to escape them by prefixing them with a backslash (\' or \"). If you don't, the bot will complain that you didn't match your quotation marks properly, unless it was able to find a matching quotation mark in the title. (And if it did, then it won't be watching the article you wanted to watch.)

For example:

article add Don't Let Me Down
Fails with: Unable to parse arguments: unterminated '.
article add Don\'t Let Me Down
Watches Don't Let Me Down. The backslash forces the apostrophe to be taken literally.
article add "Don't Let Me Down"
Also watches Don't Let Me Down. The apostrophe is between a pair of double quotes, and so it is taken literally.
article add "Weird Al" Yankovic
Watches Weird Al Yankovic, which is a redirect to "Weird Al" Yankovic. (The double quotes are consumed by the parser.)
article add \"Weird Al\" Yankovic
Watches "Weird Al" Yankovic by escaping the quotation marks.
article add '"Weird Al" Yankovic'
Watches "Weird Al" Yankovic by embedding the quotation marks in a single-quoted string.

These rules may be unfamiliar to you. If they are, consider copying and pasting URLs instead. All browsers will percent-encode single quotation marks, preventing the command parser from treating them specially. Most browsers also encode double-quotation marks, but this is not technically required, so the safest way to watch pages by URL is to wrap the URL in single quote marks. For example:

article add '"Weird_Al"_Yankovic'
Watches "Weird Al" Yankovic.

You can also use the "quick add" form on the web interface, which does not apply these parsing rules. (Tell the bot "web" to log in to the web interface.)



Display the bot's version and credits.


Manages your list of watched articles. The "add" form adds an entry, "modify" will change options for existing entries (such as the comment), "remove" will remove an entry, and "list" will display all of the current entries.

(The action parameter is subject to completion, so "r" will suffice for "remove", for example.)


article <add|modify> [--comment="comment"] <item>
article remove <item>
article list


Manages your list of watched editors. See the article command for details.


editor <add|modify> [--comment="comment"] <item>
editor remove <item>
editor list


Displays a summary of these commands.


Manages your list of watched networks. See the article command for details.

Networks must be specified in CIDR notation. Equivalent networks are treated as a single entry, so attempting to watch the network while watching will result in an error, since these describe the same network. Likewise, attempting to remove while is on your watchlist will remove


network <add|modify> [--comment="comment"] <item>
network remove <item>
network list


Sets or displays your variables. The following table lists the available variables and describes what they do.

Variable Type Default Description
language String en The default project language.
project String wikipedia The default project name.

Syntax: set [<variable> <setting>]


Displays some operating statistics:

Syntax: stats


Requests an authentication link to the web-based watchlist management interface. Links will expire after five minutes, and requesting a link will invalidate any previous link. (Note that your session does not expire after five minutes, only the authentication link.)

The web interface allows mass deletion of watchlist items, mass alteration of item comments, single addition of items, and mass addition of items. Item specifiers are parsed according to the same Watchlist entry specification syntax that the bot uses.


Manages your list of whitelisted editors. See the article command for details.


whitelist <add|modify> [--comment="comment"] <item>
whitelist remove <item>
whitelist list

Reporting problems


If the bot is not online, reporting the problem to any of my talk pages is unlikely to generate a swift response from me since I won't receive any messages alerting me about your report. The best way to reach me would be via one of my published real-time communication methods.

There is no need to report any downtime to me unless it exceeds a minute or two, since I will frequently restart the bot to apply updates. Usually this only takes a few seconds. If longer downtime is required, I will change the status message at the top of this page.


Use this page's talk page to report any bugs. If possible, please include the commit identifier, which you can obtain by running the "about" command or by visiting the web interface. (If the bot is down, the web interface will still usually respond.) This will help me reproduce the problem in my test environment against the specific version you were using at the time.

Note on hounding

The ability to watch users and networks should not be construed as an endorsement of hounding. These features are provided to assist the counter-vandalism force when keeping tabs on problematic users or networks. Misuse of these features may lead to revocation of access to the bot.



As the bot developer and operator, I necessarily have full access to everyone's watchlist. I will keep this information confidential to the best of my ability. If you are worried about privacy, take note of two things:

  1. I have no knowledge of your IP address, unless you make use of the web interface.
  2. I don't know your Wikipedia account name unless it's part of your IM handle, or you are watching your userpage (and no other userpages).


I provide absolutely no guarantee as to the correctness or timeliness of the information delivered by WatchlistBot. You cannot hold me responsible for information that it fails to deliver, or delivers incorrectly. You cannot hold me responsible for damages that occur arising from the use of, inability to use, or malfunctioning of this service. You cannot hold me responsible for any data security breach that may occur, such as the exposure of the contents of your watchlist and/or your IM handle(s).