Skip to content

[Feature] Allow AI extension @-invocation handle to differ from extension name #28020

@andrewbenson

Description

@andrewbenson

Problem

The @<extension> invocation in Raycast AI chat is derived from package.json name. For an extension that has been in the store for a while, the name slug is a stable identifier — changing it breaks existing users' stored API keys and useCachedState data.

Concrete example: the Cal.com extension's name is cal-com-share-meeting-links (from when it was just a "share meeting link" tool). After the recent expansion + AI Extension tools in #27992, the natural AI invocation would be @cal — but renaming would force every existing user to re-enter their API key and lose their UI preferences.

Proposal

Allow a separate manifest field — e.g. aiName, aiHandle, or an aiAliases: [] array — that controls the AI chat invocation independent of the name slug:

{
  "name": "cal-com-share-meeting-links",  // stays stable for store + storage
  "aiName": "cal"                          // short invocation: @cal
}

Or alternatively allow aliases:

{ "aiAliases": ["cal", "calcom"] }

Workarounds considered

  • Rename the extension — breaks every existing user's stored state. Net negative.
  • Long invocation — works but @cal-com-share-meeting-links is awkward to type.

Who benefits

Any extension whose original name no longer reads naturally as an AI handle — common when AI tools are added to a mature extension. Today the only escape valve is a breaking rename, which is the wrong default.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Priority

    None yet

    Severity

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions