Information icon.svg The 2019 RMF board election has started!
We are electing 3 board members for the 2019-2021 term.
Vote here and read their campaign slogans here!


From RationalWiki
Jump to: navigation, search

Bots (short for "robots") are (usually small) computer programs/scripts created to perform repetitive tasks or to ease routine maintenance of a website.

On wikis Bot is a class of user which is usually such a program, although some users have Bot alteregos so that repetitive tasks won't clog up Special:RecentChanges.

A current list of RW's bots can be found here (there are 50). Any of these which are generally applicable should have usage instructions on their user page.

Active bots[edit]


Approximately the fourth incarnation of a talk page archiving bot. Works the same as the others.

Old bots[edit]

How to make your own[edit]

You can talk to the API at See the MediaWiki help pages.


It's probably easiest to use a framework like Pywikibot. You want to use the new "core" version, not the old "compat".

Getting started[edit]

Follow the installation instructions to install Pywikibot & dependencies (note: some systems also have packages for Pywikibot: [1] [2]).

Now create the rationalwiki family; this will tell Pywikibot how to interact with the RationalWiki API:

python3.4 rationalwiki

will give you a family file in pywikibot/families/ The default will do fine for most cases.

You'll need to edit the

mylang = 'en'
family = 'rationalwiki'
usernames['rationalwiki']['en'] = 'MummificationBot'

Finally, test your setup with python login, which should prompt for the login password for your bot, and then output Logged in on somewiki:lang as bot username. The password should be remembered.

Multiple accounts[edit]

Pywikibot only supports a single account name; for separate accounts you could use something along the lines of this in your

import os, sys

mylang = 'en'
family = 'rationalwiki'
user = os.getenv('RW_USER')
valid = {
    'MummificationBot': 'store password here if you want',
    'RedirectBot': 'store password here if you want',

if user not in valid.keys():
    print('No such user; valid users: {}'.format(valid.keys()))

usernames['rationalwiki']['en'] = user

del user
del valid

Now just set the RW_USER environment variable before running the script:

RW_USER=MummificationBot python login

An alternative is using separate Pywikibot directories (this is the documented way, but a bit silly).