VerdiClip
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 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 |
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;Escskips. - 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,
Escuntil 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.
Settings
Open from the tray menu or with Ctrl+, in any editor.
- 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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| verdiclip-0.2.0.tar.gz | 79.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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