Files
IRC-kosmi-relay/docs/IRC.md
cottongin c88b75f30d docs: comprehensive documentation overhaul
Rewrite README.md and all setup guides to reflect the current native
GraphQL WebSocket architecture (replacing stale headless Chrome/WebSocket
interception descriptions). Add new docs/IRC.md with complete IRC command
reference, vote syntax, and ticker symbol table.

Archive pre-edit docs to docs/archive/setup-backup-2026-05-10/ and move
historical development notes from docs/ root into docs/archive/.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 22:01:25 -04:00

5.8 KiB

IRC Command Reference

This document covers everything available to IRC users when interacting with the Kosmi-IRC relay bot. All commands and vote syntax work in any channel the bot is present in.

Commands

Commands are typed as regular messages in IRC. They are not relayed to other bridges -- the bot consumes them and acts on them directly.

There is no permission system; any user in the channel can issue any command.

!kreconnect

Force-reconnect the Kosmi bridge. Useful if the Kosmi WebSocket has silently dropped.

Response: Reconnecting Kosmi... (sent to the channel immediately)

The reconnection happens asynchronously. If it fails, errors appear only in the bot's logs.

!jreconnect

Force-reconnect the Jackbox Game Picker WebSocket. Only meaningful if the Jackbox integration is enabled.

Response: Reconnecting Jackbox...

!reconnect

Reconnect all non-IRC services (Kosmi and Jackbox) at once.

Response: Reconnecting all services...

!votes

Query the current vote tally for the game being played right now in the active Jackbox session.

Response (broadcast to all bridges -- IRC, Kosmi, etc.):

🗳️ Fibbage 4 • Today: 5👍 2👎 (Score: 3) • All-time: 46👍 3👎 (Score: 43)

Requirements:

  • Jackbox integration must be enabled
  • An active Jackbox session must exist
  • A game must currently have status "playing" in that session

If any of these conditions are not met, the command is silently consumed (errors appear only in bot logs).


Voting

Vote detection runs automatically on every non-relayed message. Votes are sent to the Jackbox Game Picker API when the integration is enabled and a session is active.

Current Game Votes

Type anywhere in a message:

Syntax Effect
thisgame++ Upvote the currently playing game
thisgame-- Downvote the currently playing game
  • Case-insensitive (ThisGame++, THISGAME++, etc. all work)
  • Can appear anywhere in the message text
  • The message is still relayed to other bridges as normal chat

Ticker Symbol Votes

Vote on a specific game by its ticker symbol:

Syntax Effect
SYMBOL++ Upvote the game identified by SYMBOL
SYMBOL-- Downvote the game identified by SYMBOL
  • Symbols are 2-4 alphanumeric characters
  • Case-insensitive (qpl3++ and QPL3++ are equivalent)
  • The symbol must exist in the ticker table below
  • The message is still relayed to other bridges as normal chat

Ticker Symbol Table

Symbol Game
BC Bomb Corp.
BDTS Bidiots
BR Blather 'Round
BRKT Bracketeering
CH Cookie Haus
CU Champ'd Up
CVDL Civic Doodle
DD Dirty Drawful
DCTN Dictionarium
DOOM Doominate
DRM Dodo Re Mi
DRWA Drawful Animate
DRWF Drawful
EW Earwax
FANL Fakin' It All Night Long
FBG2 Fibbage 2
FBG3 Fibbage 3
FBG4 Fibbage 4
FBXL Fibbage XL
FI Fakin' It!
FT Fixy Text
GSPN Guesspionage
HPNT Hypnotorious
HRSY Hear Say
JB Joke Boat
JJ Job Job
JNKT Junktopia
LMF Let Me Finish
LOT Legends of Trivia
LS Lie Swatter
MSM Monster Seeking Monster
MVC Mad Verse City
NNSR Nonsensory
PS Patently Stupid
PTB Push the Button
QLXL Quiplash XL
QPL2 Quiplash 2
QPL3 Quiplash 3
QXRT Quixort
RM Role Models
ROOM Roomerang
SS Survey Scramble
SPCT Suspectives
STI Survive the Internet
STR Split the Room
TJ Time Jinx
TKO2 Tee K.O. 2
TKOX Tee K.O. T-Shirt Knock Out
TMP1 Trivia Murder Party
TMP2 Trivia Murder Party 2
TP Talking Points
TPM The Poll Mine
TWEP The Wheel of Enormous Proportions
WD Weapons Drawn
WS Word Spud
YDK1 You Don't Know Jack 2015
YDKJ You Don't Know Jack Full Stream
ZPDM Zeeple Dome

Behavior Notes

Loop Prevention

Messages that begin with [irc] or [kosmi] (case-insensitive) are treated as relayed from another bridge. Vote detection is skipped for these messages to prevent duplicate votes when the same text passes through multiple bridges.

Command vs. Vote Processing Order

  1. Vote detection runs first (on all non-relayed messages)
  2. ! commands are checked next
  3. If the message is a ! command, it is consumed and not relayed
  4. If the message is not a command, it is relayed to other bridges

This means a vote phrase in a normal message (like "nice game thisgame++") both registers the vote and gets relayed. But !votes only triggers the votes query -- it is not relayed.

What IRC Users See from Other Bridges

Source Format
Kosmi user message [kosmi] <username> message text
Jackbox game announcement System message (e.g. 🎮 Coming up next: Fibbage 4!)
Jackbox room code System message with room code (may include image link)
!votes result 🗳️ Title • Today: X👍 Y👎 (Score: Z) • All-time: X👍 Y👎 (Score: Z)
Reconnect confirmation Plain text from "system" (e.g. Reconnecting Kosmi...)

The [kosmi] prefix format is configurable via RemoteNickFormat in matterbridge.toml.

Requirements for Jackbox Features

All Jackbox-related functionality (votes, !votes, game announcements, room codes) requires:

  1. [jackbox] section in config with Enabled=true
  2. Valid APIURL and AdminPassword
  3. An active Jackbox session on the API
  4. A game currently being played (for !votes and vote detection)

When the Jackbox integration is disabled or no session is active, vote syntax is ignored and !votes produces no output.