Skip to main content

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

  1. Account & token
    Create an account at pypi.org and create an API token (scope: entire account or project-specific).

  2. Install build tools (one-time):

    pip install build twine
    
  3. Bump version (optional)
    Edit version in pyproject.toml (e.g. 0.1.1) before each release.

  4. Build (from project root):

    rm -rf dist build *.egg-info
    python -m build
    
  5. 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/*
    
  6. 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)

Source distribution for python-cap 0.1.1
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)

Table of built distributions (wheels) for python-cap 0.1.1
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

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