From Wikipedia, the free encyclopedia
Jump to: navigation, search
This is about general scripts. For user scripts, see Wikipedia:User scripts. For Greasemonkey user scripts see Wikipedia:Tools/Greasemonkey user scripts. For other tools, see Wikipedia:Tools

This page serves as a central repository for scripts and scripting requests on Wikipedia. Please feel free to improve any of these scripts but make sure to test your changes first. Like the rest of Wikipedia, all material here is under CC-By-SA 3.0. See licensing for further details.



Remember to Keep it Simple, Stupid. Do one thing and do it well; this is a place for simple scripts and not whole programs.


All material on Wikipedia is by default under the WP:CC-BY-SA license (and in most cases, also the GNU Free Documentation License (GFDL)). The CC-BY-SA license is designed for artistic and literary works but not for software. If you want your work to be of the greatest use to the public, please consider dual-licensing it and releasing it under a free software license such as the GNU General Public License (GPL) in addition to the other license(s). Like the GFDL, the GPL is released by the Free Software Foundation. You can use both by explicitly stating in a comment at the start of your script that your script is dual-licensed under the GPL.

IRC channel scripts[edit]

Scripts for mIRC[edit]

Scripts for ChatZilla[edit]

  • /Wikilinks - Makes wikilinks clickable in the output window; contributed to the public domain by IceKarma on April 22, 2005.

Scripts for Colloquy[edit]

Scripts for XChat/HexChat[edit]

Scripts for ircII[edit]

A brief ON trigger for ircII that works with #mwlink below. If I was really elite this would all be in ircII script language, but that would be really too awful to contemplate: besides which, the filter can be useful for other purposes.

 set exec_protection off
 on public -
 on #^public 0 * if (match(*[[* [$2-])) { exec mwlink $shellfix($Z$1<$0> $2-) } { echo $Z$1<$0> $2- }

Note: setting exec_protection off could make you vulnerable to exploits by others unless you know what you're doing with your ON triggers.

Also, the $Z$1<$0> $2- is my preferred format for channel messages; yours may differ.

This is efficient in the sense that it only invokes the filter for lines containing a wiki link; it is inefficient because it invokes it for every line. I couldn't get persistent process communication working for ircII--if someone else can, that would be great.


This ircII-derived client can use almost the same script as ircII, above:

 set exec_protection off
 on public -
 on #^public 0 * if (match(*[[* [$2-])) { exec -direct mwlink $Z$1<$0> $2- } { echo $Z$1<$0> $2- }

Note that the -direct option to /exec is used instead of the $shellfix() function, which EPIC4 does not provide.


Note: the below instructions worked for me in Gaim v1.5.0, but it has been reported not to work with Gaim v2's.--Commander Keane 08:31, 25 July 2006 (UTC)

Use of the linkify plugin plus a wikilink config file allows you to see all those [[links]] that everyone is typing as real links.

  1. Wingaim users who haven't installed activeperl, download activeperl 5.8 first, as per Perl plugin support, then reinstall gaim.
  2. Download the Linkify Perl script from sourceforge. Copy it to your plugins directory (~/.gaim/plugins or C:\Program Files\Gaim\plugins) as described in How do I use perl scripts with Gaim?
  3. Currently in wingaim you need to alter the path line
     my $CfgFile = "$ENV{HOME}/.gaim/linkify.cfg";
     my $CfgFile = "C:/Documents and Settings/YOURUSERNAME/Application Data/.gaim/linkify.cfg";
  4. Download the linkify.cfg example file from the same page. Copy it to ~/.gaim (or UserName\Application Data\.gaim). Currently it is set to change "Bug ###" into a clickable link to bugzilla.
  5. Add the lines:
     # Wikipedia links
    to the config file (and remove the bug linking if you care). The regexp may not be perfect, but you can all refine it! It's a wiki!
  6. Restart Gaim, then go to Tools > Preferences > Plugins and select the "Linkify" plugin.

(Contributed by User:Omegatron)


Met's script[edit]

Use the following script, which will make any [[links]] appear as [[links]] <>. Store it in .irssi/scripts, then you do /load script-name, although it might not take effect in an existing instance of a channel:

