Commands

This wiki page contains a list of commands and their explanation.

Executing commands and giving feedback

SmokeDetector commands and feedback are provided to SmokeDetector as chat messages in one of the rooms in which SmokeDetector is listening for commands (see the list of chat rooms). Feedback can be given either as a reply to a post, or using the sd prefix in a message which is not a reply. Commands are in the format !!/<command text> or sdc <command text>, which are entered in new chat messages, not as replies.

In order to keep this list of commands more concise, SmokeDetector commands are listed here in their !!/<command text> form, but all of them are able to be used with the sdc <command text> syntax.

As an example, the following two commands are equivalent:

!!/alive
sdc alive

Commands for everyone

These commands can be executed by everyone.

Commands as reply for everyone

Privileged commands

These commands require privileges. Note that some commands may be disabled in some rooms. You may talk to others to understand why.

Blacklists, watchlists, and the user-whitelist

User-blacklist and user-whitelist

The user-blacklist and user-whitelist are maintained per SmokeDetector instance. The SmokeDetector instances do not share these lists between themselves. Thus, if the SmokeDetector instance is switched, the new instance will only have a record of the entries on these lists which were added/removed while that instance was active.

User-blacklist

The user-blacklist is a dynamic list of users which will have any post of theirs reported by SmokeDetector anytime one of their posts is scanned. Users are primarily added to the user-blacklist when someone gives tpu feedback to a post the user has authored, or when one of their posts is manually reported to SmokeDetector with !!/report and the post would not have otherwise been detected. Users are automatically removed from the user-blacklist when fp feedback is given for a post they have authored. Users can also be explicitly added, removed, or their blacklist status determined with the following commands:

User-whitelist

The user-whitelist is a list of users for which posts will not be reported if the only detections of the post are on the user’s username. If there are other detections triggered, then the post will be reported with the username detections included. Users are added to the list if their post receives fpu feedback. Users can also be explicitly added, removed, or their whitelist status determined with the following commands:

Detection blacklists and watchlists

For all !!/blacklist-* and !!/watch* commands: If you are a blacklister on metasmoke, your change will apply immediately, after brief checks by SmokeDetector or once CI passes, depending on the circumstances. If you are not a blacklister: A) a pull request (PR) will be created for your additions to the lists, so the changes can be reviewed. B) you will not be allowed to execute !!/unwatch or !!/unblacklist commands. You will need to ping a blacklister to perform those commands, or manually submit a PR that performs the change.

All commands which add entries to one of these lists run the new entry through a variety of checks. If some checks are not passed, then a chat reply message is posted detailing what didn’t pass. All such commands have a -force variant (i.e. append -force to the command; e.g. !!/watch-force), which will bypass these checks, except checks for actual duplicate entries, which are considered a hard error. You should not be in the habit of directly running the -force variant of the commands. Run the non -force version first to see what SmokeDetector says. If you have verified that you still want to add the entry, despite the issues SmokeDetector mentioned, then you can then edit your chat message to add -force, or post a new chat message with -force. Even very experienced users rarely go directly to using the -force version without running the command as a non- -force version first.

Non -number blacklists and watchlist

The non -number blacklists and watchlist are lists of regular expressions (regexes) which are used to test some or all of post bodies, post titles, and usernames for matching text. See the description of the command for adding entries to each list for a statement as to what the entries on that list are tested against.

Because these lists are regular expressions, make sure regex special characters are escaped (in particular, . characters should be escaped as \.) when not used as the special character. The regular expression variant that SmokeDetector uses is the regex package.

When adding to the blacklists, any entry in the watchlists which exactly matches what you’re adding to the blacklist will be automatically removed from the watchlists. In other words, adding to the blacklist is assumed to be moving an entry from the watchlist to the blacklists, if it already existed on a watchlist.

The regexes for the keyword-blacklist and watchlist have \b prepended and appended to them prior to testing against post bodies, titles, and usernames. For both of those lists, the i and s flags are set (case insensitive and . matches anything). The other lists do not bookend the regexes with \b and only have the case insensitive flag, i, set. Note: the actual bookending begins the overall regex with (?:^|\b|(?w:\b)) and ends it with (?:\b|(?w:\b)|$). The documentation for the regex package briefly describes what the w (word) flag in the bookending does. [See “Unicode line separators” in the linked regex package documentation.]

-number blacklists and watchlist

The -number blacklist and watchlist are lists of numbers that are tested against post bodies, post titles, and usernames as text both verbatim and “normalized” (with everything but numbers removed).

Commands applicable to both -number and non- -number blacklists and watchlists (excluding the user-blacklist and user-whitelist described above)

Privileged commands as reply

These commands require privileges and have to be posted as a reply to a message of SmokeDetector.

User-friendly syntax:

Complete list:

Silent mode and aliases

If you don’t want SmokeDetector to reply when executing a command add a - sign at the end, for example, fp-. This is a good practice to cut down on chatroom clutter. Note that SmokeDetector will always report any errors, even if the - is present. The hyphen can be placed after the command itself or after its parameter. The following commands support silent mode: replying to spam reports, managing black- and white-list, and managing chat notifications.

Also, some frequently used commands have one-letter aliases or convenient words that can be used instead:

Command Alias of
f fp-
notspam fp-
k tpu-
spam tpu-
rude tpu-
abuse tpu-
abusive tpu-
offensive tpu-
v tp-
vandalism tp-
n naa-

A note on message deletion

Messages by SmokeDetector can be deleted within 2 minutes after they were posted by using the del, remove, or gone commands. After 2 minutes are up, SmokeDetector cannot delete its own messages in response to those commands, so any deletion after that window must be done by a moderator.

Messages will also be deleted in Tavern on the Meta and SO Close Vote Reviewers, or Raiders of the Lost Downboat if the relevant post is deleted or marked as false positive before the 2-minute window is up.

Please note that the usage of deletion commands is discouraged in Charcoal HQ. Generally, messages in CHQ are kept as a record of all reported posts for multiple reasons:

The delete-force command can be used if a report really needs to be deleted in Charcoal HQ.

Shortcut commands

You can now use a shortcut to post a reply to one, two or three messages at the same time, in this shape:

sd cmd1
sd cmd1 cmd2
sd cmd1 cmd2 cmd3
sd cmd1 cmd2 cmd3 cmd4
sd cmd1 cmd2 cmd3 cmd4 cmd5

cmd1 will be invoked in the most recent message, cmd2 on the message before that and cmd3 on the message before that, and so on.

It’s also possible to skip a message. Replace a command with a - to skip a message. For example, sd - delete skips the most recent message and deletes the message before that one.

Smokey will reply to your shortcut command unless all commands have quiet mode (like tp-) or just don’t reply by default (like delete).

A few examples:

You can also put a digit in front of a command so that the command will apply as many times as the digit. A few examples: