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 uponrestarting 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 uponrestarting 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 chunkof 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 argumentmust 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_accountwhen 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 |