Commands

This page lists all the commands the Helpmebot currently recognises.

Standard commands

!access

Requires  A

Synopsis

Manages user access to the bot

Syntax

!access grant global <mask> <flaggroup>

Grants the specified flag group to the user globally.

!access revoke global <mask> <flaggroup>

Revokes the specified flag group from the user globally.

This command allows management of the bot's access control by managing which flag groups a user is a member of, as shown on the Access control page.

Masks

This command requires a mask or an account name to apply the flag group change to. The bot will try to interpret what you mean, but it is recommended to either use a plain account name, or a full nick!user@host mask.

  • If you wish to apply the change to a NickServ account, simply specify the account name - for example !access grant global stwalkerster Superuser
  • If you wish to apply the change to a nickname, specify nick!*@* - for example !access grant global nick!*@* Superuser. Note that nickname grants are considered insecure.
  • If you wish to apply the change to a hostname or cloak, specify *!*@hostname.example.net
Global vs Local

Use the global modifier to change the user's membership of a group across all channels.

Local access is currently not supported.

!afccount

Requires  I

Synopsis

Returns the number of AfC submissions awaiting review

Aliases:
  • !afcbacklog
Syntax

!afccount

!basewiki

Requires  I

Synopsis

Configures which wiki is used by the bot for commands which pull data from the wiki.

Syntax

!basewiki [OPTIONS]

Retrieves the base wiki this channel is configured to use

Options
--target=VALUE

The target channel to apply this command to

!basewiki list

Lists all the wikis the bot is configured to use

Requires  P

!basewiki set [OPTIONS] <wiki>

Sets the base wiki for this channel. Use the "database" name of the wiki, eg `enwiki` or `commonswiki`.

Options
--target=VALUE

The target channel to apply this command to

Requires  c or  C

!blockinfo

Requires  I

Synopsis

Returns information about active blocks on the provided target

Syntax

!blockinfo <target>

!blockmonitor

Requires  C

Synopsis

Manages configuration of on-wiki block reporting

Syntax

!blockmonitor add <channel>

Adds monitoring of blocked users joining the specified channel, reporting in the current channel

!blockmonitor del <channel>

Removes monitoring of blocked users joining the specified channel, reporting in the current channel

Aliases
  • !blockmonitor delete
  • !blockmonitor remove

!botops

Requires  o

Synopsis

Commands to manage the bot's use of chanop privileges

Syntax

!botops grant

Requests the bot gain channel operator status. Requires ChanServ flag `+o` on the target channel.

!botops revoke

Requests the bot remove channel operator status from itself.

!botops topic <topic>

Replaces the channel topic with the specified value

Requires  O

!botops sync <channel>

Runs a ChanServ SYNC on the specified channel. Requires ChanServ flag `+R` on the target channel.

Requires  O

!categorysize

Requires  I

Synopsis

Returns the number of items in the provided category

Aliases:
  • !catsize
Syntax

!categorysize <category>

!contribs

Requires  I

Synopsis

Returns information on the last contribution for this user

Syntax

!contribs <username>

!crosschannel

Requires  C

Syntax

!crosschannel configure <channel>

Sets up cross-channel notifications from the provided ("frontend") channel to this ("backend") channel.

This command should be run in the desired backend channel.

!crosschannel deconfigure

Removes cross-channel notification configuration from this channel.

This command should be run in the backend channel.

!crosschannel notifications [OPTIONS]

Manages the notification state. Without parameters, this will return the current state.

Aliases
  • !crosschannel notify
Options
--enable

Enable notifications

--disable

Disable notifications

!crosschannel notifykeyword <keyword>

Sets the keyword used for triggering the notification

!crosschannel notifymessage <message>

Sets the message used for the notification.

This command configures any cross-channel operations which the bot supports.

