Skip to content

Native support for pinning / unpinning chat messages (Helix Chat Pins API) #3581

Description

@likhtar

Describe the solution you'd like
Enter a clear and concise description of what you want to happen.
Add built-in support for pinning and unpinning chat messages in a channel, following Twitch's Chat Pins feature.
A pinned message stays displayed in the channel's chat until removed. Currently Firebot has no way to pin or unpin a message, so this requires external workarounds.
Use case
Streamers want to pin important messages in chat (rules, links, announcements) via commands or channel-point redemptions, and remove them afterwards:

  • !pin (mod replies to a message) → pins that message
  • !unpin → removes the current pinned message
  • a channel-point reward "pin your request" → writes a message and pins it
    API reference
    Twitch Helix "Chat Pins" endpoints:
  • PUT /helix/chat/pins?broadcaster_id={id}&moderator_id={id}&message_id={id} — pins a message. message_id changes if the message was edited. Omitting duration pins indefinitely.
  • DELETE /helix/chat/pins?broadcaster_id={id}&moderator_id={id} — unpins the current pinned message.
    Auth scope: moderator:manage:chat_messages, plus user:write:chat for sending the message to pin first.
    Suggested implementation
    A "Pin Chat Message" effect (or a chat command action) with options:
  1. Action: Pin (with optional message text to send first) / Unpin / Pin the message the command replied to.
  2. Message (for pin-with-send): text to be sent then pinned (reuse existing twurple chat-message send, then call the Helix Chat Pins endpoint).
    Existing userContextClient (TwitchApi.streamerClient) already has the token and scopes.
    Additional context
    Add any other context or screenshots about the feature request here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Release PendingIssue has been resolved and is waiting to be packaged as part of a release

    Projects

    • Status
      Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions