Browser extension for Twitch

PluralChat

PluralChat is a browser extension that displays system and member information locally. It never edits Twitch chat messages it simply adds information for viewers who have the extension installed.

Local rendering

Twitch messages remain normal. PluralChat adds context locally for users who have the extension.

System profiles

Publish system and member information so viewers can see who is speaking.

Twitch verification

Claim a Twitch username by placing a generated verification code in your Twitch About/Bio, then remove it after verification.

Documentation

Setup steps

Use these steps after installing the extension.

  1. Install PluralChat using the download link.
  2. Open the extension's Options page.
Note: If you only want to view other people's PluralChat systems on Twitch, you're done. No account or setup is required. The remaining steps are only needed if you want to create and manage your own PluralChat system.
  1. Enter your Twitch username exactly as it appears on Twitch.
  2. Start verification to generate your PluralChat verification code.
  3. Add the verification code to your Twitch About section or Bio, then return to the extension and complete verification.
  4. Save your recovery key somewhere safe. You'll need it whenever you want to edit or recover your system.
  5. Create your system and add members, including names, pronouns, colours, avatars, and proxy information.
  6. Publish your system so other PluralChat users can view your public system information.

Browser setup

After installing, pin the extension and open the Options page.

Keep your recovery key safe

Your recovery key is used to make future edits. Do not post it publicly or share it with people you do not trust.

Developer documentation

PluralChat API

The PluralChat API provides public system data, synchronisation routes, Twitch ownership verification, and authenticated system-management endpoints.

Base URL https://api.pluralchat.online
Public data only: Public endpoints return information that a system owner has chosen to publish. Recovery keys and private management data are never returned by public endpoints.

Public endpoints

No authentication is required.

GET /health

Checks whether the PluralChat API is online.

Example response

{
  "ok": true
}
GET /api/system/:login

Returns the public PluralChat system published for a Twitch login.

:loginThe Twitch username without the @ symbol.

Example request

GET https://api.pluralchat.online/api/system/issy_vt

Example response

{
  "twitch_login": "issy_vt",
  "name": "The Litter",
  "description": "A published PluralChat system.",
  "public_id": "PC-XXXXXX",
  "members": [
    {
      "name": "Isabella",
      "pronouns": "She/Her",
      "avatar_url": "https://example.com/avatar.png",
      "color": "#9146ff",
      "member_id": "PCM-XXXXXX",
      "proxies": [
        {
          "prefix": "[",
          "suffix": "]"
        }
      ]
    }
  ]
}
200 System found 304 Cached system is still current 404 No public system found
GET /api/systems/index

Returns the index of Twitch logins that currently have public PluralChat systems. The extension uses this to avoid unnecessary individual lookups.

Example response

{
  "version": 123,
  "logins": [
    "issy_vt",
    "example_user"
  ]
}
200 Index returned 304 Cached index is still current
GET /api/systems/delta?since=:version

Returns public systems that changed or were removed after a known public-data version.

sinceThe last delta version stored by the client.

Example request

GET https://api.pluralchat.online/api/systems/delta?since=123

Example response

{
  "version": 124,
  "changed": [
    "issy_vt"
  ],
  "removed": []
}

Claim and verification

These routes prove ownership of a Twitch username.

POST /api/claim/start

Starts Twitch ownership verification and returns a temporary code that must be placed in the user's Twitch About section or Bio.

Request body

{
  "username": "issy_vt"
}

Typical response

{
  "code": "PC-VERIFY-XXXXXX",
  "instructions": "Add this code to your Twitch About section, then complete verification."
}
POST /api/claim/verify

Checks the Twitch profile for the verification code and returns a recovery key when verification succeeds.

Request body

{
  "username": "issy_vt"
}
200 Verification successful 400 Verification code is missing or invalid 409 Twitch username is already verified
POST /api/claim/recover

Authenticates an existing claimed username using its recovery key.

Required header

X-Recovery-Key: your-recovery-key

Request body

{
  "username": "issy_vt"
}

Private management endpoints

These routes require the matching recovery key.

GET /api/private/:login

Returns the private editable system data for the claimed Twitch login.

Required header

X-Recovery-Key: your-recovery-key
PUT /api/private/:login/system

Creates or updates the system, members, biographies, avatars, colours, ordering, and proxy rules for the claimed Twitch login.

Required headers

X-Recovery-Key: your-recovery-key
Content-Type: application/json
DELETE /api/system/:login

Removes the published system for the claimed Twitch login.

Required header

X-Recovery-Key: your-recovery-key

Authentication

Private routes use the recovery key generated during verification.

Send the recovery key in the following request header:

X-Recovery-Key: your-recovery-key

Never include recovery keys in public source code, screenshots, stream overlays, URLs, or support messages.

Common status codes

Responses use standard HTTP status codes and usually include a JSON error code or message.

