#Help. telegram menu button commands disappear
26 messages · Page 1 of 1 (latest)
Let me check the docs and source so I don’t guess.
Yeah, this is probably OpenClaw re-registering the Telegram menu.
On startup, OpenClaw calls Telegram setMyCommands, so BotFather /setcommands entries are not the durable source of truth here. They can get replaced or cleared.
If you want those 4 commands to stick, put them in config, not only BotFather:
{
channels: {
telegram: {
customCommands: [
{ command: "backup", description: "Git backup" },
{ command: "generate", description: "Create an image" },
],
},
},
}
A couple gotchas:
commands.native/channels.telegram.commands.nativecontrols Telegram native menu registrationcommands.native: falseclears previously registered Telegram commands on startup- conflicting/invalid command names are skipped
- custom commands are menu entries only, they do not implement behavior by themselves
If you only see 1 command, the others were likely skipped or overwritten, and the logs should say why.
Can you paste these?
pnpm openclaw --version- your
commands+channels.telegramconfig pnpm openclaw channels logs --channel telegram
Nice. I enabled channels.telegram.commands.native and it's back. No idea where to find commands.native or why it's disabled all of a sudden
Nice, glad we caught it. 🦐
commands.native is the global setting under top-level commands:
{
commands: {
native: "auto"
}
}
For Telegram specifically, the override is the one you already used:
{
channels: {
telegram: {
commands: {
native: true
}
}
}
}
A couple useful bits:
commands.nativedefaults to"auto", which should enable native commands for Telegram.channels.telegram.commands.nativeoverrides the global value for Telegram only.- So if it looked disabled, I’d check for an explicit
commands.native: falseorchannels.telegram.commands.native: falsesomewhere in your config.
Docs:
If you want, paste your commands + channels.telegram block and I can help spot what flipped.
Glad that helped! 🎉
If this fixed it, please right-click the solution message → Apps → ✅ Mark Solution.
This helps Answer Overflow index the solution for future users.
Just one quick question, where can I find the command section from the UI?
Let me check the UI docs so I point you to the right place.
I don’t think there’s a dedicated Commands page in the Control UI right now.
The place to change it from the UI is the Config editor, then search for:
commands.nativecommands.nativeSkillschannels.telegram.commands.nativechannels.telegram.customCommands
So for your case, I’d edit the Telegram config there rather than looking for a separate commands screen.
Docs:
- https://docs.openclaw.ai/web/control-ui
- https://docs.openclaw.ai/tools/slash-commands
- https://docs.openclaw.ai/channels/telegram
If you want, I can paste the exact JSON5 block for “Telegram native commands on + custom commands.”
in telegram i now added:
197 "commands": {
198 "native": true,
199 "nativeSkills": true
200 }
in root json i have
154 "commands": {
155 "native": "auto",
156 "nativeSkills": "auto",
157 "restart": true,
158 "ownerDisplay": "raw"
159 },
Yep, that config is valid.
How it resolves:
- top-level
commands.native: "auto"already means Telegram native commands on channels.telegram.commands.native: trueis a Telegram-only override- provider override wins, so your effective Telegram config is now explicitly:
channels.telegram.commands.native = true
channels.telegram.commands.nativeSkills = true
So, two useful takeaways:
- You probably did not need the Telegram override
Since root is already"auto", Telegram should have been enabled anyway.
- What likely fixed it was the fresh registration at startup
Telegram menus are set withsetMyCommandson startup, so the restart/reload may have re-pushed the menu.
If you want to keep things simple, you can probably remove the Telegram-specific commands block and rely on root "auto".
One extra tip: if the Telegram menu gets noisy, set:
channels.telegram.commands.nativeSkills = false
That keeps native commands without adding skill commands to the Telegram menu.
Docs:
so i tried it again and it's maybe a bug but seems like I;m forced to use also the telegram config. without it I don't have the commands. and it started when I enabled
257 "messages": {
258 "ackReactionScope": "all",
259 "ackReaction": "👀",
260 "removeAckAfterReply": true
261 }
not sure which specifically
Let me check the docs/source for those messages keys, that combo smells like either a merge quirk or a real bug.
Yeah, that should not be related.
I checked the config logic, native command registration only looks at:
commands.nativechannels.telegram.commands.native- same idea for
nativeSkills
Your messages block is supposed to affect only ack reactions, not Telegram command registration. So:
messages: {
ackReactionScope: "all",
ackReaction: "👀",
removeAckAfterReply: true
}
should not force you to also set channels.telegram.commands.native: true.
So this smells like one of two things:
- a config shape / nesting issue somewhere nearby, or
- a real bug
For now, I’d keep the Telegram override as the workaround since it works.
Can you paste:
pnpm openclaw --version- a slightly larger chunk around
channels.telegram,messages, and rootcommands
If it reproduces on current version, this is issue-worthy:
https://github.com/openclaw/openclaw/issues
If you want, I can help you turn it into a minimal repro first so the issue is easy to file.
native command now appear on DM and not on telegram group and topics. is it by design?
Let me check the Telegram docs/source before I answer, that one’s easy to get wrong.
I’m digging a little deeper in source, because Telegram command scope can be DM-only or group-only and the docs don’t say it clearly.
Short version, no, not as an OpenClaw design choice.
I checked the docs/source, and OpenClaw registers Telegram native commands with plain setMyCommands, not a DM-only scope. There’s also group/topic test coverage for native commands.
So if you see them in DMs but not in Telegram groups/topics, I’d split it like this:
-
If
/helpor/statusworks when typed manually in the group/topic
then it’s probably a Telegram UI/menu visibility quirk, not OpenClaw intentionally hiding them. -
If typed commands do not work in the group/topic
then check group auth, not menu registration:channels.telegram.groupschannels.telegram.groupPolicychannels.telegram.groupAllowFrom- fallback
channels.telegram.allowFrom
Important gotcha: DM pairing does not grant group command access. Groups/topics still need explicit group authorization.
So I’d try this first in the Telegram group/topic:
- manually type
/help
If it fails, paste your Telegram group config and I’ll help spot it.
Docs:
If typed commands do not work in the group/topic
then check group auth, not menu registration:
channels.telegram.groups
channels.telegram.groupPolicy
channels.telegram.groupAllowFrom
fallback channels.telegram.allowFrom
what to check. what's the expected values?
i want the autocomplete and i don't have it in telegram topics @mental rune