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
.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
.tmask Set the topic mask to use for the current channel

Within the topic mask, {} is used to allow substituting in chunks of text.

This mask is used when running the ‘topic’ command.
  adminchannel
.showmask Show the topic mask for the current channel.   adminchannel
.topic Change the channel topic

The bot must be a channel operator for this command to work in +t channels.
  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
.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
.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 No documentation found. .unflip emoticons
.confused
.wat
No documentation found. .wat emoticons
.worried No documentation found. .worried emoticons
.help
.commands
Shows a command’s documentation, and an example if available. With no arguments, lists all commands. .help tell help
.invite Invite the given user to the current channel, or (with optional
second argument) another channel that Sopel is in.
.invite converge #sopel invite
.iplookup
.ip
IP Lookup tool .ip 8.8.8.8 ip
.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
.chairs Set the meeting chairs. See meetbot plugin usage .chairs Tyrope Jason elad meetbot
.endmeeting End a meeting. See meetbot plugin usage .endmeeting meetbot
.listactions List all the actions in the meeting summary. .listactions meetbot
.action Log an action in the meeting log. See meetbot plugin usage .action elad will develop a meetbot meetbot
.agreed Log an agreement in the meeting log. See meetbot plugin usage .agreed Bowties are cool meetbot
.info Log an informational item in the meeting log. See meetbot plugin usage .info all board members present meetbot
.link Log a link in the meeing log. See meetbot plugin usage .link http://example.com meetbot
.subject Change the meeting subject. See meetbot plugin usage .subject roll call meetbot
.comments Show the comments that have been logged for this meeting with .comment.

See meetbot plugin usage
  meetbot
.startmeeting Start a meeting. See meetbot plugin usage .startmeeting Meeting Title meetbot
.comment Log a comment, to be shown with other comments when a chair uses .comments.
Intended to allow commentary from those outside the primary group of people
in the meeting.

Used in private message only, as .comment <#channel> <comment to add>

See meetbot plugin usage
  meetbot
.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/their/theirs/themselves pronouns
.py Evaluate a Python expression. .py len([1,2,3]) py
.rand Replies with a random number between first and second argument. .rand 10 99 rand
.getsafeforwork
.getsfw
Gets the preferred channel’s Safe for Work status, or the current
channel’s status if no channel given.
.getsfw [channel] reddit
.getspoilerfree
.getspoilfree
Gets the channel’s Spoiler-Free status, or the current channel’s
status if no channel given.
.getspoilfree [channel] reddit
.redditor No documentation found. .redditor poem_for_your_sprog reddit
.setsafeforwork
.setsfw
Sets the Safe for Work status (true or false) for the current
channel. Defaults to false.
.setsfw false reddit
.setspoilerfree
.setspoilfree
Sets the Spoiler-Free status (true or false) for the current channel.
Defaults to false.
.setspoilfree false reddit
.subreddit No documentation found. .subreddit plex reddit
.load Wrapper for allowing delivery of .load command via PM   reload
.reload Wrapper for allowing delivery of .reload command via PM   reload
.update Wrapper for allowing delivery of .update command via PM   reload
.reminders Count or forget your reminders in the current channel.

Use a subcommand “count” (default) or “forget”. The second argument is
optional and can be either a channel name, your nick, or * (for all).
.reminders count remind
.at Gives you a reminder at the given time.

Takes hh:mm:ssTimezone Date message where seconds, Timezone, and Date
are optional.

Timezone is any timezone Sopel takes elsewhere; the best choices are those
from the tzdb; a list of valid options is available at
https://sopel.chat/tz.

The Date can be expressed in one of these formats: YYYY-mm-dd, dd-mm-YYYY,
dd-mm-YY, or dd-mm. The separator can be ., -, or /.
.at 00:01 25/12 Open your gift! remind
.in Gives you a reminder in the given amount of time. .in 3h45m Go to class remind
.safety Set safety setting for channel   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 .ask 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.

Includes the version of Python Sopel is installed on.
Includes the commit hash if Sopel is installed from source.
  version
.w
.wiki
.wik
Search Wikipedia. .w 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. See ignore system documentation.   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