KBotter is menu option 3. It floods a Kahoot game lobby with bot players by establishing real WebSocket connections to Kahoot’s CometD endpoint. Each bot goes through the full Kahoot join handshake — session token retrieval, challenge solving, WebSocket CometD negotiation, and player login — and then holds its connection open for as long as the program runs.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/kaladoodotlua/LRhub/llms.txt
Use this file to discover all available pages before exploring further.
Input Prompts
When KBotter launches you will be asked five things in sequence:Player Name
The base name for all bots. Each bot receives an incrementing numeric suffix — for example, a base name of
bot produces bot1, bot2, bot3, and so on.Name Bypass
Whether to convert each character of the base name into a Unicode lookalike before joining.
Name Bypass
The name bypass substitutes each lowercase letter with a Unicode lookalike character to avoid Kahoot’s name filter.
How It Works
KBotter uses the following flow for every bot it spawns:Fetch Session Token
An HTTP GET is made to Kahoot’s reservation endpoint to retrieve the session token and JavaScript challenge string:The session token is returned in the
X-Kahoot-Session-Token response header, and the challenge is in the JSON body.Solve the Challenge
solve_challange.solveChallenge() evaluates the obfuscated JavaScript challenge string using py_mini_racer, then XOR-decodes the base64 session token with the resulting solution string to produce the WebSocket connection path segment (wssConnection).CometD Handshake
The bot sends a CometD handshake message on the
/meta/handshake channel and reads back the assigned clientId.Connect and Login
After two
/meta/connect frames to establish the CometD subscription, the bot sends a login message on /service/controller with the player name and a spoofed Chrome browser device string. A successful login is confirmed when loginResponse appears in the server’s reply.Threading Model
Each bot runs in its ownThread. Bots are spawned with a 0.1-second sleep between each thread start to avoid hammering the Kahoot API simultaneously:
Result Messages
After all threads have reported back:Bots hold their WebSocket connections open for the lifetime of the process. Once you close or interrupt KBotter, all bots disconnect and leave the Kahoot lobby automatically.
Requirements
KBotter requires Python 3 and the following packages:| Package | Purpose |
|---|---|
websocket-client | Opens and maintains the CometD WebSocket connections |
requests | Fetches the session token from Kahoot’s reservation API |
py_mini_racer | Evaluates the Kahoot JavaScript challenge to decode the session token |