Skip to main content

VerdiClip

CI PyPI Python License: MIT

Fast, faithful screenshots for Windows: grab a precise piece of the screen, mark it up, and put it where it needs to go — in seconds.

VerdiClip editor in the light theme, showing numbered steps, a labeled callout, an arrow, a highlight, and an obfuscated password

VerdiClip is an independent, clean-room project. See ATTRIBUTION.md for credits.

Install

Requires Windows 10 or later and Python 3.13+.

uv tool install verdiclip

Or with pip: pip install verdiclip. Then run verdiclip (or verdiclip-gui for no console window) and VerdiClip sits in the system tray.

Capture

Do this Press
Drag a region, or click a window PrtSc (or left-click the tray icon)
Capture the active window Alt+PrtSc
Capture every monitor Ctrl+PrtSc
Repeat the last capture Shift+PrtSc

The capture overlay: the frozen screen is dimmed, the window under the cursor is outlined with its title, and a magnifier shows the exact pixels

While selecting, the screen is frozen so you get exactly what you saw. A magnifier follows the cursor, arrow keys nudge it by a pixel (Ctrl for 10), clicking without dragging captures the window under the cursor, and Esc cancels.

If Windows or another screenshot tool already owns PrtSc, VerdiClip tells you which hotkeys are taken; everything is still available from the tray menu, and you can choose other keys in Settings.

Annotate

Tools Actions
V Select T Text Ctrl+Shift+C Copy image Ctrl+Z / Ctrl+Y Undo / redo
C Crop N Counter Ctrl+S Save (auto-named) Ctrl+C / Ctrl+V Copy / paste marks
R Rectangle H Highlight Ctrl+Shift+S Save as Delete Remove selection
E Ellipse O Obfuscate Ctrl+P Print Arrows Nudge (Ctrl = 10 px)
L Line F Freehand Ctrl+wheel Zoom Space+drag Pan
A Arrow Ctrl+0 / Ctrl+Shift+F 100% / fit Esc Back out one step
  • Labels in boxes. After drawing a rectangle or ellipse, just type — the text is centered and wraps inside it. Double-click (or Enter/F2) to edit later; Esc skips.
  • Shift draws squares, circles, and 45° lines.
  • Your styles stick. Colors, fills, widths, and fonts you pick are remembered per tool for the next screenshot.
  • Everything is undoable, including crop, which never throws pixels away.
  • The quickest path: draw, Esc until nothing is selected, Enter — the image is on the clipboard and the editor closes. Nothing you haven't copied, saved, or printed is ever discarded without asking.

The editor in the dark theme

Settings

Open from the tray menu or with Ctrl+, in any editor.

The Settings dialog: after-capture actions can be combined

  • After capturing — any combination of: open in the editor, copy to the clipboard, save to the output folder.
  • Hotkeys — validated as you type; conflicts are reported.
  • Output — folder, file-name pattern ({date}, {time}, {title}, {counter}) with a live preview, format, JPEG quality.
  • Editor — default color, width, and font.
  • General — light, dark, or match-Windows theme; start at sign-in.

Command line

verdiclip capture screen -o shot.png
verdiclip capture region --region 0,0,1280,720 --clipboard
verdiclip capture window --delay 3
verdiclip open picture.png          # Opens in the running instance if there is one

How it is built

Start with docs/design/philosophy.md: the core purpose, the principles, and the architecture. docs/design/ux-contract.md specifies every interaction; each item has an automated journey test.

In short: an edit session is an immutable base image, a non-destructive crop, and a list of immutable annotation values. The only way to change it is a command through the undo history, and one renderer draws both the canvas and the exported image.

Development

Requires Windows 10+ and uv.

uv sync                  # Create .venv and install dependencies
uv run verdiclip         # Run the tray app
uv run poe               # List tasks
uv run poe fix           # Format and auto-fix lint
uv run poe check         # Format check, lint, strict type check, tests with coverage
uv run poe ux            # UX journey tests only
uv run poe ux-snapshots  # Journeys plus a PNG per step in docs/ux/snapshots
uv run poe ux-gallery    # Key screens in light and dark themes (docs/ux/gallery)

uv run poe check is the quality gate: ruff (broad rule set), ty with every rule at error, and pytest with ≥ 90% branch coverage. Regenerate the README screenshots with uv run python scripts/ux_gallery.py --readme-dir docs/images. Before a release, also run the manual checklist at the end of the UX contract. See CONTRIBUTING.md for commit conventions and releases.

License

MIT

Metadata

Release files for verdiclip 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for verdiclip 0.2.0
File Size Uploaded
verdiclip-0.2.0.tar.gz 79.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for verdiclip 0.2.0
File Interpreter ABI Platform
verdiclip-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 178.3 kB

Release files / verdiclip-0.2.0.tar.gz

Download URL verdiclip-0.2.0.tar.gz
Size 79.5 kB
Tags Source
SHA-256 checksum
How to use checksums
28982675acedee2177a742467a13134878ce0fae63e6df7902149b48d77ccda3
BLAKE2b-256 checksum
How to use checksums
2c60969409e55027dbbc645859929fd29ff5d8defe47b195be245037e3835d97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / verdiclip-0.2.0-py3-none-any.whl

Download URL verdiclip-0.2.0-py3-none-any.whl
Size 98.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f7f51d621731630f83bad76712aff5290fe5d645594f730bb0217649ce456c68
BLAKE2b-256 checksum
How to use checksums
7bbf114aa2bd25e846afca020e2a4f7b67dc931bc48938c4d27256d25cad9f73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page