200The request completed successfully.
201A new resource was created successfully.
304The requested resource has not changed. Continue using the cached copy.
400The request was invalid or contained missing or malformed data.
401Authentication is required or no recovery key was supplied.
403The supplied recovery key is invalid or does not permit access.
404The requested resource could not be found.
409The request conflicts with an existing resource, such as an already verified Twitch username.
429Too many requests were received in a short period. Please try again later.
500An unexpected server error occurred while processing the request.

Download

Get PluralChat

Use the browser extension to view and publish PluralChat system information.

Download PluralChat

Select your browser below.

OBS Chat Overlay

Use PluralChat directly in OBS

PluralChat now uses one OBS chat page for Twitch sign-in, channel selection, interactive chat and the stream overlay. A separate custom dock page is no longer required.

How it works

Open the PluralChat chat overlay in OBS. If you are not already signed in, the same page will ask you to sign in with Twitch before showing channel selection and live chat.

Messages from chatters with a published PluralChat system display their matched member name, pronouns, avatar and colours. Everyone else appears as standard Twitch chat.

Click a PluralChat member name or avatar to open their member card. Click a regular Twitch username to open the available Twitch moderation controls without leaving the overlay.

Interactive OBS chat

  1. Add an OBS Custom Browser Dock using:
    https://api.pluralchat.online/overlay/chat
  2. Sign in with Twitch on the page when prompted.
  3. Choose the Twitch channel you want to join.
  4. Read and send chat messages directly from OBS.
  5. Use the in-overlay member cards and moderation controls when needed.

Adding read-only chat to a scene

Add a Browser Source to your OBS scene using:

https://api.pluralchat.online/overlay/chat?channel=ChannelNameHere&chatonly=1

Replace ChannelNameHere with your Twitch channel name. The chatonly=1 version hides the login, channel and message controls so it can be displayed cleanly on stream.

Privacy: Twitch sign-in is required only for the interactive chat features that send messages or perform moderation actions. Twitch access and refresh tokens are held only in server memory (RAM) for the active session. They are not written to the PluralChat database, configuration files or logs, and are removed when you sign out, the session expires or the server restarts.

PluralChat never receives or stores your Twitch password.

Support

Need help?

Follow the setup guide, verify your Twitch account, and make sure your system has been published. If you're still having trouble, the documentation includes troubleshooting guides and answers to common questions.

Privacy

Privacy Policy

Last updated: 25 July 2026

PluralChat is a browser extension, public profile service and optional OBS chat overlay for Twitch. We collect and process only the information needed to provide those features.

Information you provide

  • Your Twitch username when you claim, view or manage a PluralChat system.
  • Public system and member information you choose to publish, such as system names, descriptions, member names, pronouns, biographies, avatar links, colours, ordering and proxy rules.
  • A temporary verification code placed in your Twitch About section or Bio while proving ownership of a Twitch username.

Recovery keys and local extension data

Your recovery key is used to authorise changes to your published system. The extension stores the recovery key, setup progress, preferences and cached public system data locally in your browser.

The service stores a protected hash used to validate a recovery key. Public API responses never return recovery keys or private management data.

How we use information

  • Verify that you control the Twitch username you claim.
  • Publish, retrieve, update and delete PluralChat systems.
  • Match Twitch chat messages to published member proxy rules.
  • Cache public data so the extension and OBS overlay can load efficiently.
  • Provide interactive Twitch chat and moderation features while you are signed in through the OBS overlay.

Public information

Information you publish as part of a public PluralChat system can be viewed through the extension, profile pages, OBS overlay and public API. Do not publish information that you do not want others to see.

Avatar images are loaded from the external image URLs supplied by system owners. PluralChat does not upload or store copies of those images as part of the normal publishing process.

OBS Twitch authentication

The single OBS chat page handles Twitch sign-in, channel selection and interactive chat. When you sign in, PluralChat temporarily receives the Twitch account details and OAuth tokens needed to keep the session connected, send messages and perform actions you request.

OAuth access and refresh tokens are held only in server memory (RAM). They are not written to the PluralChat database, configuration files, disk cache or application logs. They are discarded when you sign out, the session expires or the server restarts.

PluralChat never receives or stores your Twitch password. The read-only chatonly=1 Browser Source does not provide message-sending controls.

Service logs and security

The server may keep operational logs such as request times, requested routes, response status codes, request identifiers, performance information, IP addresses and client versions. These logs are used to operate, secure and troubleshoot the service and are not used to build advertising profiles.

Rate limiting and other security controls may process request information to protect PluralChat from abuse.

Data sharing

We do not sell personal data. Information is shared only where necessary to operate the service, respond to a lawful requirement or protect the service and its users. Twitch processes authentication and chat activity under Twitch's own terms and privacy practices. External avatar hosts process image requests under their own policies.

Your choices

  • Remove the temporary verification code from your Twitch profile after verification.
  • Edit or delete your published PluralChat system.
  • Clear the extension's locally stored data or uninstall the extension.
  • Sign out of the OBS overlay to end the active Twitch session.
  • Stop using PluralChat at any time.

Contact

For privacy questions or requests concerning PluralChat data, contact the PluralChat project maintainers through the support channel provided for the project.