FAQ
Questions people ask before exam day.
Privacy comes first, because it is what students ask about most. Then the practical side, for students, instructors, and the people who keep the lab running.
Privacy
What is recorded during an exam, and who can see it.
What is recorded
- The web address of each request a lab machine makes during the exam, allowed or blocked, with the time
- Which seat each student was assigned to, and any moves
- Machine state: locked, self-test results, firewall and proxy status
- Who locked or restored a lab, and when
What is never recorded
- Webcam, microphone or room audio
- Screenshots or screen recordings
- Keystrokes or clipboard contents
- The contents of pages, or what you type into forms and editors
- Faces, ID photos or other biometrics
Does SafeExamOS record students?
Not in the way most exam software does. There is no webcam, no microphone, and no screen recording, and there never will be. This is listed on the anti-roadmap, which makes it an explicit commitment rather than just current practice.
SafeExamOS records network traffic from the lab machine: the address of each request it makes during the exam, whether it was allowed or blocked, and when. Together with the seating plan, that tells you which seat made which requests. The log says nothing about the student beyond their seat number.
Can it see what I type or what’s on my screen?
No. SafeExamOS does not capture keystrokes, the clipboard, screenshots, or the contents of pages. It cannot see the code in your editor or the answers you type into a quiz. The proxy checks which addresses are permitted and writes each request’s address to a log.
Does it look inside HTTPS traffic?
On lab machines during an exam, partly. When a lab is locked, each machine trusts a certificate that SafeExamOS created locally on that machine. This lets the local proxy see the full URL of an HTTPS request, including the path after the domain.
This makes fine-grained rules possible. You can allow one CodeChef contest while blocking the rest of CodeChef, or allow a LeetCode problem page while blocking the editorial. For LeetCode, the filter also checks what kind of request a page is making (problem or editorial) to decide whether to allow it.
The log records addresses and decisions. It does not record page contents, form data, or anything you submitted. When the lab is restored, the proxy is switched off.
So the log shows when I submitted?
It shows that a request was sent from your seat to the judge’s submit endpoint at a particular time. Your instructor can compare that against the judge’s own record of submissions to verify that exam submissions came from the lab. It does not contain your code.
Some courses use this to set a simple policy: submissions made outside the lab during the exam window are treated as practice rather than as an exam attempt. Your course will tell you if that applies.
Who can see the logs?
The people running the exam at your institution: the lab team and the course instructor. Logs are not visible to other students and are not shared with other institutions.
Machine logs by themselves are tied to seats rather than names; the seating plan is what connects a seat to a student. In the dashboard, views that show student details are permission-controlled, and the act of viewing them is itself logged. The seating plan on the lab door shows seat numbers only.
Where is the data stored?
Inside your institution. Logs are written on each lab machine and collected to a jump host on your own network, where they are checksummed so the copy matches what the machine wrote. Nothing is sent to a SafeExamOS cloud.
A hosted dashboard is on the roadmap as an option. If it ships, syncing to it will be opt-in, and exams will still run without it.
How long are logs kept?
As long as your institution decides. Logs from one exam are never overwritten by the next one, so questions that come up later can still be answered. We recommend keeping them through the period in which marks can be appealed, then deleting them. Automatic retention controls are on the roadmap.
Does a blocked request mean I’m accused of cheating?
No. Blocked requests are routine: a typo in a URL, autocomplete firing, a background system update, a habit like opening Gmail. These appear in grey in reports (never in red), and nothing is sent to anyone automatically.
If something in the log raises a question, a person looks at it and talks to you. The log records what happened; what it means is for a person to work out, not something the system decides.
Is there AI watching me or scoring how suspicious I am?
No. There is no model watching behaviour and no suspicion score. The only thing analysed is which addresses your seat requested.
Does it install anything on my own laptop?
No. SafeExamOS runs only on lab machines, which your institution owns and manages.
Is it compliant with GDPR or India’s DPDP Act?
That depends on how your institution uses it, so we will not claim a badge. SafeExamOS is built to collect as little as possible: request addresses, times, and seat state, all kept on your own infrastructure, with no audiovisual or biometric data. The code that does the collecting is open source, so your data protection officer can check exactly what it stores.
For students
What to expect at your seat on exam day.
How do I log in?
The machine at your seat is already set up for the exam. There is a file on the desktop called YOUR_IDENTITY.txt with your seat number and the login details for the exam’s judge or quiz. If anything looks wrong, let the invigilator know before you start.
Which sites can I use?
The ones your instructor allowed, usually the judge or quiz and sometimes documentation. Your course will have the full list. Anything else will not load.
What if a site I need is blocked?
Tell the invigilator. If it should be on the allowlist, the lab team can add it. A blocked request does not count against you.
What if my machine crashes or restarts?
Tell the invigilator. A locked machine stays locked through a restart. If it does not come back, you will be moved to a spare seat (one that was locked before the exam started), and your login goes with you.
Can I use a USB drive?
Not during the exam. USB storage is blocked for the duration of a locked lab and works again once the lab is restored.
Can I use my own laptop?
No. SafeExamOS runs on lab machines only, which is also why nothing gets installed on your personal machine.
For instructors
Contests, seating and what you get afterwards.
Which platforms work?
CodeChef contests, self-hosted DOMjudge, and Moodle quizzes have all run in real exams. Codeforces, AtCoder, and CSES have contest-level rules that pass our tests. LeetCode works through a filter that keeps problems open and editorials and solutions closed.
Using something else, like HackerRank or your own server? Ask us. Usually it is a matter of figuring out which addresses the platform actually needs.
Does the whole site get opened, or just my contest?
Just your contest, where the platform allows it. For CodeChef, the rules cover the pages for one contest code. Practice problems, other contests, and discussion pages stay closed.
How are seating plans made?
From the roster and the lab layout. The plan is seeded, so it can be reproduced exactly, and it moves students away from their previous machine and previous neighbours. Door lists tell students which lab to go to, without showing machine numbers.
What do I get after the exam?
The lab’s request logs, collected and checksummed, plus a report for each exam. You can match judge submissions to requests from each student’s assigned seat and see what was blocked.
Does it replace the invigilator?
No. Someone still needs to be in the room to answer questions and deal with anything unexpected. SafeExamOS means they do not have to spend the whole exam watching screens.
For lab admins
How locking and restoring work under the hood.
What actually happens when you lock a machine?
Locking a machine creates a fresh exam account with no admin rights, starts a local Squid proxy configured with an allowlist for that exam, adds firewall rules so traffic cannot go around the proxy, and blocks USB storage and hibernate. The network rules apply to every program on the machine.
Restoring stops the proxy, removes the exam account, and lifts the blocks. The everyday student account and installed software stay as they were.
What does it run on?
Ubuntu 24.04. You can install it on machines you already have and lock or restore them as needed, or start from the SafeExamOS image. Labs that dual-boot Windows are supported. Set the Linux clock to local time; if you do not, certificates can end up dated in the future.
How do I run it across a whole lab?
From a jump host on the lab network. One command locks or restores every machine in scope, running in parallel. The tool prints the exact list of machines it will act on before doing anything, and it will not touch the jump host or anything outside the exam. Wake-on-LAN can power the lab up beforehand.
What if a machine is off or reboots?
A locked machine stays locked across reboots. Machines that were off when you ran the command get reported, and you lock them when they come up. Lock spare seats as well; moving a student mid-exam should not require locking a machine under pressure.
Does it need the internet?
Only what the exam itself uses. Once an exam is set up, the jump host can start it, watch it, collect evidence, and end it on the local network even if the dashboard is unreachable. A hosted judge like CodeChef still needs internet access, of course.
What does the dashboard do?
At the moment the dashboard is for observing: you get an overview of labs, the state of each machine, and the evidence collected. Locking and restoring happen from the jump host. Dashboard actions and an MCP endpoint for AI assistants are on the roadmap.
What does it not protect against?
Someone with root access to the machine, compromised firmware, or a second device in a student’s pocket. That last item is what the invigilator is for. SafeExamOS is also not a judge or a grading system; it makes the lab safe to use one.
Buying and trying
Licences, pilots, and support.
Is it open source?
The engine that locks and restores machines is open source under AGPLv3, stewarded by Justuju. The dashboard and some operator tools are paid.
Can we try it before committing?
Yes. A pilot covers one lab for a term. We help you set up, sit in on your first exam remotely, and go through the logs with you afterwards.
How is it priced?
The open-source engine is free. Paid plans are priced by the seats in your lab, not by students or exams, so running more exams does not cost more.
Do you support remote exams?
No. SafeExamOS needs lab machines your institution controls. For exams taken at home, see how remote proctoring compares.