(Contributed by Ricky Clarkson, who was channelling 'met' from Freenode IRC, on #irssi)

Hocevar's script[edit]

User:Sam Hocevar has an irssi script to do much the same thing; see his Wikipedia page;


ERC is an IRC client for emacs implemented in Emacs Lisp.

The following code can be added to your emacs initialization file (I put it in ~/.emacs.d/mwlink.el). It uses the #mwlink script below, running in daemon mode (mwlink --daemon); or rather, it depends on it. Your browser will open a URL of the form http://localhost:4242/mwlink?page=<page> and get redirected to the appropriate wikimedia page. This means the following code can be relatively simple (rather than having to figure out languages, namespaces and wikis on its own.

Another note: this depends on the emacs-wiki package for the `emacs-wiki-escape-url' function. I also don't know how well it plays with Custom (though customizing `erc-button-alist' isn't any nicer than doing this or editing it directly).

  (add-to-list 'erc-button-alist
   '("\\[\\[\\(.*?\\)\\]\\]" 0 t
     (lambda (page) (browse-url (concat
                     (emacs-wiki-escape-url page)))) 1))


IceChat 5.5 or below:

  • Press Control-S to bring up Script Editor
  • Paste code into a new script file
  • Hit "update and close" in the Main menu.

IceChat 7:

  • Press Control-S to bring up IceChat Editor
  • Click the 'Scripts' tab, and paste the code into the blank space
  • Click 'File' then 'Save As...'
  • Change the extension from '*.ics' to '*.ice' (IceChat
5 Script), enter a suitable name for the file and save.
  • Hit the "Save & Exit" button.

[10:10] <Someuser> Blah blah blah [[WP:AFD]] blah blah 
blah. [[WP:POINT]] blah blah blah.


To use this script, select Scripting > Edit events..., right-click on the OnChannelMessage event and select New handler, then paste the script.

For using the secure server, change the following line in the used script:




Version 4 introduced small changes in the scripting language KVS and thus old scripts may not work any longer. The Version 4.0+ script has additional the possibility to display URLs for wikilinks which are going to the account creation tool on the toolserver and to link templates correctly.

Wikilink filters[edit]


  • /mwlink - Ruby program that can be run as a daemon (intercepts HTTP requests and redirects them to the appropriate Wikimedia page) or text processor (converts wikilinks to text hyperlinks).

Recent changes scripts[edit]


Here's a short script to open up all contributions from anons in browser windows (works well with tabbed browsing). CryptoDerk 23:04, Feb 15, 2005 (UTC)

Place the following in Tools->Scripts Editor under the remote tab.

ON $50:TEXT:/(http\S+) \* \d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d? /iS:#en.wikipedia: run $regml(1)
alias F9 auser 50 *
alias F11 ruser 50 *

Now just sit in #en.wikipedia and hit F9 to begin. Hit F11 to stop. You can change F9/F11 to whatever function keys you like.

The above script can be adapted to open specific types of edits in #cvn-wp-en:

ON $50:TEXT:/gibberish|copyvio.*diff.*(http\S+)/iS:#cvn-wp-en: run $regml(1)
alias F8 auser 50 *computer@wikipedia
alias F12 ruser 50 *computer@wikipedia

This will open edits that the user with the cloak "computer@wikipedia" labels as "gibberish" or "copyvio". Use F8 and F12 to start and stop the script.

Also, for a frontend to the IRC live feeds, check out CryptoDerk's Vandal Fighter.

Unicode numeric converter scripts[edit]


An HTML character entity converter written in Perl that uses the ord() function to convert a character to its corresponding number in the character set. It operates on standard input.

# Code is in the public domain.
use strict;

