Skip to Content
Nextra 2 Alpha
DocumentationReferenceThe complete command table

The complete command table

48 user-facing slash commands — 16 public, 2 group-admin, 30 owner-or-staff — plus the bare-uppercase STOP and UNDO keywords and an unbounded set of per-bot dynamic commands. 5 further slash spellings are Memescale platform-admin or fleet-operator tooling and are excluded entirely.

How this table works

Every built-in command is matched by one regular expression, ^/?(?:name)(@\w+)?(\s|$), case-insensitive (cmd_re, scripts/telegram/utils/commands.py:25-26). The leading slash is optional, an @<botusername> suffix is accepted, and case never matters, unless a row below says the slash is required — a minority of built-ins are matched by a hand-written pattern instead of cmd_re, and a few of those also refuse the @bot suffix.

cmd_re(name) — the default pattern

^/?(?:name)(@\w+)?(\s|$)

The five columns

SettingValue
CommandThe spelling(s) that trigger it, with its aliases and whether @<botusername> and the leading slash are required or optional.
WhoWho the code allows to send it and have it act. “Owner or staff” means the bot’s Memescale owner, pinned by their first /start, or a Memescale platform-admin username — never a Telegram group’s own admins by that role alone.
ChatsWhich chat types the route itself accepts: DM (private), group (group + supergroup), or any.
Menu scopeWhere the command is suggested in Telegram’s own / autocomplete list — never where it merely works.

Menu-scope legend

Menu scope valueTelegram scopeMeaning
privateall_private_chatsSuggested in every DM with the bot.
groupall_group_chatsSuggested in every group and supergroup.
adminall_chat_administratorsSuggested only to that chat’s Telegram admins.
owner overlaya per-chat / per-user overrideSuggested only to the bot’s owner or Memescale staff, layered on top of whichever default scope they’d otherwise see.
noneNever suggested anywhere. Works when typed from memory; Telegram never autocompletes it.

A chat that isn’t authorized for the bot at all gets an empty command menu pushed deliberately, regardless of any row below — see Groups and access, chapter 1.2.

Platform-admin commands are not documented here

5 further slash spellings are Memescale platform-admin or fleet-operator tooling, restricted to platform staff or two hardcoded usernames in one hardcoded chat: /newbot, /topicid, /updatepfp, /id, /fleet. They are intentionally excluded from the table below.

Public commands

16 spellings, subject to whatever authorization or toggle each row states — “public” describes who the code lets try, not that every attempt succeeds.

16 public spellings, 14 rows (2 rows carry an alias)

CommandWhoChatsMenu scopeWhat it does
/start (@bot ok, slash required)Anyone — DM onlyprivatenoneOwner or staff: opens the /menu card (prefixed, on the very first run only, with the notifications-on message). Anyone else: Hi, I'm <bot name>.
/authorize (@bot ok, slash optional)Anyone sends it; only an owner/staff send actually authorizesanynoneOwner or staff: authorizes the current chat. Anyone else: silently recorded as discovered — no reply either way for them.
/holders (@bot ok, slash optional)Anyone — no authorization checkanygroup + admin, once configuredLive holder count for the bot’s configured token.
/getid (@bot ok, slash optional)Anyone; an owner/staff send also authorizes the chatanynoneReplies with the chat’s numeric id and records the chat as discovered.
/mycalls (@bot ok, slash optional)Anyone with a real Telegram user idanynoneThe sender’s own scanner call history on this bot.
/viewallcalls (@bot ok, slash optional)Anyone in the groupgroupnoneEvery call made in the current group.
/leaderboard [window] (@bot ok, slash optional)Anyone in the groupgroupnoneCaller leaderboard for the current group, optionally windowed to 1d / 7d / 30d.
/raid <tweet> <goals> (@bot ok, slash required)Owner/staff in any chat; a DM-authorized username in a DM; any member of an allowed groupDM, group, supergroup — is_authorized decides whichnonePosts a tweet-engagement raid board.
/newpack, /emojipack (@bot ok, slash required)Any member of an authorized group; owner/staff or a DM-authorized username in a DMDM, group, supergroupprivate + group (/emojipack itself: none — alias only)Opens the emoji-pack wizard: a 3D coin, or — with premium emoji already pasted in the same message — a static pack of exactly those.
/staticemoji (@bot ok, slash required)Same authorization as /newpackDM, group, supergroupnoneOpens the static (non-3D) emoji-pack wizard directly.
/mypacks (@bot ok, slash required)Same authorization as /newpack, with no DM-resolvable prerequisiteDM, group, supergroupprivate + group, while the packs toggle is onLists the sender’s saved emoji packs, 10 per page.
/presets (@bot ok, slash required)Anyone — no owner, admin or authorization check at allanynoneOpens the inline preset picker for the next photo sent or replied to.
/cancelpresets (@bot ok, slash required)Anyone cancels their own run; platform staff cancel anyone’sanynoneCancels an in-flight Try All / Random N preset batch in the chat.
/download, /mp3 (@bot ok, slash required)Anyone in an authorized chatanyprivate + group + admin, while social_dl_enabled (listed as download only — /mp3 never appears in the menu)Sends a 45-second hint to paste a SoundCloud or YouTube link. The actual download is a passive link match, not this command — /download <link> and /mp3 <link> work because the message already contains the link.

