Sopel

The Python IRC Bot

Plugin commands

This page contains a list of all commands from plugins within Sopel’s main plugins directory. If you have added plugins without rebuilding the documentation, or are using a secondary plugins directory, those plugins will not be shown here.

Command(s) Purpose Example Plugin
.chanlist
.channels
Show channels Sopel is in.   admin
.join Join the specified channel. This is an admin-only command. .join #example admin
.me Send an ACTION (/me) to a given channel or nick. Can only be done in
privmsg by an admin.
  admin
.mode Set a user mode on Sopel. Can only be done in privmsg by an admin.   admin
.part Part the specified channel. This is an admin-only command. .part #example admin
.quit Quit from the server. This is an owner-only command.   admin
.raw Send a raw IRC message. Can only be done in privmsg by the bot owner.
This is mostly useful for debugging.
.raw PRIVMSG NickServ :CERT ADD admin
.restart Restart the bot. This is an owner-only command.   admin
.save Save state of Sopel’s config object to the configuration file. .save admin
.say
.msg
Send a message to a given channel or nick. Can only be done in privmsg by
an admin.
.say #YourPants Does anyone else smell neurotoxin? admin
.set See and modify values of Sopel’s config object.

Trigger args:
arg1 - section and option, in the form “section.option”
arg2 - value

If there is no section, section will default to “core”.
If value is not provided, the current value will be displayed.
.set core.owner MyNick admin
.tmpjoin Like join, without saving. This is an admin-only command.

Unlike the join command, tmpjoin won’t remember the channel upon
restarting the bot.
.tmpjoin #example admin
.tmppart Like part, without saving. This is an admin-only command.

Unlike the part command, tmppart will rejoin the channel upon
restarting the bot.
.tmppart #example admin
.unset Unset value of Sopel’s config object.

Unsetting a value will reset it to the default specified in the config
definition.

Trigger args:
arg1 - section and option, in the form “section.option”

If there is no section, section will default to “core”.
.unset core.owner admin
.ban Ban a user from the channel

The bot must be a channel operator for this command to work.
  adminchannel
.deop Command to deop users in a room. If no nick is given,
Sopel will deop the nick who sent the command
  adminchannel
.devoice Command to devoice users in a room. If no nick is given,
Sopel will devoice the nick who sent the command
  adminchannel
.kick Kick a user from the channel.   adminchannel
.kickban
.kb
Kick and ban a user from the channel

