The most complete Kahoot AI assistant - supports every question type, including ones no other tool can handle.
No quiz ID needed Β· No paywall Β· No server Β· Bring your own API key Β· Works on any live game
β οΈ The host needs to have "Show questions & answers on players' devices" enabled in their Kahoot settings. This is on by default for most games. If the host turns it off, the extension won't have any question data to work with.
| β‘ What Makes This Different | ποΈ How It Works |
| π§ Supported Question Types | π Privacy |
| π οΈ Installation | π° API Cost |
| βοΈ Settings | π§ Troubleshooting |
Most Kahoot tools only handle basic multiple-choice. Some need the Quiz ID beforehand. Others are paywalled or use a shared server that gets rate-limited.
kAIhoot works on every question type Kahoot offers, answers in real-time during live games, and runs entirely on your own OpenAI key. There's no middleman and no account to create.
| Feature | kAIhoot | QuizGPT | KahootGPT |
|---|---|---|---|
| Multiple Choice | β | β | β |
| True/False | β | β | β |
| Multi-Select | β | β | β |
| Pin-It (Map/Image) π₯ | β | β | β |
| Jumble (Reorder) π₯ | β | β | β |
| Slider (Numeric) π₯ | β | β | β |
| Open-Ended (Type) π₯ | β | β | β |
| Vision AI for images π₯ | β | β | β |
| Works on custom quizzes | β | β | β |
| No Quiz ID needed | β | β | β |
| Bring your own API key | β | β | β |
| GPT-5 support | β | β | β |
| Answer delay (stealth) | β | β | β |
| Silent mode | β | β | β |
| Free & open source | β | β | β |
π Multiple Choice & True/False - Reads the question and all choices from the WebSocket, sends to GPT, highlights and clicks the correct answer. Handles image-based choices by reading aria-label attributes.
βοΈ Multi-Select - Evaluates each option independently with a YES/NO per-option prompt. Filters out fabricated or nonsensical choices and selects all correct answers (typically 2-4 out of the options).
π Pin-It (Map & Image Questions) - Sends the image to GPT-4.1 Vision with a coordinate system and landmark reference points for world maps. Places the pin on the correct location via SVG coordinate injection. No other Kahoot tool does this.
π§© Jumble (Reorder) - Reads shuffled tiles, asks GPT for the correct order, computes the tile permutation, then reorders through React fiber tree manipulation and drag-click simulation.
ποΈ Slider (Numeric) - Asks GPT the factual question, snaps the answer to the nearest valid step value using offset math (min + round((value - min) / step) * step), sends the WS answer during the loading animation, then sets the visual slider and clicks submit.
βοΈ Open-Ended (Type Answer) - Generates a short answer within the character limit, types it character-by-character with simulated keyboard events (keydown β InputEvent β keyup) to work with React controlled inputs, then submits.
Option A: Download ZIP (easiest, no git needed)
- Click the green "Code" button at the top of this page
- Click "Download ZIP"
- Extract/unzip the downloaded file to a folder on your computer (right-click β "Extract All" on Windows)
- Remember where you extracted it, you'll need the folder path in the next step
Option B: Clone with Git
If you have Git installed, open a terminal and run:
git clone https://github.com/Gavri-dev/kAIhoot.git- Open Chrome and type
chrome://extensions/in the address bar, then press Enter - In the top-right corner, flip the "Developer mode" toggle to ON
- Three new buttons appear at the top. Click "Load unpacked"
- Navigate to the folder where you extracted/cloned kAIhoot and select it
- The extension should now appear in your extensions list with the kAIhoot icon
If you see an error about manifest.json, make sure you selected the folder that directly contains manifest.json, not a parent folder.
The extension needs an OpenAI API key to work. This is what lets it talk to GPT. You'll need to add a small amount of credit to your OpenAI account (a few dollars is plenty, a full 20-question game costs about 1-3 cents).
- Go to platform.openai.com and create an account (or sign in)
- Go to platform.openai.com/settings/organization/billing and add a payment method. You can start with as little as $5, which will last hundreds of games
- Go to platform.openai.com/api-keys and click "Create new secret key"
- Give it any name (like "kAIhoot") and click "Create"
- Copy the key that appears. It starts with
sk-. Save it somewhere safe because OpenAI won't show it again
- Click the puzzle piece icon (π§©) in Chrome's top-right toolbar to see your extensions
- Click on kAIhoot to open the popup
- Click "OpenAI Settings" to expand the settings panel
- Paste your API key into the "API Key" field
- Leave the model as
gpt-5-mini(fastest and cheapest option). You can change it later - Click Save
- The status should change from "No API key" to "API key set"
- Go to kahoot.it and join a game with a PIN like normal
- The extension activates automatically. You'll see a small "kAIhoot: Ready" badge in the top-right corner of the screen
- When a question appears, the extension reads it, sends it to GPT, and highlights + clicks the correct answer
That's it. If you want the extension to wait before answering (so it doesn't look suspicious), drag the Answer Delay slider in the popup to add a few seconds of wait time.
| Setting | Default | What it does |
|---|---|---|
| Highlight Answer | β On | Green glow on the correct answer |
| Auto-Click | β On | Automatically clicks/submits the answer |
| Answer Delay | 0s | Wait 0-10 seconds before answering (shows a countdown) |
| Silent Mode | β Off | Hides all on-screen indicators (status badge, timer, highlights) |
| Model | gpt-5-mini |
Any OpenAI model. gpt-5-mini is fast and cheap. gpt-5 is smarter but slower |
When you join a Kahoot game, the extension intercepts the WebSocket connection between your browser and Kahoot's servers. Every time a new question gets sent to your client, kAIhoot grabs it before the UI even renders, sends it to OpenAI, and uses the response to answer automatically.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Kahoot.it (Browser Tab) β
β β
β βββββββββββββββ ββββββββββββββββ β
β β injected.js ββββββΊβ Kahoot WS β β
β β (page ctx) β β Server β β
β ββββββββ¬βββββββ ββββββββββββββββ β
β β CustomEvents β
β ββββββββΌβββββββ β
β β content.js β DOM manipulation, status UI, β
β β (content) β answer delay, pin/jumble/slider β
β ββββββββ¬βββββββ β
β β chrome.runtime messages β
βββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββΌββββββββββββββββββββββββββββββββββββββββββββ
β autoresponder.js (Service Worker) β
β Routes questions to the right handler β
β β β
β ββββββββΌβββββββ ββββββββββββββββ β
β β openai.js ββββββΊβ OpenAI API β β
β β βββββββ β β
β βββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
injected.js hooks into the WebSocket and intercepts question data as Kahoot sends it. content.js enriches the question (image labels, slider range from the DOM) and passes it to the service worker. autoresponder.js routes it to the right handler in openai.js, and the answer flows back through the chain into DOM manipulation + WS submission.
Questions get sent to AI the instant they arrive via WebSocket, during the loading animation. Slider and jumble answers are submitted via WS before the UI is even interactive. Pin placement polls the SVG at 100ms intervals instead of waiting for buffers.
Your API key is stored locally in chrome.storage.sync and only ever sent to OpenAI. There's no backend, no analytics, no telemetry, no data collection. The extension only requests permissions for storage, kahoot.it, and api.openai.com.
A typical 20-question game on gpt-5-mini costs about $0.01-0.03. Pin-it questions are a bit more (~$0.02 each) because they use gpt-4.1 for vision. $5 of OpenAI credit will last you a very long time.
Extension doesn't activate / no status badge appears
- Make sure you're on
kahoot.it(notkahoot.comorcreate.kahoot.com) - Try refreshing the page after loading the extension
- Check
chrome://extensions/and make sure kAIhoot is enabled (toggle is blue)
"No API key" error
- Open the extension popup and check that your key is saved
- Make sure the key starts with
sk-and doesn't have extra spaces
Answers are wrong or empty
- Check that your OpenAI account has credit at platform.openai.com/settings/organization/billing
- Try switching the model to
gpt-5for harder questions (slower but smarter)
Extension doesn't answer some question types
- The host might have disabled "Show questions & answers on players' devices"
- Surveys and polls are intentionally skipped since they're non-scored
"manifest.json" error when loading
- You probably selected the wrong folder. Make sure you pick the folder that has
manifest.jsondirectly inside it, not a parent folder or a subfolder
Standard quiz (4-choice), true/false, multi-select (2-4 correct), pin-it with world maps and custom images, jumble (3-8 tiles), slider with numeric ranges, open-ended with character limits, and image-based answer choices. Also works with mixed-type quizzes. Surveys and polls are auto-skipped since they're non-scored.
Built by @Gavri-dev. Originally based on QuizGPT by @im23b-busere (MIT License). Extended with full question type coverage, vision AI, React DOM manipulation, WS-first submission, and a lot of speed/robustness work.
Educational and research purposes only. Demonstrates how browser extensions can interact with web applications through WebSocket interception and DOM manipulation. Not affiliated with Kahoot! or OpenAI. Use responsibly.
MIT - do whatever you want, just keep the copyright notice.
If this helped you, drop a β