Group-admin commands

Both exist only once Admin Moderation is switched on in the dashboard — off by default. The route itself is always registered; with the toggle off, moderate() returns before doing anything, and the route has already consumed the message — so a disabled /ban or /mute is silent, not an error.

CommandWhoChatsMenu scopeWhat it does
/ban (@bot ok, slash required)A Telegram admin of that specific group, checked live — not the bot’s owner/staff by that role alonegroupadmin, while the moderation toggle is onBans the replied-to or @-mentioned target and purges their tracked message history in the group.
/mute (@bot ok, slash required)Same as /bangroupadmin, while the moderation toggle is onRestricts the target from sending anything and from group-management actions, for 24 hours. There is no /unmute.

Owner-or-staff commands

30 spellings, 24 rows. Every command below shares one gate: the bot’s Memescale owner or a Memescale platform-admin username — never a Telegram group’s own admin standing, in any group. A non-owner sending one of the buy-bot commands gets no reply at all; tapping a buy-bot button as a non-owner gets the alert Owner / admins only.

General

8 rows, 10 spellings

CommandWhoChatsMenu scopeWhat it does
/showlimits (@bot ok, slash optional)Owner or staffprivate — DM onlynoneHTML list of every blocked user and every rate-limited user configured for the bot.
/whichport (no @bot, slash required, exact match only)Owner or staffprivate — DM onlynoneReports the GPU bridge’s port and a live health probe.
/whichlora (no @bot, slash required, exact match only)Owner or staffprivate — DM onlynoneOne two-line block per character: its LoRA file and whether it’s currently loaded on the GPU.
/whoisactive (@bot ok, slash optional)Owner or staffanynoneLive probe of what the GPU is generating right now and what’s queued behind it.
/menu, /options, /help (@bot ok, slash optional)Owner or staffanynoneOpens the settings card: feature toggles and Manage Groups. Telegram group admins cannot open it.
/showrefs [trigger] (@bot ok, slash required)Owner or staffanynonePosts the character’s stored reference images (up to 4) with a Delete button per image.
/addrefs [trigger] (@bot ok, slash required)Owner or staffanynoneAdds a reference image, up to 4 per character, from an attached or replied photo, or prompts and waits for one.
/forkbuybot [paste] (@bot ok, slash required)Owner or staffPrivate, group, supergroupnoneForks another bot’s buy post — text, formatting and media — into this bot’s buy-bot layout. Writes body text, size emoji and media only; never enables the bot and never adds a group.

Buy bot

16 rows, 20 spellings — one gate, buybotctl.py’s is_owner(...), no chat-type restriction on any of them

