Screencap – Cross-platform screenshot + annotate
Capture the screen with Ctrl+Cmd+3 (Mac) or Ctrl+Alt+3 (Windows/Linux), then annotate with colors and shapes. Ctrl+S saves to Desktop; Ctrl+C exits.
Requirements
- Python 3.7+
- macOS, Ubuntu (or most Linux), or Windows
Install
From PyPI:
pip install python-cap
From source:
pip install -r requirements.txt
Run
python_cap
Or from source: python python_cap.py
Leave the terminal open. Press Ctrl+Cmd+3 (Mac) or Ctrl+Alt+3 (Windows/Linux) to take a full-screen capture. The annotation window opens with:
-
6 colors – red, blue, green, black, yellow, purple
-
Arrow – draw an arrow (drag from start to end)
-
Rect – rectangle
-
Circle – circle/oval
-
Brush – freehand drawing
-
Ctrl+S (or Cmd+S on Mac) – save the annotated image to your Desktop as PNG.
-
Click Done to close the annotation window. The app keeps running; use the hotkey again to capture another screen.
-
Ctrl+C in the terminal stops the program.
Permissions
- macOS: Allow the terminal (or Python) in System Settings → Privacy & Security → Accessibility so the global hotkey works.
- Linux: Some setups need accessibility or input-monitor permissions for global hotkeys.
- Windows: No extra steps usually needed.
Publishing to PyPI
-
Account & token
Create an account at pypi.org and create an API token (scope: entire account or project-specific). -
Install build tools (one-time):
pip install build twine
-
Bump version (optional)
Editversioninpyproject.toml(e.g.0.1.1) before each release. -
Build (from project root):
rm -rf dist build *.egg-info python -m build
-
Upload:
twine upload dist/*
When prompted:
- Username:
__token__ - Password: your PyPI API token
Or use env vars (no prompt):
export TWINE_USERNAME=__token__ export TWINE_PASSWORD=pypi-YourTokenHere twine upload dist/*
- Username:
-
Test install (optional):
pip install python-cap --force-reinstall python-cap
If the name python-cap is taken on PyPI, change name in pyproject.toml to a unique name, then rebuild and upload again.
Metadata
Release files for python-cap 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| python_cap-0.1.1.tar.gz | 11.2 kB | Without provenance | Details for python_cap-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| python_cap-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for python_cap-0.1.1-py3-none-any.whl |
Total release size: 22.9 kB
Release files / python_cap-0.1.1.tar.gz
| Download URL | python_cap-0.1.1.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3fe86994f1c68b267f4b87fe8a4135f69422d49ad1011a5b9c7c376ed4441785
|
|
BLAKE2b-256 checksum How to use checksums |
2641336eb3b8b6e378cf5b982aa88ba13a65affd773ccfff3bed4eed930fec15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / python_cap-0.1.1-py3-none-any.whl
| Download URL | python_cap-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b7eed98888192a3bcca42655a41ef67b4b6a3c1302d2aa2f1728f14b55f11714
|
|
BLAKE2b-256 checksum How to use checksums |
db4b7862757b3bd21efca31fc0a20111ec871787b42fdaba548c92649e2ccfe7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for python-cap 0.1.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.