Cross-platform screenshot tool with region select and annotation (arrows, shapes, brush).
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_cap-0.1.1.tar.gz.
File metadata
- Download URL: python_cap-0.1.1.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fe86994f1c68b267f4b87fe8a4135f69422d49ad1011a5b9c7c376ed4441785
|
|
| MD5 |
03ddb989c94a02e74b0d4b06ac322a2f
|
|
| BLAKE2b-256 |
2641336eb3b8b6e378cf5b982aa88ba13a65affd773ccfff3bed4eed930fec15
|
File details
Details for the file python_cap-0.1.1-py3-none-any.whl.
File metadata
- Download URL: python_cap-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7eed98888192a3bcca42655a41ef67b4b6a3c1302d2aa2f1728f14b55f11714
|
|
| MD5 |
5256448cefd17eab9ee8ad6a81f2b12b
|
|
| BLAKE2b-256 |
db4b7862757b3bd21efca31fc0a20111ec871787b42fdaba548c92649e2ccfe7
|