Currently, this is used for:

  • Notification commands (such as !helper in #wikipedia-en-help) notifying a backend channel of it's usage
  • Welcomer notifications about ban exemption setting
  • !forcewelcome cross-channel usage
Setting a notification message

The notification message specified using !crosschannel notifymessage is the message sent to the backend channel when the command is triggered.

The message is not stored as a usual response message, but is the actual message to be sent. This message accepts three parameters:

  • {0}: the nickname of the person triggering the command
  • {1}: the channel the command was triggered in
  • {2}: the message given by the user, if any.

Both the notification message and the keyword to be used to trigger the message must be set before notifications can be enabled in the channel.

!curl

Requires  P

Synopsis

Disables all fun commands in the current channel.

Syntax

!curl

!decode

Requires  P

Synopsis

Decodes a hexadecimal representation of an IP address.

Syntax

!decode <hex>

!editcount

Requires  I

Synopsis

Returns your edit count or the edit count for the specified user

Aliases:
  • !count
Syntax

!editcount [username]

!flaggroup

Requires  S

Synopsis

Manages bot user access control groups

Syntax

!flaggroup list

Lists the currently configured flag groups

Aliases
  • !flaggroup

!flaggroup add <name> <flags>

Adds a new flag group

Aliases
  • !flaggroup create

Requires  A

!flaggroup modify <name> <flag changes>

Modifies the flags on an existing flag group

Requires  A

!flaggroup set <name> <flags>

Sets the flags on an existing flag group

Requires  A

!flaggroup mode <name> granting|revoking

Sets the mode the flag group operates in - either granting flags from a user, or revoking flags from a user.

Requires  A

!flaggroup delete <name>

Deletes an existing flag group

Aliases
  • !flaggroup remove
  • !flaggroup del
  • !flaggroup rm

Requires  A

!forcewelcome

Requires  P

Synopsis

Forces the welcomer to trigger for the provided nickname, giving them the standard welcome message.

Aliases:
  • !fwelcome
  • !welcomef
Syntax

!forcewelcome <nickname>

!gancount

Requires  I

Synopsis

Returns the number of GAN submissions awaiting review

Syntax

!gancount

!google

Requires  I

Synopsis

Returns a message with a link to a google search result

Syntax

!google <search>

!idlehelpees

Requires  P

Synopsis

Returns a list of helpees and their in-channel idle time, including the last-active helpers

Syntax

!idlehelpees

!idleremove

Requires  o

Synopsis

Removes idle helpees from the channel

Syntax

!idleremove [OPTIONS] <nickname...>

Removes the listed helpees who have been inactive for more than 15 minutes by the bot's reckoning. Nicknames not eligible are automatically filtered out.

Options
--force

Force the removal, bypassing safety protections

--dry-run --dryrun

List who will be removed from the channel, but don't actually do it

!interwiki

Requires  C

Synopsis

Manages the bot's list of interwiki prefixes for constructing links.

Aliases:
  • !iw
Syntax

!interwiki add <interwiki> <url>

Adds or updates the specified interwiki entry

Aliases
  • !interwiki insert
  • !interwiki edit
  • !interwiki update

!interwiki delete <interwiki>

Removes the specified interwiki entry

Aliases
  • !interwiki del
  • !interwiki rm
  • !interwiki remove

!interwiki import

Imports all interwiki prefixes from the active MediaWiki site. Any new entries will be automatically added; any updated or deleted entries will be held for review.

!interwiki accept <prefix>

Accepts a held modification of an entry as correct

!interwiki reject <prefix>

Rejects a held modification of an entry

!interwiki forgetmissing

Removes any markers for interwikis created or missing from the last import.

!ipinfo

Requires  P

Synopsis

Returns the controlling organisation and the real-world location for the provided IP address

Aliases:
  • !geolocate
  • !whois
Syntax

!ipinfo <ip>

!ipinfo <hexstring>

!ipinfo <nickname>

!join

Requires  M

Synopsis

Joins the specified channel

Syntax

!join <channel>

This command is also usable through an /invite on IRC.

!kb

Requires  O

Synopsis

Kickbans the specified user.

Syntax

!kb [OPTIONS] <nickname>

Options
--force

Force the kickban to apply even if the user is cloaked

!ld

Requires  O

Synopsis

Enables channel lockdown mode, quieting all unregistered users and exempting as configured in the welcomer.

Syntax

!ld

!maxlag

Requires  I

Synopsis

Returns the maximum replication lag on the channel's MediaWiki instance

Syntax

!maxlag

!message

Requires  C or  c

Synopsis

Manages/alters the bot's response strings for hard-coded commands

Aliases:
  • !response
Syntax

!message set <global|local> <key> <alternate> <line> <value...>

Changes a message line for the specified alternate in the database to the provided value, creating new if necessary

!message remove <global|local> <key> <alternate> <line>

Removes the specified alternate message or message line from the database, removing the entire alternate or message from the database if is is the last one.

Aliases
  • !message del

This command manages the bot's responses in the database, as shown at the Responses page.

Alternates and Lines

Messages are defined under a specific key, and are split twice - firstly into a set of message "alternates", then into a set of "lines". When a message is requested, one alternate will be chosen at random, then all lines in that alternate will be sent.

On the Responses page, alternates are numbered to make it easier to determine which alternate is which.

For the majority of commands, there is a single line in a single alternate, so the alternate and line parameters will both be 1. For example, to modify a message such as brain.command.learn to the value "I remember!", the following command can be used:

!message set global brain.command.learn 1 1 I remember!

To add a new line or alternate, just specify a number which is larger than the current set - for example, this will add a second alternative to the aforementioned message:

!message set global brain.command.learn 2 1 Saved to database

Removing lines or alternates is similar - just specify the alternate and line to remove. If the removed line is the last line in an alternate, the entire alternate will be removed. If the removed alternate is the last alternate in the message, the entire message will revert to the default value.

!message remove global brain.command.learn 2 1
Global vs Local

Use the global modifier to change the message across all channels.

Use the local modifier to change the message just for the current channel.

Please note that there is no differentiation between private messages - a local change done in private message to the bot will change the message for all private messages for any user. This is for technical reasons - the bot will store the change with it's current nickname as the "channel".

!myflags

Requires  S

Aliases:
  • !myaccess
  • !whoami
Syntax

!myflags

!page

Requires  I

Synopsis

Provides basic information on the provided page

Syntax

!page <page title>

!part

Requires  M or  c

Synopsis

Leave an IRC channel

Syntax

!part [channel]

Leaves the specified channel, or the current channel if no channel is specified.

!ping

Requires  S

Synopsis

Replies to a ping with a pong

Syntax

!ping [username]

!quit

Requires  O

Synopsis

Shuts down the bot.

Aliases:
  • !die
Syntax

!quit <nickname>

Shuts down the bot. Provide the bot's nickname to confirm the request

!registration

Requires  I

Synopsis

Returns the registration date and account age of the specified user

Aliases:
  • !reg
  • !age
Syntax

!registration <username>

!resolve

Requires  I

Synopsis

Performs a DNS lookup on the requested address

Aliases:
  • !dns
Syntax

!resolve <ip>

!resolve <hostname>

!reviewstatus

Requires  I

Synopsis

Provides the current status of a draft

Aliases:
  • !draftstatus
  • !draft
Syntax

!reviewstatus <draft>

!rights

Requires  I

Synopsis

Returns the list of groups you or the specified user currently hold

Aliases:
  • !userrights
  • !usergroups
  • !groups
Syntax

!rights [username]

!shorten

Requires  S

Synopsis

Shortens the provided URL

Aliases:
  • !shorturl
  • !isgd
  • !hmbim
Syntax

!shorten <url>

!silence

Requires  c or  C

Synopsis

Manages the bot's quiescent mode.

Syntax

!silence enable

Enables silent mode for the current channel

!silence disable

Disables silent mode for the current channel

!time

Requires  S

Synopsis

Returns the current UTC date and time

Aliases:
  • !date
Syntax

!time

!track

Requires  o

Synopsis

Adds a user to tracking

Syntax

!track <nickname>

!uncurl

Requires  U

Synopsis

Enables all fun commands in the current channel.

Syntax

!uncurl

!untrack

Requires  P

Synopsis

Prevents the provided nickname from triggering tracking alerts. This safe-listing will only last until they leave the channel, and only gives a reprieve from bot-initiated violence by reducing the user's current score by a large value. Sufficient additional hits will result in the user being added back to tracking.

Syntax

!untrack <nickname>

!uptime

Requires  S

Synopsis

Returns the current uptime of the bot

Syntax

!uptime

!userinfo

Requires  I

Synopsis

Gives a batch of information on the specified user.

Syntax

!userinfo [username]

!welcomer

Requires  c or  C

Synopsis

Manages the on-join welcome message

Syntax

!welcomer list [OPTIONS]

Lists all masks configured to be welcomed in this channel

Options
--target=VALUE

The target channel to apply this command to

!welcomer add [OPTIONS]

Adds a mask to the welcome list for the current channel.

All attributes default to `.*`; use the listed options to override specific attributes.

Options
--target=VALUE

The target channel to apply this command to

--ignore

Interpret this mask as an exception rule instead of a match rule

--host=VALUE

Specify the hostname part of the mask to use

--user=VALUE

Specify the username part of the mask to use

--nick=VALUE

Specify the hostname part of the mask to use

--account=VALUE

Specify the NickServ account part of the mask to use

--realname=VALUE

Specify the GECOS/realname part of the mask to use

!welcomer del [OPTIONS]

Removes a mask from the welcome list for the current channel.

Aliases
  • !welcomer delete
  • !welcomer remove
Options
--target=VALUE

The target channel to apply this command to

--ignore

Interpret this mask as an exception rule instead of a match rule

--host=VALUE

Specify the hostname part of the mask to use

--user=VALUE

Specify the username part of the mask to use

--nick=VALUE

Specify the hostname part of the mask to use

--account=VALUE

Specify the NickServ account part of the mask to use

--realname=VALUE

Specify the GECOS/realname part of the mask to use

!welcomer mode [OPTIONS] none

!welcomer mode [OPTIONS] <mode>

Sets the welcomer override mode

This enables a specific override rule for the welcomer allowing a different welcome message to be used for users matching pre-defined conditions

Aliases
  • !welcomer override
  • !welcomer overridemode
Options
--target=VALUE

The target channel to apply this command to

This command configures the channel welcomer. Any user who has a hostmask on the list (but not on the ignore list) will be greeted with the message defined by the response channelservices.welcomer.welcome on their entry to the channel. It is strongly recommended to set a local override for this message in the channel.

If an override mode is configured, then a different message key might be used.

If there are no hostmasks in the list to be welcomed, then nobody will be welcomed.

Brain commands

Commands used to manage the bot's stored responses

!brainedit

Requires  b

Synopsis

Edits an existing brain entry by applying a sed-style expression to a message.

Aliases:
  • !editbrain
Syntax

!brainedit test <keyword> <expression>

Applies the expression to the content of the specified learnt command, and returns the result

Expressions should be in GNU sed substitution format ( s/search/replace/ ), but using .NET-flavour regular expressions. The flags g and i are supported for global matches and case insensitive matches respectively.

For backreferences in the search pattern, use the \1 format. For backreferences in the replacement pattern, use $1 format.

Aliases
  • !brainedit dryrun

!brainedit edit <keyword> <expression>

Applies the expression to the content of the specified learnt command as 'test' subcommand, and saves the change to the message.

!brainsearch

Requires  P

Synopsis

Searches for a brain entry by content, returning the keywords of any matching entries. If there are few enough results, the full content of those entries will also be returned.

Aliases:
  • !bs
Syntax

!brainsearch <search...>

The text to search for in all brain entries

!forget

Requires  b

Synopsis

Removes the provided keywords from the learnt command list.

Syntax

!forget <keyword> [keyword...]

Provide the keyword(s) to remove as parameters.

At least one keyword is required.

!learn

Requires  b

Synopsis

Creates a new learnt command

Aliases:
  • !teach
Syntax

!learn [OPTIONS] <keyword> <message>

Creates a new learnt command invoked by <keyword> to respond with the provided message

Options
--action

Send the response as a CTCP action (aka a /me command) instead of a normal message

Available variables

You may use the following variables in your message:

  • Numbered variables such as {0}, {1}, and {2} may be used to reflect the input passed to Helpmebot with the command.
  • Numbered variables can also be used like {1*} to display everything from parameter {1} to the end of the input. Note that numbered variables start at 0 so {1} would be the second word.
  • URL encoding can be added by specifying :url just inside the closing brace, or an approximation of MediaWiki title encoding can be added by specifying :title just inside the closing brace. For example, {3*:title}
  • {channel} is the full name of the current channel.
  • {nickname}!{username}@{hostname} are three variables that represent the host mask of the user calling the command.
    • {nickname} is the user's nick in the channel
    • {username} is also known as "ident" on other IRC servers.
    • {hostname} this will be the user's cloak if they have one, otherwise it will be the host ISP's name and maybe IPv4 address they are connected from.

Category watcher commands

Commands used to trigger an immediate update of the category watchers

!adminhelp

Requires  I

Synopsis

Retrieves the current items for the adminhelp category watcher.

Syntax

!adminhelp

For more information on the category watchers, see the category watcher information page.

!catwatcher

Requires  P

Synopsis

Manages category watcher configuration

Syntax

!catwatcher list

Lists all configured category watchers

!catwatcher create <flag> <wiki> <category>

Adds a category watcher with the specified flag, on the specified wiki shortcode, watching the specified category.

Requires  C

!catwatcher delete <flag>

Removes a category watcher entirely.

The category watcher must be disabled in every channel before it can be deleted.

Requires  C

!catwatcher configure [OPTIONS] <flag>

Aliases
  • !catwatcher config
Options
-e --enable

Enable reporting in this channel

-d --disable

Disable reporting in this channel

-i=VALUE --interval=VALUE

Sets the interval (in seconds) between reporting category members to the channel

-w --show-wait-time

Show the wait time of each item

-W --hide-wait-time

Hide the wait time of each item

-m=VALUE --min-wait-time=VALUE

Set the minimum wait time of an item before the wait time is shown (if enabled)

-l --show-links

Show the URL to each item as well as the wikilink

-L --hide-links

Hide the URL to each item, showing only the wikilink

-a --show-additions

Report additions to the category as they are detected

-A --hide-additions

Don't report additions

-r --show-removals

Report removals from the category as soon as they are detected

-R --hide-removals

Don't report removals

-s=VALUE --statusmsg=VALUE

Configure message target within channel. Use `@` to only send to channel operators, or `+` to only send to voiced users. Use `all` to send to everyone.

-t=VALUE --anchor=VALUE

Configure a specific anchor on the page to link to. For example, set to `potato` for link to `https://enwp.org/User_talk:Example#potato`. To clear, use an empty parameter (eg, `--anchor=`

Requires  C or  c

!catwatcher status

Returns the current configuration of all the defined category watchers for this channel.

!catwatcherignored

Requires  P

Synopsis

Manages pages ignored by the category watcher

Syntax

!catwatcherignored list

Lists all pages ignored by category watchers

!catwatcherignored add <page>

Adds a page to the category watcher ignore list

Requires  C

!catwatcherignored remove <page>

Removes a page from the category watcher ignore list

Requires  C

!ecer

Requires  I

Synopsis

Retrieves the current items for the ecer category watcher.

Syntax

!ecer

For more information on the category watchers, see the category watcher information page.

!editreq

Requires  I

Synopsis

Retrieves the current items for the editreq category watcher.

Syntax

!editreq

For more information on the category watchers, see the category watcher information page.

!fetchall

Requires  P

Synopsis

Returns the current state of all category watchers configured in the current channel.

Syntax

!fetchall [OPTIONS]

Options
--all

Return the current state of all category watchers configured on the bot.

!g10

Requires  I

Synopsis

Retrieves the current items for the g10 category watcher.

Syntax

!g10

For more information on the category watchers, see the category watcher information page.

!helpme

Requires  I

Synopsis

Retrieves the current items for the helpme category watcher.

Syntax

!helpme

For more information on the category watchers, see the category watcher information page.

!per

Requires  I

Synopsis

Retrieves the current items for the per category watcher.

Syntax

!per

For more information on the category watchers, see the category watcher information page.

!sper

Requires  I

Synopsis

Retrieves the current items for the sper category watcher.

Syntax

!sper

For more information on the category watchers, see the category watcher information page.

!tper

Requires  I

Synopsis

Retrieves the current items for the tper category watcher.

Syntax

!tper

For more information on the category watchers, see the category watcher information page.

!unblock

Requires  I

Synopsis

Retrieves the current items for the unblock category watcher.

Syntax

!unblock

For more information on the category watchers, see the category watcher information page.

ACC commands

Commands used for Wikipedia's ACC process

!acccount

Requires  a

Synopsis

Provides statistics on the number of ACC requests closed

Syntax

!acccount [username]

Returns stats for the given user, or the nickname of the current user if not specified

!accdeploy

Requires  a

Synopsis

Utility command for ACC tool development deployment

Syntax

!accdeploy <branch>

Deploys the specified branch to the ACC sandbox environment

!accstats

Requires  a

Synopsis

Provides information on an ACC user

Syntax

!accstats [username]

Returns stats for the given user, or the nickname of the current user if not specified

!accstatus

Requires  a

Synopsis

Reports the current status of the ACC tool

Syntax

!accstatus

!notifications

Requires  c or  C

Synopsis

Manages AMQP notification delivery to the channel.

Syntax

!notifications enable

Enables delivery of notifications to this channel. For notifications to actually arrive, they must also be sent to the bot via AMQP.

!notifications disable

Disables delivery of notifications to this channel

Fun commands

Non-serious commands for non-serious channels. Fun commands can be disabled per-channel using !curl, so these might not be available for use in all channels.

!beer

Requires  F

Synopsis

Samples the local brewery.

Syntax

!beer [user]

!champagne

Requires  F

Synopsis

Classy refreshment

Syntax

!champagne [user]

!charge

Requires  F

Synopsis

Charges up some weaponry

Syntax

!charge [user]

!cluebat

Requires  F

Synopsis

Prepares for re-education

Syntax

!cluebat [user]

!coffee

Requires  F

Synopsis

Caffeine fix?

Syntax

!coffee [user]

!drink

Requires  F

Synopsis

Feeling thirsty?

Syntax

!drink [user]

!electrocute

Requires  F

Synopsis

High voltages tend to be dangerous...

Syntax

!electrocute [user]

!exorcise

Requires  F

Synopsis

Purges demons and other system background services

Syntax

!exorcise [user]

!hotchocolate

Requires  F

Synopsis

Chocolatey goodness

Aliases:
  • !hotchoc
Syntax

!hotchocolate [user]

!icecream

Requires  F

Synopsis

Frozen calories

Syntax

!icecream [user]

!minnow

Requires  F

Synopsis

For when a trout is too much

Syntax

!minnow [user]

!nuke

Requires  F

Synopsis

Probably overkill.

Syntax

!nuke [user]

!pat

Requires  F

Synopsis

Head pats

Syntax

!pat [user]

!pie

Requires  F

Synopsis

Target practice?

Syntax

!pie [user]

!pillow

Requires  F

Synopsis

That thing you rest your head on? Yeah, that. At high speed.

Aliases:
  • !pillowfight
Syntax

!pillow [user]

!salmon

Requires  F

Synopsis

A more up-market version of a trout.

Syntax

!salmon [user]

!sayhi

Requires  F

Synopsis

Greetings human.

Syntax

!sayhi

!soda

Requires  F

Synopsis

Fizzy refreshment

Syntax

!soda [user]

!tea

Requires  F

Synopsis

Brew us a cuppa!

Syntax

!tea [user]

!trout

Requires  F

Synopsis

THWACK!

Syntax

!trout [user]

!whale

Requires  F

Synopsis

For when a simple trout just isn't enough...

Syntax

!whale [user]

!whistle

Requires  F

Synopsis

Music box

Syntax

!whistle

!wine

Requires  F

Synopsis

Probably not vintage.

Syntax

!wine [user]

Diagnostic commands

Bot diagnostics and debugging tools

!raw

Requires  O

Synopsis

Injects the specified message directly onto the IRC network socket

Syntax

!raw <IRC protocol message>

!rawctcp

Requires  O

Synopsis

Sends a CTCP command to the specified destination

Syntax

!rawctcp <CTCP command> <destination> [content]

!version

Requires  S

Synopsis

Provides the current version of the bot and the key libraries

Syntax

!version [OPTIONS]

Options
--modules

Include the versions of all loaded modules