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 connection

Connect your Twitch account using Twitch's device-code sign-in flow. PluralChat no longer requires you to place a verification code in your Twitch bio or About section.

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. Connect Twitch from the Options page.
  2. Complete the Twitch device-code sign-in in the browser window Twitch opens. You do not need to edit your Twitch bio or About section.
  3. Return to PluralChat after Twitch confirms the connection.
  4. Create your system and add members, including names, pronouns, colours, avatars, biographies, status and proxy information.
  5. Publish your system so other PluralChat users, profile pages and the OBS overlay can use the public information you chose to publish.

Browser setup

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

Twitch sign-in security

Only complete Twitch device-code sign-in on Twitch's own authorization page. PluralChat never asks for your Twitch password.

Developer documentation

PluralChat API

The PluralChat API provides public system data, synchronisation routes and system-management endpoints used by the PluralChat extension and OBS integration.

Base URL https://api.pluralchat.online
Public data only: Public endpoints return information that a system owner has chosen to publish. Private editor/session data and Twitch authentication tokens are not 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": []
}

Twitch authentication

PluralChat uses Twitch's device-code authorization flow instead of bio-code verification.

Device-code flow

Start Twitch connection from the PluralChat extension or supported OBS interface. Twitch provides the authorization page and device code. After the user approves access, PluralChat receives the authorized Twitch identity/session needed for the requested feature.

No Twitch bio code is required. Old documentation referring to /api/claim/start, /api/claim/verify, profile verification codes or "biocodes" is obsolete.

Private management endpoints

These routes are private and require the authorization expected by the current PluralChat client.

GET /api/private/:login

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

Use the current PluralChat client for authenticated editor requests. Do not expose private credentials or session data.

PUT /api/private/:login/system

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

Request format

Content-Type: application/json

Authentication is handled by the current PluralChat client/session.

DELETE /api/system/:login

Removes the published system for the claimed Twitch login.

Use the current PluralChat client for authenticated editor requests. Do not expose private credentials or session data.

API responses

Use the HTTP status code first, then inspect any JSON error details returned by the route.

PluralChat responses may include fields such as code, error or message. Clients should not depend on undocumented error text remaining identical between releases.

Cache-aware public routes may return 304 Not Modified when the client's cached copy is still current.

Common status codes

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

200Request completed successfully.
201A resource was created successfully, when used by that route.
204Request completed successfully with no response body, when used by that route.
304Cached public data is still current; keep using the cached copy.
400The request was invalid, incomplete or malformed.
401The request is not authenticated or the current authentication is no longer valid.
403The authenticated client is not allowed to perform the requested action.
404The requested route or resource was not found.
409The request conflicts with the current state of the resource.
429The client has exceeded a rate limit and should retry later.
500An unexpected server-side error occurred.
502 / 503The service or one of its required upstream services is temporarily unavailable.

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

Use the PluralChat overlay as an OBS Browser Source for stream chat, or open the same chat page interactively when you need Twitch sign-in, channel selection and chat controls.

Stream overlay

  1. In OBS, add a Browser Source to your scene.
  2. Use https://api.pluralchat.online/overlay/chat?channel=ChannelNameHere&chatonly=1.
  3. Replace ChannelNameHere with the Twitch channel to display.
  4. Resize and position the Browser Source in your scene.

The chatonly=1 view hides interactive controls and is intended for displaying chat on stream.

Interactive OBS chat

Open https://api.pluralchat.online/overlay/chat in an OBS Custom Browser Dock or normal browser when you want the interactive interface.

  1. Complete Twitch sign-in using the device-code flow when prompted.
  2. Select the Twitch channel you want to join.
  3. Read and send Twitch chat from the PluralChat interface.
  4. Use PluralChat member cards and available Twitch moderation controls from the overlay.

How messages are displayed

When a chatter has a published PluralChat system and a message matches one of its member proxy rules, the overlay can show the member name, pronouns, avatar, colours and other published member information. Chatters without a matching published PluralChat system are displayed as normal Twitch chat.

Privacy: PluralChat never receives your Twitch password. Twitch authorization for interactive OBS features uses Twitch's device-code sign-in flow. OAuth access and refresh tokens for the active OBS session are kept only in server memory (RAM), are not written to the PluralChat database or application logs, and are discarded when you sign out, the session expires or the server restarts.

Support

Need help?

Follow the setup guide, make sure Twitch is connected if you are managing a system, and confirm that your system has been published. If you're still having trouble, check the API/service status and your installed extension version before contacting support.

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.
  • Twitch account information returned through Twitch's device-code authorization flow when you choose to connect Twitch.

Local extension data

The extension stores setup progress, preferences and cached public PluralChat data locally in your browser. Authentication or editor-session data used by the current client is not part of the public PluralChat API.

How we use information

  • Connect the Twitch account you authorize through Twitch's device-code flow.
  • 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 OBS chat page handles Twitch sign-in, channel selection and interactive chat. Twitch sign-in uses the device-code authorization flow. After you approve access on Twitch, PluralChat temporarily receives the 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

  • Disconnect or sign out of Twitch-connected features when you no longer want to use them.
  • 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.