Runs the browser-side signals real coding-assessment proctors use to catch AI-tool leakage — keystrokes, focus, clipboard, extension injection, automation fingerprints, click-through overlays. No camera, microphone, screen-share, or fullscreen prompt.
Each card is a live vector. Some fire on page load; others wait for your input.
Tab switches and window blur — the most common AI-overlay tell.
Multi-monitor and split-screen layouts visible from window.screen alone, no permission.
Window-size delta, debugger heuristics, console.log getter trap.
Background-tab throttling, VM overhead, and overlay paint stalls are all visible from rAF cadence.
beforeunload + popstate. Detects exit attempts during a session.
Ctrl/Cmd held then released without a key — the canonical leak of user-mode AI hotkeys.
Copy/paste sizes, AI-shaped pastes, prompt watermark matches on return.
Pointer leaving the page tracks dock/taskbar trips and second-screen reaches.
Dwell/flight latencies, burst after pause, zero-correction streaks — the shape of replayed code.
Snapshot diffing catches paste-of-full-solution and stagnation→completion patterns.
Canvas/audio/font/WebGL/plugin signal stack — same vectors commercial proctors deploy.
WebRTC IP enumeration, timezone vs locale mismatch, connection-type churn.
Input latency, keyboard echo, mouse quantization — the fingerprint of RDP/TeamViewer/Parsec.
Extension-injected DOM nodes and content scripts — the surface a content-script proctor inspects first.
Comment density, markdown leakage in paste, complete-solution-paste signatures.
Invisible per-session watermark embedded in the prompt — paste-back becomes the strongest piece of evidence.
In-browser surrogate for the OS-level Fair Screen scanner (HN 46019665). Catches click-through, transparent, and high-z overlays.
Paste, type, or copy the watermarked prompt back to see clipboard / typing / watermark / AI-pattern / code-progression vectors trigger live. No permissions, no submit, just signal.
The point of this scanner is comparative. Run it, then run it again with your AI tool active, then watch which vectors fire.
Watch the live grid above with no AI tool running. Note the vectors that stay live/clean.
Run your AI tool the way you would in a real round — hotkey, overlay, the works.
Reload this page or come back to the grid. New triggered vectors are the leaks your tool is producing.
3-problem trial · no card · Windows kernel stealth stack
How each tool class fires against the passive browser-side vectors this scanner runs. Compared by architecture, not brand.
| Passive check | User-mode overlay | Browser extension | Second device / remote | Aceloop kernel |
|---|---|---|---|---|
| Hotkey leakage (orphaned Ctrl/Cmd) | Triggers | Triggers | Latency noise | Clean |
| Window-focus / blur on overlay paint | Triggers | Triggers | Clean | Clean |
| Extension-injected DOM nodes | N/A | Triggers | N/A | Clean |
| Click-through / high-z overlay (Fair Screen) | Triggers | Triggers | N/A | Clean |
| Clipboard / paste shape | Optional | Common | Common | No paste path |
| Browser-fingerprint / automation | Clean | Clean | Triggers | Clean |
| Remote-access input latency | Clean | Clean | Triggers | Clean |
| AI-shaped pasted code | Triggers | Triggers | Triggers | No paste path |
"Triggers" = produces an event this scanner would record. "Clean" = no event under normal operation. Per-row rationale lives in the Aceloop engineering blog. Method-only comparison; no third-party logo or claim is implied.
Reset for a clean baseline before activating your AI tool. Download the scan as JSON to diff before/after runs, share with a teammate, or post in a writeup. Everything is local — nothing leaves your browser.
JSON includes vector statuses + full event log (timestamps, module, severity, message). File is generated locally via a Blob URL; no network request fires. Use this to diff against a second run with your AI tool active.
The scanner is intentionally bounded. Permission-gated checks below are excluded.
They require browser permission prompts. This scanner is intentionally permission-free so anyone can load it and see results immediately. Coding-platform proctors that do request those permissions catch additional vectors, but most AI-tool leakage shows up in the passive surface this scanner runs.
No. The scanner is fully client-side — nothing leaves your browser. Detection runs locally; your keystrokes, code, paste contents, and event log are never sent off-machine. When you click "Download scan as JSON" the file is generated locally via a Blob URL and downloaded to your machine; no network request fires.
It runs locally in your browser to detect VPNs and tunneled environments. Your IP addresses are visible to the in-page scanner code only and are never transmitted off your machine.
That vector requires interaction to fire (keyboard, paste, type, mouse exit). Use the probe pad to trigger them. "Live" means the vector is actively monitoring a passive signal. "Triggered" means a detection event fired.
Built by Aceloop · Engineering posts on each vector live at /blog
Download Aceloop Free