openclaw - 💡(How to fix) Fix Telegram native slash command control is too coarse for multi-account bots [1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#51037Fetched 2026-04-08 01:05:13
View on GitHub
Comments
1
Participants
1
Timeline
1
Reactions
0
Participants
Timeline (top)
commented ×1

Telegram native slash command registration is currently too coarse-grained for multi-bot / multi-account setups.

channels.telegram.commands.native appears to work at the Telegram provider level, which creates an awkward trade-off:

  • keep native commands enabled and expose operator/admin slash commands on public-facing bots
  • or disable native commands globally and lose native commands for private/admin bots too

This is especially problematic when running multiple Telegram bot accounts from one OpenClaw instance, where one bot is public/group-facing and another is owner/admin-facing.

Root Cause

A public-facing group bot may intentionally allow broad interaction in-group, while still needing a much smaller visible command surface.

Even if high-risk commands are later blocked by authorization or tool deny rules, exposing native commands like restart/model/config/approve/debug creates unnecessary attack/confusion surface and the wrong product posture.

In practice this creates a real design dilemma:

  • public bot UX wants a minimal, playful menu
  • admin bot UX wants richer native commands
  • current config appears to force one Telegram-native command policy across both

Fix Action

Fix / Workaround

The practical workaround was to disable Telegram native commands globally and rely on:

Code Example

{
  "channels": {
    "telegram": {
      "accounts": {
        "default": {
          "commands": {
            "native": true,
            "nativeSkills": false
          }
        },
        "clawbie": {
          "commands": {
            "native": false,
            "nativeSkills": false
          }
        }
      }
    }
  }
}
RAW_BUFFERClick to expand / collapse

Summary

Telegram native slash command registration is currently too coarse-grained for multi-bot / multi-account setups.

channels.telegram.commands.native appears to work at the Telegram provider level, which creates an awkward trade-off:

  • keep native commands enabled and expose operator/admin slash commands on public-facing bots
  • or disable native commands globally and lose native commands for private/admin bots too

This is especially problematic when running multiple Telegram bot accounts from one OpenClaw instance, where one bot is public/group-facing and another is owner/admin-facing.

Why this matters

A public-facing group bot may intentionally allow broad interaction in-group, while still needing a much smaller visible command surface.

Even if high-risk commands are later blocked by authorization or tool deny rules, exposing native commands like restart/model/config/approve/debug creates unnecessary attack/confusion surface and the wrong product posture.

In practice this creates a real design dilemma:

  • public bot UX wants a minimal, playful menu
  • admin bot UX wants richer native commands
  • current config appears to force one Telegram-native command policy across both

Current observed behavior

In a setup with multiple Telegram accounts:

  • one admin/private bot
  • one public/group-facing bot (Clawbie)

setting Telegram native command controls did not produce a clean per-bot menu split.

The practical workaround was to disable Telegram native commands globally and rely on:

  • BotFather-defined lightweight commands
  • natural-language interaction
  • SSH/terminal for operator workflows

Requested improvement

Please support Telegram native command control at a finer granularity, ideally one of:

  1. per-account / per-bot command registration control
  2. per-account Telegram command scopes
  3. a way to limit which built-in commands register for a given account
  4. separate native command profiles for group vs DM contexts

Example desired config shape

{
  "channels": {
    "telegram": {
      "accounts": {
        "default": {
          "commands": {
            "native": true,
            "nativeSkills": false
          }
        },
        "clawbie": {
          "commands": {
            "native": false,
            "nativeSkills": false
          }
        }
      }
    }
  }
}

or any equivalent mechanism that gives public-facing bots a smaller visible command surface without sacrificing native commands for private/admin bots.

Impact

This is both:

  • a UX issue (menu overload)
  • and a security/safety surface issue (advertising operator affordances in public group contexts)

extent analysis

Fix Plan

To address the issue of coarse-grained Telegram native slash command registration, we will implement per-account command registration control. This will allow for finer granularity in managing native commands for each bot account.

Step-by-Step Solution

  1. Update Configuration Structure: Modify the configuration to support per-account command settings.
  2. Introduce Account-Level Command Controls: Add a new configuration option to enable or disable native commands for each account.
  3. Implement Command Registration Logic: Update the command registration logic to respect the per-account settings.

Example Code Snippets

// Updated configuration structure
{
  "channels": {
    "telegram": {
      "accounts": {
        "default": {
          "commands": {
            "native": true,
            "nativeSkills": false
          }
        },
        "clawbie": {
          "commands": {
            "native": false,
            "nativeSkills": false
          }
        }
      }
    }
  }
}
# Example command registration logic
def register_commands(account_name, config):
    if config['channels']['telegram']['accounts'][account_name]['commands']['native']:
        # Register native commands for the account
        register_native_commands(account_name)
    else:
        # Do not register native commands for the account
        pass

Verification

To verify the fix, create a test setup with multiple bot accounts and configure native commands for each account separately. Then, test the following scenarios:

  • Native commands are registered correctly for each account.
  • Public-facing bots have a smaller visible command surface.
  • Private/admin bots have access to native commands.

Extra Tips

  • Ensure that the updated configuration structure is properly validated and handled in the code.
  • Consider adding additional logging and monitoring to track command registration and usage.
  • Review the security and safety implications of exposing native commands in public group contexts.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Telegram native slash command control is too coarse for multi-account bots [1 comments, 1 participants]