my @input  = split (//, <>);
foreach my $c ( @input ) {
       if ( ord($c) >= 255 ) {
               print '&amp;#' . ord($c) . ';';
       } else {
               print $c;


Author: Olof

Notes: I got fed up with looking up Unicode characters, so I wrote an AppleScript for my favorite styled text editor (Style) to write them for me. Now, I can just type Japanese into a text edit window like this

小 泉 純 一 郎

select it, choose my script from the scripts menu, and it turns into

小 泉 純 一 郎 &#23567; &#27849; &#32020; &#19968; &#37070;

Which is what you can paste into the Wikipedia edit window. I'm using a Mac, so this is a mac only solution, but I thought I'd share it for those of you who can use it. Here's the script:

compile this in ScriptEditor, and save it in the "Style Scripts folder in the same folder where the Style application lives. I have mine saved as "Append Unicoded HTML". Thereafter it will appear in Style's Scripts menu.

Style is available at merzwaren ($20 shareware). I have this running on Mac OS X 10.2.1 with Style version 1.9.2



Known to work on:


You may not need a script for converting CJK characters if you have a Mac running Mac OS X 10.2 and have Mozilla as your browser. Just do the editing from within Mozilla. Mozilla automatically does the conversion. For example, in adding this edit, I type in the Japanese characters for "edit," which are 編集. Mozilla automatically converted these characters to the proper romanized Unicode format. Just look at the above lines in the editing box to see for yourself. -User: IppikiOokami 5 September 2003

Watchlist and undeletion select-all script[edit]

This script usefully checks all checkboxes on a Wikipedia page, useful for clearing large watchlists or restoring pages with large histories. It works in Firefox Internet Explorer, Camino and Safari.

In Firefox, create a bookmark, with the following code in the "location" field. In Internet Explorer, create a favourite, and once it's created, right click it, select "properties" and place the following code in the "URL" box (it will give you an invalid protocol warning, but you can ignore this, and it will work).

In Safari, use the "Show all Bookmarks" option. Choose the "Bookmarks Bar" collection. Select the script below into the copy buffer and simply paste ([Command]-v) it into the window on the right. A new bookmark will automatically be created and will appear in the bookmarks bar. Re-name it something sensible like "Select All".

javascript:for (i=0; i<document.forms.length; i++) { for (j=0; j<document.forms[i].elements.length; j++) { f= document.forms[i].elements[j]; if (f.type == 'checkbox') f.checked= true; } } void 0

Upload script[edit]

A script written in Perl to mass upload photographs to Commons. See commons:User:Nichalp/Upload script.

Image file export and migration script[edit]

/ImageFileMigrator Python script to download all files from a MediaWiki and add them to another MediaWiki using a Sysop account.

Categorizing and Turning link color[edit]

After visiting a Wikipedia link, that link changes color from blue to purple on my computer screen. To tag pages with categories, I've been opening all the pages at Category:NA-Class articles, for example, to turn the links purple. Then I use the All pages with prefix. Those pages for which the link still is blue need a Category:NA-Class category tag. It takes a lot of time to initially open all the pages within a particular category to turn the link from blue to purple. Is there a way to change the colors of the links in Category:NA-Class articles as the appear on my computer screen without having to visit each of the links? I tried editing my temporary internet file (browser history) and tried using the 'Print all linked documents' option of windows print feature to printing to a file (that I then deleted). I wasn't able to edit my temporary internet file (browser history) and the 'Print all linked documents' option didn't result in making the category links purple. Can you create me a script that causes all the links on a page (e.g. Category:NA-Class articles) to change color to show that I visited the page (without actually opening the linked page)? I am open to other methods as well. Thanks. GregManninLB (talk) 15:57, 17 April 2008 (UTC)

In follow up, I posted this request at Wikipedia:WikiProject User scripts/Requests. GregManninLB (talk) 16:10, 17 April 2008 (UTC)

Database scripting Requests[edit]

There are a number of pages designed to help with Wikipedia maintenance and editing which are generated by copying the entire Wikipedia database to a machine and running a script or program on it.

Here you can request that someone with a recent copy of the database dump and the appropriate skills update the Specialpages and other pages requiring scripting.

See also: Wikipedia:SQL query requests.

Scripting requests[edit]

  1. Wanted: WikiLinks code for Visual IRC — Preceding unsigned comment added by Xaosflux (talkcontribs) 05:32, 27 November 2005
  2. Wanted: Wikilinks code for Trillian (added 14:03, 28 April 2006 (UTC))
    Looks like the the Trillian Scripting Host might allow someone to easily write a plugin for this. I don't know anything about Trillian scripting or JScript, though. Demi T/C 19:20, 24 January 2007 (UTC)
  3. Wanted: WikiLinks code for IRC within Opera --Smokizzy 05:43, 6 May 2007 (UTC)
    Opera has no support for scripts.Smokizzy (talk) 01:10, 15 August 2007 (UTC)
    userjs and css. (talk) 18:52, 18 October 2008 (UTC)
  4. Wanted: On-page "What Redirects Here" for editors, probably written in JavaScript for use in monobook.js. See Bug 11083 for details. — Jonathan Kovaciny (talk|contribs) 17:21, 31 August 2007 (UTC)
  5. Wanted: An automated to do list. See project idea here.   Zenwhat (talk) 16:27, 18 January 2008 (UTC)
  6. Wanted: A script that can go through a list of articles, or a category, and calculate the mean and median article size of the articles on the list or cat. Specifically, I was wanting a program so that it could look at a cat of Start/B/Stub class articles, eg Category:Start-Class_Vietnam_articles, and then calculate the mean and median size of the articles (not the talk page) in this category. Note that Dr pda (talk · contribs) had created a similar thing at User_talk:Dr_pda/generatestats.js which may be used as a model; his script works only on transcluded templates, rather than category population. Thanks. Blnguyen (vote in the photo straw poll) 07:08, 6 March 2008 (UTC)
  7. Wanted: An RC Patrol script for Chatzilla that is able to run in Ubuntu 8.10. - Until It Sleeps 22:49, 17 December 2008 (UTC)
  8. Wanted: A script (or bot?) that can go through my extra-long watchlist and remove(unwatch) all pages that haven't been edited for at least 2 months(or any user-defined time period). Saves me the tedious work of trimming my watchlist to include only the pages that are likely to have a change since my last edit of them. OlEnglish (talk) 03:15, 4 February 2009 (UTC)
  9. On Wikipedia talk:Manual of Style#Titles in Infoboxes there is a discussion about overly-long lists of honorifics in infoboxes (example: Genghis Khan: Dalai Khagan of the Great Mongol State (Supreme Khan of the Mongols), King of Kings, Khagan of Khamag Mongol, Lord of the Four Colors and Five Tongues, Son of Khan Tengri, Emperor of All Men.) I would like a script that finds the longest 100 or so so we can discuss whether to manually fix the worst cases. --Guy Macon (talk) 07:43, 26 June 2012 (UTC)
  10. Wanted: A script that can add stub templates to an article. - Presidentman talk · contribs Random Picture of the Day (Talkback) 11:31, 2 August 2012 (UTC)
    Found: User:MC10/stubtagtab.js. - Presidentman talk · contribs Random Picture of the Day (Talkback) 17:34, 2 August 2012 (UTC)
  11. Requested: In order to check an WP:FAC article for WP:OVERLINK, I'd appreciate a script that would scan an article and report all instances of a link target that occurs three or more times. This would be much easier than manually perusing a long article looking for links that occur multiple times. It would also complement the existing and tools in Wikipedia:Featured article tools. Thank you. Regards, RJH (talk) 22:16, 23 August 2012 (UTC)
  12. A script that would relink references as I did manually at Bahá'í Faith in Egypt - urls needed to be changed from empty or changed from to another website and parsed for a specific url possible to the direct page along the lines of (where vol and page numbers are used for the urls but not derived from the original pages numbers per printed edition) and also the script should compile errors if a specific url can't be found so that I or others could manually search and find them. There are a likely few thousand instances of these changes to be done.... Smkolins (talk) 13:34, 22 November 2012 (UTC)
  13. Wanted: A script that could add WikiProjects without having to type in {{WikiProject foo}}. That gets really annoying for me sometimes. buffbills7701 21:03, 6 September 2013 (UTC)
  14. Wanted: A script to add tabs for "(object) history" on a talk history page and "talk history" for an object history page. (And please tell me where I can search for existing scripts, which doesn't seem to be in this article.) — Arthur Rubin (talk) 21:21, 30 October 2013 (UTC)
  15. Wanted: A script to remove all talkback notifications from one's userpage on command. -- Ross HillTalkNeed Help? • 03:55, 4 December 2013 (UTC)
  16. Wanted: a script to minimize/show the lefthand sidebar, and recover the space for the displayed article. "Minimizing" replaces the sidebar with a left-margin 4-em-wide blank gray bar. Mousing over the bar shows the full sidebar, mousing away from the sidebar hides it. This is similar to the Feedly app for browsers; show/hide only operates when the page is zoomed in (ctrl-+). Screengrabs --Lexein (talk) 19:54, 9 December 2013 (UTC)
  17. Fix:Any idea why this scipt User:Pyrospirit/metadata/assesslinks.js doesnt work anymore? (It stoped working a few years ago). It add a link in the sidebar (assess link) which color all links in the article in respect to its wikiproject class. Christian75 (talk) 13:28, 13 January 2015 (UTC)