Skip to content

Repository files navigation

Penlight

Penlight

Draw over anything — live.
Presentify-style screen annotation for Windows 10/11.

Free & open source · local-only, no telemetry · ~1 MB installer

Get Penlight from the Microsoft Store License Latest release CI

Penlight demo: annotate, spotlight, and zoom over a live presentation

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.

Features

  • 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.

Annotating a slide: underline, ellipse, arrow, and text over live content

Whiteboard Spotlight
Persistent whiteboard with board library Spotlight dims everything but the cursor
Zoom lens Cursor halo
Live magnifier lens Cursor halo

Download

Download Penlight from the Microsoft Store

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 .exe isn'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's SHA256SUMS.txt, or install from the Store, where Microsoft signs the package for you.

Default shortcuts

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.

Recording with OBS

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.

Known limitations

  • 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.

Building from source

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.

Architecture (short version)

  • 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_NOREDIRECTIONBITMAP composition window spanning the virtual screen; visuals move via Visual.Offset at vsync. Input via WH_MOUSE_LL with a constant-time callback and a GetCursorPos watchdog.
  • Zoom: a WC_MAGNIFIER lens window on a 20 ms tick (the fullscreen Magnification API is deliberately avoided — it's invisible to screen capture).

Contributing, security, license

  • 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.

About

Presentify-style live screen annotation for Windows - annotate, whiteboard, cursor halo, spotlight, zoom. Tauri v2.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages