Draw over anything — live.
Presentify-style screen annotation for Windows 10/11.
Free & open source · local-only, no telemetry · ~1 MB installer
Penlight is a lightweight tray app that lets you annotate your screen, sketch on persistent whiteboards, highlight your cursor, spotlight a region, and zoom in — all without freezing the screen. Webcams, videos, and live demos keep running underneath your ink, so OBS recordings look right. That's the whole reason it exists: ZoomIt's draw mode freezes the frame; Presentify doesn't exist on Windows. Penlight does both things Windows was missing.
Built with Tauri v2 (Rust + WebView2). The cursor halo, spotlight, and zoom are pure native code (Windows composition + magnification APIs) with near-zero overhead — about 32 MB of RAM in the tray.
- Annotate — freehand pen, highlighter, arrows, lines, rectangles, ellipses, and text over any app. 5 favorite colors plus random gradient strokes, adjustable line weight, unlimited undo/redo, optional auto-erase per stroke (hold Ctrl to invert), Shift to constrain shapes, Alt to fill. The pen cursor is an ink preview — a dot in your current color at your current line weight.
- Drawing tablets — pen and stylus input with pressure-sensitive strokes (Wacom and anything else Windows exposes as a pen). Press harder for a thicker line, or switch pressure off for uniform width; flip the pen over and the eraser end erases.
- Whiteboard — persistent boards on an infinite canvas: wheel to pan, Ctrl+wheel to zoom (0.1–30×), autosaved to disk, with a board library for creating, renaming, and switching boards mid-presentation (B).
- Cursor highlight — a ring, squircle, or rhombus halo around your cursor with left/right-click pulse animations. Runs on a dedicated native thread: ~0% idle CPU, composited at vsync.
- Spotlight — dim the whole screen except a soft circle following your cursor.
- Zoom — a live magnifier lens that follows your cursor (ZoomIt LiveZoom architecture). The zoomed view shows up in OBS recordings.
- Interactive mode — keep annotations on screen while you click through to apps underneath.
- Multi-monitor and mixed-DPI aware. Tray-only footprint; every feature is a global hotkey away.
| Whiteboard | Spotlight |
|---|---|
![]() |
![]() |
| Zoom lens | Cursor halo |
|---|---|
![]() |
![]() |
| Microsoft Store — recommended | Install Penlight · signed by Microsoft, no security warning, updates itself |
| Direct download | Penlight_x.y.z_x64-setup.exe · per-user installer, no admin rights needed |
Same app either way, built from this repository. Windows 10/11, x64.
SmartScreen note — direct download only. The
.exeisn't code-signed, so Windows may warn on first launch ("Windows protected your PC"). Click More info → Run anyway, verify the download against the release'sSHA256SUMS.txt, or install from the Store, where Microsoft signs the package for you.
All rebindable in Settings → Shortcuts.
| Action | Shortcut |
|---|---|
| Toggle annotate | Ctrl+Alt+A |
| Annotate without toolbar | Ctrl+Alt+Shift+A |
| Toggle whiteboard | Ctrl+Alt+W |
| Toggle cursor highlight | Ctrl+Alt+H |
| Toggle spotlight | Ctrl+Alt+L |
| Toggle zoom | Ctrl+Alt+Z |
| Size − / + (halo or spotlight, while active) | Ctrl+Alt+- / Ctrl+Alt+= |
| Zoom level − / + (while zoomed) | Ctrl+Alt+, / Ctrl+Alt+. |
| Exit zoom | Esc |
While annotating (single keys): F free hand · H highlighter · A arrow · L line · R rectangle · C circle · T text · E eraser · 1–5 favorite colors · 6 gradient · [ ] line weight · W whiteboard · B board library · I interact with apps · Backspace clear all · Ctrl+Z / Ctrl+Shift+Z undo/redo · Esc exit.
On the whiteboard: wheel pans (Shift+wheel horizontally), Ctrl+wheel zooms at the cursor, Space/middle-drag pans, Ctrl+0 resets the view.
Use Display Capture. Window Capture and Game Capture record a single app's surface and will not include Penlight's overlays. Everything Penlight draws — ink, halo, spotlight dim, and the zoomed lens view — is part of the composited desktop and records correctly with Display Capture.
- Over elevated (admin) windows, click pulse animations stop (Windows blocks input hooks across integrity levels); the halo keeps following via a fallback. Nothing renders on the UAC secure desktop — that's a Windows guarantee.
- The zoom lens cannot magnify the Start menu or some system flyouts (they render unmagnified; same limitation as ZoomIt).
- While zoomed, clicks land at the real (unmagnified) positions — zoom is for showing, not clicking (same behavior as ZoomIt LiveZoom).
- Flicker on some Intel iGPUs: enable Settings → General → Disable GPU compositing and restart.
- Tablet not drawing as expected? Enable Settings → General → Input diagnostics and annotate: the overlay reports the live pointer type, pressure, buttons and event rate, which says immediately whether Windows is delivering pen events at all.
Prerequisites: Node.js 20+, Rust (stable, MSVC toolchain).
npm install
npm run tauri dev # run in development
npm run tauri build # produce the NSIS installer (src-tauri/target/release/bundle/nsis)Releases are built by CI: pushing a v* tag runs release.yml, which attaches the installer and its SHA-256 checksums to a draft GitHub release.
- Tray-only Tauri app; all windows created from Rust. Rust owns all mode state.
- Annotation/whiteboard: one transparent, click-through-toggleable WebView2 overlay per monitor (physical-pixel sized, height−1px to dodge Windows' fullscreen heuristics). Stroke engine is a display list rendered to two stacked canvases, smoothed with perfect-freehand. Pointer Events with coalesced sampling feed it, so pen pressure and tablet report rates come through intact; each stroke stores its own smoothing options so a reloaded board replays exactly as drawn.
- Halo + spotlight: a native thread owning a
WS_EX_NOREDIRECTIONBITMAPcomposition window spanning the virtual screen; visuals move viaVisual.Offsetat vsync. Input viaWH_MOUSE_LLwith a constant-time callback and aGetCursorPoswatchdog. - Zoom: a
WC_MAGNIFIERlens window on a 20 ms tick (the fullscreen Magnification API is deliberately avoided — it's invisible to screen capture).
- CONTRIBUTING.md — dev setup, project map, conventions.
- SECURITY.md — how to report vulnerabilities, and what Penlight does (and deliberately doesn't do) with your data.
- CHANGELOG.md — what's new in each release.
- MIT © 2026 Penlight contributors.