The bot must be a channel operator for this command to work.
.kickban [#chan] user1 user!*@* get out of here adminchannel
.op Command to op users in a room. If no nick is given,
Sopel will op the nick who sent the command
  adminchannel
.quiet Quiet a user

The bot must be a channel operator for this command to work.
  adminchannel
.topic Change the channel topic

The bot must be a channel operator for this command to work in +t channels.
  adminchannel
.tmask set
.tmask get
.tmask clear
.tmask
Set, get, or clear the current channel’s topic mask.

Recognized subcommands are ‘set’, ‘get’, and ‘clear’. A plain ‘tmask’
command with no arguments is equivalent to ‘tmask get’.

This mask is used by the ‘topic’ command. {} allows interpolating a chunk
of text within the topic mask template.
.tmask set My {} topic mask! adminchannel
.unban Unban a user from the channel

The bot must be a channel operator for this command to work.
  adminchannel
.unquiet Unquiet a user

The bot must be a channel operator for this command to work.
  adminchannel
.voice Command to voice users in a room. If no nick is given,
Sopel will voice the nick who sent the command
  adminchannel
.announce Send an announcement to all channels the bot is in. .announce Some important message here announce
.c
.calc
Evaluate some calculation. .c 5 / 2 calc
.choose
.choice
.ch
Makes a difficult choice easy. .choose a, b, c choose
.t
.time
Return the current time.

The command takes an optional parameter: it will try to guess if it’s a
nick, a channel, or a timezone (in that order).

If it’s a known nick or channel but there is no configured timezone, then
it will complain. If nothing can be found, it’ll complain that the argument
is not a valid timezone.

The format used can be set with the settf or setctf commands.
.t clock
.tz
.timez
Return the current time in a timezone.

Unlike the time command, it requires an argument, and that argument
must be a valid timezone.
.tz America/New_York clock
.getchanneltimeformat
.getctf
Gets the channel’s preferred time format

It returns the current channel’s if no channel name is given.
.getctf clock
.getchanneltz
.getctz
Gets the channel’s preferred timezone.

It returns the current channel’s if no channel name is given.
.getctz clock
.gettimeformat
.gettf
Gets a user’s preferred time format.

It will show yours if no user specified.
.gettf clock
.gettz
.gettimezone
Gets a user’s preferred time zone.

It will show yours if no user specified.
.gettz clock
.unsetchanneltz
.unsetctz
Unset the preferred timezone for the current channel. .unsetctz clock
.unsetchanneltimeformat
.unsetctf
Unset the preferred time format for the current channel. .unsetctf clock
.unsettimeformat
.unsettf
Unsets your preferred format for time. .unsettf clock
.unsettz
.unsettimezone
Unset your preferred timezone. .unsettz clock
.setchanneltz
.setctz
Set the preferred timezone for the current channel. .setctz America/New_York clock
.setchanneltimeformat
.setctf
Sets your preferred format for time.

Uses the standard strftime format. You can use http://strftime.net or
your favorite search engine to learn more.
.setctf %Y-%m-%dT%T%z clock
.settz
.settimezone
Set your preferred timezone.

Most timezones will work, but it’s best to use one from
https://sopel.chat/tz.
.settz America/New_York clock
.settimeformat
.settf
Sets your preferred format for time.

Uses the standard strftime format. You can use http://strftime.net or
your favorite search engine to learn more.
.settf %Y-%m-%dT%T%z clock
.countdown Displays a countdown to a given date. .countdown 2078 09 14 countdown
.cur
.currency
.exchange
Show the exchange rate between two currencies. .cur 100 usd in btc cad eur can aux currency
.currencies List which currency codes are supported for conversion.   currency
.roll
.dice
.d
Rolls dice and reports the result.

The dice roll follows this format: XdY[vZ][+N][#COMMENT]

X is the number of dice. Y is the number of faces in the dice. Z is the
number of lowest dice to be dropped from the result. N is the constant to
be applied to the end result. Comment is for easily noting the purpose.
.roll 1d6 dice
.afraid No documentation found. .afraid emoticons
.rage
.anger
No documentation found. .anger emoticons
.crazy No documentation found. .crazy emoticons
.cry No documentation found. .cry emoticons
.happy No documentation found. .happy emoticons
.hungry No documentation found. .hungry emoticons
.lenny No documentation found. .lenny emoticons
.love No documentation found. .love emoticons
.shrug No documentation found. .shrug emoticons
.sick No documentation found. .sick emoticons
.smirk No documentation found. .smirk emoticons
.success
.winner
No documentation found. .winner emoticons
.surprised No documentation found. .surprised emoticons
.tableflip
.tflip
No documentation found. .tflip emoticons
.unflip
.tback
No documentation found. .unflip emoticons
.confused
.wat
No documentation found. .wat emoticons
.worried No documentation found. .worried emoticons
.invite Invite the given user to the current channel, or (with optional
second argument) another channel that Sopel is in.
.invite converge #sopel invite
.isup Check if a website is up or not. .isup google.com isup
.isupinsecure Check if a website is up (without verifying HTTPS).   isup
.lmgtfy
.lmgify
.gify
.gtfy
Let me just… Google that for you. .lmgtfy lmgtfy
.ping Reply to ping command.   ping
.pronouns Show the pronouns for a given user, defaulting to the current user if left blank. .pronouns Embolalia pronouns
.setpronouns Set your pronouns. .setpronouns they/them pronouns
.clearpronouns Clear pronouns for the given user.   pronouns
.rand Replies with a random number between first and second argument. .rand 10 99 rand
.load Wrapper for allowing delivery of .load command via PM   reload
.reload Wrapper for allowing delivery of .reload command via PM   reload
.safety Set safety setting for channel. .safety on safety
.virustotal Look up VT results on demand. .virustotal hxxps://malware.wicar.org/ safety
.bing Queries Bing for the specified input. .bing sopel.chat irc bot search
.duck
.ddg
.g
Queries DuckDuckGo for the specified input. .duck sopel.chat irc bot search
.search Searches both Bing and DuckDuckGo. .search sopel irc bot search
.suggest Suggests terms starting with given input .suggest lkashdfiauwgaef search
.seen Reports when and where the user was last seen.   seen
.tell
.ask
Give someone a message the next time they’re seen .tell @Exirel tell
.tld Show information about the given Top Level Domain. .tld ru tld
.tldcache No documentation found. .tldcache tld
.mangle
.mangle2
Repeatedly translate the input until it makes absolutely no sense.   translate
.translate
.tr
Translates a phrase, with an optional language :hint. .tr mon chien translate
.u Look up a Unicode character or a hexadecimal code point. .u 203D unicode_info
.length
.distance
Convert distances .length 3 parsec units
.weight
.mass
Convert mass   units
.temp Convert temperatures .temp 100K units
.uptime Return the uptime of Sopel. .uptime uptime
.title Show the title or URL information for the given URL, or the last URL seen
in this channel.
.title https://www.google.com url
.urlexclude
.urlpexclude
.urlban
.urlpban
Exclude a URL from auto title.

Use urlpexclude to exclude a pattern instead of a URL.
.urlexclude example.com/path url
.urlallow
.urlpallow
.urlunban
.urlpunban
Allow a URL for auto title.

Use urlpallow to allow a pattern instead of a URL.
.urlallow example.com/path url
.version Display the installed version of Sopel or a plugin.

Includes the version of Python Sopel is installed on.
Includes the commit hash if Sopel is installed from source.
.version [plugin_name] version
.wikipedia
.wp
Search Wikipedia. .wp San Francisco wikipedia
.wpclang No documentation found. .wpclang ja wikipedia
.wplang No documentation found. .wplang pl wikipedia
.wt
.define
.dict
Look up a word on Wiktionary. .wt bailiwick wiktionary
.ety Look up a word’s etymology on Wiktionary. .ety bailiwick wiktionary
.xkcd Finds an xkcd comic strip.

Takes one of 3 inputs:

* If no input is provided it will return a random comic
* If numeric input is provided it will return that comic, or the
nth-latest comic if the number is non-positive
* If non-numeric input is provided it will return the first search result
for those keywords on the xkcd.com site
.xkcd xkcd
.blocks Manage Sopel’s blocking features.

Full argspec: list [nick\|host] or [add\|del] [nick\|host] pattern
.blocks add nick sp(a|4)mb(o|0)t\d* coretasks
.useserviceauth Set owner’s account from an authenticated owner.

This command can be used to automatically configure core.owner_account
when the owner is known and has a registered account, but the bot doesn’t
have core.owner_account configured.

This doesn’t work if the account-tag capability is not available.
  coretasks
.execute Execute commands specified to perform on IRC server connect.

This allows a bot owner or admin to force the execution of commands
that are automatically performed when the bot connects.
  coretasks