Skip to content

Free and open sourceGet it running

Support

Something went wrong, or you want out.

The way out is first, because if you are reading this with a screen you cannot dismiss you should not have to scroll past a changelog to find it.

Getting out

Recovery

The lock screen is up and I need out now.
On desktop, hold Escape for ten seconds. The countdown appears on screen while you hold it. This resolves the session as abandoned, which counts as a failed session for the difficulty ladder — the exit is real, it is just not free.
It says it cannot reach the server, and it will not unlock.
That is deliberate. An unreachable server is never evidence that nothing is locked, so the desktop shell fails closed and keeps retrying rather than opening on a network error. The kill switch still works while it retries.
I solved it, but the overlay will not come down.
The shell could not verify the unlock signature, which almost always means it has no key configured. CodeLock shows a dialog at startup naming the exact file to edit, and refuses to start any timer until it is set — an install that cannot unlock does not lock, because being stuck behind a screen that will never open is worse than not being locked at all.
Could I be locked out permanently?
No. Beyond the kill switch, a lock has a twelve-hour maximum lifetime on disk — anything older is treated as debris and ignored on the next start — and every platform has its own documented escape, listed on the limits page. Uninstalling always works.
Android: I need it off and the overlay is covering everything.
Pull down the status bar — system UI always draws above app overlays — then Settings → Apps → CodeLock → Force stop. Booting into Safe Mode also works, since third-party apps do not run there.

Troubleshooting

When it misbehaves

Windows warns me the installer is unsafe.
Expected, and explained in full on the install page. The build is not signed by an authority Microsoft recognises. Click “More info”, then “Run anyway”.
Android: the overlay never appears when the timer fires.
Two likely causes. Either “Display over other apps” was never granted — Android only offers it from a Settings screen, never a dialog — or your phone's battery manager killed the foreground service. Xiaomi, Huawei, Samsung and OnePlus all do this; exempt CodeLock from battery optimisation.
macOS asks for Accessibility permission every time I rebuild.
macOS ties that grant to the app's code signature, and an ad-hoc signature differs on every build. Use a stable signing identity — even a free one — if you are iterating.
Rebooting my computer got past the lock.
It should not. The lock state survives the reboot and CodeLock registers itself to launch at login, hidden, so the overlay comes back on its own. If it did not, the login item was never registered — that only happens for installed builds, never when running from source. The remaining honest gap is the window between power-on and the app starting.
The editor is blank.
The code editor needs JavaScript and local storage. Both are usually blocked by a strict privacy extension rather than by the browser itself.

Questions

Asked often enough

My solution is correct. Why am I still locked?
Because correctness is not the bar. Your fastest of two runs has to come in under best × 1.35 + 40ms, so a working but quadratic answer stays locked and tells you how far off it is. The whole calculation is on how it works.
Can I try it without an account?
Yes — the demo runs your code through the real judge and gives a real verdict, with no sign-up. It cannot lock anything, because a browser tab cannot.
Does it watch what else I am doing?
No. CodeLock can only see its own window. There is no keylogger, no screen capture and no record of which applications you use. What is stored is listed line by line on how it works.
Is my code private?
Submissions are stored against your account and run in a container with no network access. They are pushed to GitHub only if you connect it, and only to a repository you nominate.
Can I run my own server?
Yes, and it is the intended setup for a single user. The whole stack — database, API, sandbox and this site — comes up on one machine with one command, with automatic TLS and nightly backups.
Why is there no iOS lock?
Because iOS does not permit one. No public API lets an app block another, so CodeLock takes over its own screen and notifies you — and says exactly that rather than implying more.

Releases

Nothing published yet.

No release has been cut, so there is no version history to list and no changelog that would not be fiction. When the first one lands it appears here and on the install page, with checksums.

Building from source works today and is the same code.

Reporting a bug

Tell someone.

Open an issue on the issue tracker. Include your platform, what you expected, and what happened instead.

If the API gave you an error it came with a request id. Quoting that one string is the difference between finding your request in the logs and searching an hour of traffic.

There is no published email address for this deployment — the issue tracker is the way to reach someone.