CommandWhoChatsMenu scopeWhat it does
/enablebuybot (@bot ok, slash required)Owner or staffGroup, DMnoneTurns the buy bot on. In a group: authorizes that group and adds it as a posting target (max 10). Asks for the contract address first if none is set.
/minbuy <amount> (@bot ok, slash required)Owner or staffGroup, DMnoneSets the minimum USD buy size that gets posted.
/buyemoji <emoji> (@bot ok, slash required)Owner or staffGroup, DMnoneSets the emoji used in the buy-size row — premium or plain.
/buybotimage (@bot ok, slash required)Owner or staffGroup, DMnoneSets the buy media (image, GIF or video) — attach it, or send it as the next message.
/buybotgroups (@bot ok, slash required)Owner or staffGroup, DMnoneOpens the buy bot’s own group-target picker — separate from Manage Groups.
/buybotsettings, /buybotmenu, /buybot (@bot ok, slash required)Owner or staffGroup, DMowner overlay — the only user-facing command listed thereOpens the full settings card: on/off, groups, min buy, emoji, media, links, token, fork or view the layout.
/buybothelp, /buybotcommands (@bot ok, slash required)Owner or staffGroup, DMnoneSends the plain-text command list (HELP_TEXT) — it omits /buybotdiscord, /buybotdocs, /buybotmedium, /buybotreddit and /buybotgithub, all five of which work like the other link commands.
/repeatlastbuy (@bot ok, slash required)Owner or staffGroup, DMnoneReposts the last recorded buy through the current layout, media and emoji.
/buybotwebsite (@bot ok, slash required)Owner or staffGroup, DMnoneSets the website link.
/buybotx, /buybottwitter (@bot ok, slash required)Owner or staffGroup, DMnoneSets the X (Twitter) link.
/buybottelegram (@bot ok, slash required)Owner or staffGroup, DMnoneSets the Telegram link.
/buybotdiscord (@bot ok, slash required)Owner or staffGroup, DMnoneSets the Discord link.
/buybotdocs (@bot ok, slash required)Owner or staffGroup, DMnoneSets the docs link.
/buybotmedium (@bot ok, slash required)Owner or staffGroup, DMnoneSets the Medium link.
/buybotreddit (@bot ok, slash required)Owner or staffGroup, DMnoneSets the Reddit link.
/buybotgithub (@bot ok, slash required)Owner or staffGroup, DMnoneSets the GitHub link.

STOP, UNDO, and dynamic commands

STOP and UNDO

CommandWhoChatsMenu scopeWhat it does
STOP (bare, uppercase, no slash)Owner or staffprivate — DM onlynone — not a slash command, so Telegram can never list itDisables owner notifications until /start re-arms them.
UNDO (bare, uppercase, no slash)Owner or staffprivate — DM onlynoneReverts the single most recently remembered change to Command Changes or Rate Limits & Blocks notifications — as shipped, nothing arms this, so it always replies No recent notification changes to undo.

Both are matched as the exact message text, case-insensitively, with nothing else in it — stop, Stop and STOP all match; STOP please does not.

Dynamic commands

Every bot also carries commands with no fixed spelling, sourced from that bot’s own memebot.json and matched with the same slash-optional shape as the built-ins:

Per-bot dynamic commands

KindSourceCapMatches
Character triggerscharacters[].triggerCommand, for each enabled character4 per bot — MAX_CHARACTERS_PER_BOT; over the cap, saving a new one fails with @<bot> is at the 4-character cap^/?<trigger>(@<botusername>)?$ — first word only
Text commandstextCommands[] with isActiveNo cap on count^/?<trigger>(@<botusername>)?(\s|$)
Button commandsbuttonCommands[] with isActiveNo cap on countsame pattern as text commands

Text and button commands share one trigger namespace with each other and with character triggers — a trigger can’t be reused across the three. Every fixed built-in above is matched first, at the router; a custom command of the same name never gets a turn. None of the three are gated by the group allowlist on their own — see below.

Two cross-cutting facts

The group allowlist (allowedGroups) is not one gate for the whole bot — each feature that cares checks it independently, at its own call site, and several (/holders, /presets, /cancelpresets, text and button commands, the scanner, the calls commands) never check it at all. The buy bot keeps an entirely separate posting-target pool, bots[].buyBot.targetGroupIds, capped at 10 — distinct from the allowlist, which has no cap anywhere.