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
.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.
  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
.ch
.choice
.choice option1|option2|option3 - Makes a difficult choice easy. .choose a 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.

.. seealso::

Function :func:~sopel.tools.time.format_time is used to format
the current datetime according to the timezone (if found).
.t #sopel clock
.tz
.timez
Return the current time in a timezone.

Unlike the .t 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; will return current channel’s if
no channel name is given.
.getctf [channel] clock
.getchanneltz
.getctz
Gets the channel’s preferred timezone; returns the current channel’s
if no channel name is given.
.getctz [channel] clock
.gettimeformat
.gettf
Gets a user’s preferred time format; will show yours if no user specified. .gettf [nick] clock
.gettz
.gettimezone
Gets a user’s preferred time zone; will show yours if no user specified. .gettz [nick] clock
.setchanneltz
.setctz
Set the preferred timezone for the 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 .countdown - displays a countdown to a given date.   countdown
.cur
.currency
.exchange
No documentation found. .cur 100 usd in btc cad eur can aux currency
.d
.dice
.roll
.dice XdY[vZ][+N][#COMMENT], rolls dice and reports the result.

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 # initiative 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
.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
.ety Look up the etymology of a word .ety word etymology
.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
.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 module usage .chairs Tyrope Jason elad meetbot
.endmeeting End a meeting. See meetbot module usage .endmeeting meetbot
.listactions No documentation found. .listactions meetbot
.action Log an action in the meeting log. See meetbot module usage .action elad will develop a meetbot meetbot
.agreed Log an agreement in the meeting log. See meetbot module usage .agreed Bowties are cool meetbot
.info Log an informational item in the meeting log. See meetbot module usage .info all board members present meetbot
.link Log a link in the meeing log. See meetbot module usage .link http://example.com meetbot
.subject Change the meeting subject. See meetbot module usage .subject roll call meetbot
.comments Show the comments that have been logged for this meeting with .comment.

See meetbot module usage
  meetbot
.startmeeting Start a meeting. See meetbot module 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 module usage
  meetbot
.pronouns No documentation found. .pronouns Embolalia pronouns
.setpronouns No documentation found. .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
.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 lkashdfiauwgeaef search
.seen Reports when and where the user was last seen.   seen
.tell
.ask
Give someone a message the next time they’re seen Sopel, tell dgw he broke something again. tell
.tld Show information about the given Top Level Domain. .tld ru 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 .uptime - Returns the uptime of Sopel.   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
.version Display the latest commit version, if Sopel is running in a git repo.   version
.w
.wiki
.wik
No documentation found. .w San Francisco wikipedia
.wt
.define
.dict
Look up a word on Wiktionary. .wt bailiwick wiktionary
.xkcd .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
.blocks Manage Sopel’s blocking features. See ignore system documentation.   coretasks
.useserviceauth No documentation found.   coretasks
.execute Execute commands specified to perform on IRC server connect.   coretasks