This extension allows you to hide CHAT-GPT in a Moodle quiz. You just need to click on the question you want to solve, and CHAT-GPT will automatically provide the answer. However, one needs to be careful because as we know, CHAT-GPT can make errors especially in calculations.
Find the extension on the Chrome Webstore right here
I hereby declare that I am not responsible for any misuse or illegal activities carried out using my program. The code is provided for educational and research purposes only, and any use of it outside of these purposes is at the user's own risk.
Will be a pleasure if you want to support this project :). I'm alone working on this project and I'm still a student.

See the changelog to see every updates !
NOTE: This extension only works on Chromium-based browsers like Edge, Chrome, etc.
Go to "Manage my extensions" on your browser, then click on "Load unpacked extension" and select the "extension" folder. Afterwards, click on the extension icon and enter the ApiKey obtained from openai api. Finally, select a gpt model (ensure it work with completion api).
If you want to use Ollama, the extension now supports a local provider mode. The easiest setup is to run the local proxy included in this repo and point the Ollama Base URL to http://127.0.0.1:8787/v1.
The extension can now work in two ways:
- OpenAI API: send the question directly to an OpenAI-compatible endpoint.
- Ollama local: send the question to your local Ollama server through the bundled proxy.
When Ollama is selected:
- the API key field is hidden
- the popup shows an Ollama timeout field
0means no automatic timeout- while a request is running, hold Esc for 2 seconds to cancel it
You can also enable:
- Web search before answering: the extension fetches a quick web summary through the local proxy and adds it as extra context before the model answers.
- Use uploaded documents: upload local text files and the extension will keep them as a lightweight local RAG source.
- API KEY*: Your openai API KEY
- GPT MODEL*: The gpt model (you can click on the play button to ensure the model work with the extension)
- CODE: A code you will need to type on your keyboard to inject/remove the extension code from the moodle page. It allow you to be more discret and control the injection so it's recommended.
- BASE URL: The API endpoint if you need to use your own llm.
- PROVIDER: Switch between OpenAI API and a local Ollama server.
- MAX TOKENS: The max tokens length you want the api to respond with.
- OLLAMA TIMEOUT: Ollama-only setting.
0means no auto timeout, and you can stop the request by holding Esc for 2 seconds. <<<<<<< HEAD - WEB SEARCH: Ollama-only setting. The proxy will look up the question on the web and pass the top results to the model.
- USE UPLOADED DOCUMENTS: Enables the local document store for lightweight RAG-style context.
- UPLOAD DOCS: Add text files. Here are the supported file extensions:
.txt- Plain text files.md/.markdown- Markdown files.csv- Comma-separated values.json- JSON data syntax.html/.htm- Web pages.log- System log files
- CLEAR UPLOADED DOCS: Removes all stored documents.
- WEB SEARCH BEFORE ANSWERING: Ollama-only setting. The proxy will look up the question on the web and pass the top results to the model.
- USE UPLOADED DOCUMENTS: Enables the local document store for lightweight RAG-style context.
- UPLOAD DOCS: Add text files to the local document store.
- CLEAR UPLOADED DOCS: Removes all locally stored documents.
- Autocomplete: The extension will complete the question for you by selecting the correct(s) answer(s).
- Clipboard: The response is copied into the clipboard.
- Question to answer: The question is converted to the answer and you can click on it to show back the question (or show back the answer).

- Api key*: the openai api key from your account (Note you have to put credits by entering a credit card onto your account).
- GPT Model*: the gpt model you want to use.
- Code: a code to be more discret for injecting/removing the extension from the page. Simply type your code you entered into the configuration on the keyboard when you are on your moodle quiz and the extension will be inject. If you want to remove the injection just simply type back the code on your keyboard.
- Cursor indication: show a pointer cursor and a hourglass to know when the request is finished.
- Title indication: show some informations into the title to know for example if the code have been injected.

- Console logs: show logs into the console for the question, chatgpt answer and which response has been chosen.

- Request timeout: if the request is too long it will be abort after 20 seconds.
- Typing effect: create a typing effect for text. Type any text and it will be replaced by the correct one. If you want to stop it press Backspace key.

- Mouseover effect: you will need to hover (or click for select) the question response to complete it automaticaly.

- Infinite try: click as much as you want on the question (don't forget to reset the question).
- Save history: allows you to create a conversation with ChatGPT by saving the previous question with its answer. However, note that it can consume a significant number of tokens.
- Include images (only work with gpt-4): allows you to include the images from the question to be send to the chatgpt api. The quality is reduced to 75% to use less tokens. However, note that it can consume a significant number of tokens.

- Web search before answering: adds retrieved search snippets to the prompt when using Ollama.
- Use uploaded documents: lets you upload local text files and reuse them as context for answers.
Table are formated from the question to make it more readable for CHAT-GPT. Example of formatted table output:
id | name | birthDate | cars
------------------------------------
Person 1 | Yvick | 15/08/1999 | yes
Person 2 | Yann | 19/01/2000 | no
To know if the answer has been copied to the clipboard, you can look at the title of the page which will become "Copied to clipboard" for 3 seconds if Title indication is on.
- Solution 1: Go on this moodle demo page.
- Solution 2: Run the
index.htmlfile located in thetest/fake-moodlefolder.
-
Install and run Ollama locally.
-
Pull a model, for example:
ollama pull qwen2.5:7b
-
Start the proxy from the project root:
npm run proxy
-
Open the extension popup and choose Ollama local.
-
Set the Base URL to:
http://127.0.0.1:8787/v1 -
Enter your model name, for example
qwen2.5:7b. -
Optional:
- turn on Web search before answering
- turn on Use uploaded documents
- set Ollama Timeout to
0if you want only Esc to cancel
qwen2.5:7bfor a good speed/quality balancellama3.1:8bfor a strong general modelgemma3:4bor a smaller 7B model for faster responses- larger models like
qwen3:14borgemma4:26bwhen you want stronger reasoning and can accept slower output
If you're interested in accessing advanced features ahead of their official release, please consider downloading the extension from the dev branch. However, please be aware that this branch is under development and may contain bugs. If you encounter any issues, don't hesitate to contact me or create an issue on GitHub. Your feedback is invaluable in helping us improve the extension.













