Skip to content

Plugin: evaluate Discord subcommand-based native commands #16

@huntharo

Description

@huntharo

Problem

Discord may need a subcommand-oriented command surface for this plugin instead of many flat native slash commands.

This matters for two reasons:

  • Discord command registration limits and churn are real.
  • The plugin command set is already large and likely to grow.

Current Findings

  • OpenClaw core already uses a Discord-native subcommand pattern in at least one place: /vc join|leave|status.
  • OpenClaw's plugin command definition is currently flat: a plugin command has name, optional nativeNames, and a handler. There is no plugin API for declaring a nested subcommand tree.
  • This plugin currently registers many flat commands in index.ts.
  • Discord's application command docs currently cap command options at 25, and subcommand/subcommand-group nested options arrays are also capped at 25.
  • Discord also documents a global rate limit of 200 application command creates per day per guild.

Implication

If we want /codex <subcommand> or /codex2 <subcommand>, that may require OpenClaw core/plugin API work, not just a local plugin refactor.

Proposed Scope

  • Evaluate a Discord-native grouping such as /codex resume|status|fast|model|....
  • Decide whether one root command is enough or whether we need multiple roots (/codex, /codex2, etc.).
  • Add autocomplete/menu hints for platforms that support subcommands.
  • Keep non-Discord channels compatible without forcing them into the same registration shape.

Source Notes

  • Plugin command definition is flat and only supports nativeNames: /Users/huntharo/github/openclaw/src/plugins/types.ts:1041
  • Existing plugin command list: index.ts:5
  • OpenClaw docs for Discord-only /vc join|leave|status: /Users/huntharo/github/openclaw/docs/tools/slash-commands.md:137
  • Discord application command docs (official): Application Commands

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Inbox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions