Your machine.
Your commitment.
Free. Source available. No account required. CodeLock runs as a local stack for one person. The API deliberately does not authenticate requests, so keep every service off the public internet.
Prepare
A local stack,
then the shell.
You need Node.js 24, Docker Desktop and Git. The API, Postgres database and bundled judge run alongside the web app. Only the desktop shell enforces the desktop lock.
- Install the repository dependencies and copy the API and web environment templates.
- Generate an unlock-signing secret. Set it in the API and give the desktop shell the matching secret, as described in the setup guide. The shell refuses to lock without its verification configuration.
- Start the stack, then initialise the database and problem set. The first start downloads database and language images.
- Calibrate reference runtimes on the same judge and hardware you will use, then launch the desktop shell.
The README contains the commands in order, including configuration and database setup. Read them before running a reset on an existing installation.
No metered application APIs. Grading uses the bundled local judge. Electricity, hardware and any external services you independently keep can still cost money.
Platform availability
Build from source for now.
No release is configured for this site. Follow the desktop packaging guide to build the installer from source.
- WindowsNSIS installer · .exe
- The desktop packaging path produces an unsigned installer. SmartScreen may warn, and Smart App Control can refuse installation. Check the installed binary rather than trusting an installer exit code. Signing and auto-update have not been exercised end to end.
- No download configured
- macOSDesktop build configuration
- Build configuration exists. macOS behavior has not been verified on hardware; do not treat it as a tested equivalent of the Windows build.
- No download configured
- LinuxDesktop build configuration
- Build configuration exists. Linux behavior has not been verified on hardware.
- No download configured
- AndroidNative build required
- Expo Go cannot load the overlay module. A native build needs notifications, display-over-other-apps permission and a battery-optimisation exemption. The overlay has not been verified on a device.
- No download configured
iOS has no hard lock. The module reports it as unsupported. Family Controls is not implemented.
Before the first timer
Know the way out.
On desktop, hold Escape for ten seconds to leave a held session. It counts as a failed session. Keep the recovery instructions within reach while you verify your setup.