Skip to main content

NormCap

OCR powered screen-capture tool to capture information instead of images. For Linux, macOS and Windows.

Test Coverage Status CodeQL

GitHub PyPi Flathub AUR

Links: Source Code | Documentation | FAQs | Releases | Changelog

Screencast

Installation

Choose one of the options for a prebuilt release. If you encounter an issue please take a look at the FAQs or report it.

Windows

Linux

It's recommended to install NormCap from Flathub:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.github.dynobo.normcap

Alternative options:

macOS

Note: You must allow the unsigned application on first start: "System Preferences" → "Security & Privacy" → "General" → "Open anyway". You also need to allow NormCap to take screenshots. (#135)

Use Python package

As an alternative to the prebuilt packages above, you can install the NormCap Python package for Python >=3.9, but it requires more setup:

On Linux

# Install dependencies (Ubuntu/Debian)
sudo apt install build-essential tesseract-ocr tesseract-ocr-eng libtesseract-dev libleptonica-dev wl-clipboard

## Install dependencies (Arch)
sudo pacman -S tesseract tesseract-data-eng wl-clipboard

## Install dependencies (Fedora)
sudo dnf install tesseract wl-clipboard

## Install dependencies (openSUSE)
sudo zypper install python3-devel tesseract-ocr tesseract-ocr-devel wl-clipboard

# Install normcap
pip install normcap

# Run
./normcap

On macOS

# Install dependencies
brew install tesseract tesseract-lang

# Install normcap
pip install normcap

# Run
./normcap

On Windows

1. Install Tesseract 5 by using the installer provided by UB Mannheim.

2. Identify the path to the Tesseract base folder. It should contain a /tessdata subfolder and the tesseract.exe binary. Depending on whether you installed Tesseract system-wide or in userspace, the base folder should be:

C:\Program Files\Tesseract-OCR

or

C:\Users\<USERNAME>\AppData\Local\Programs\Tesseract-OCR

3. Adjust environment variables:

  • Create an environment variable TESSDATA_PREFIX and set it to your Tesseract base folder, e.g.: "System Properties" → Tab "Advanced" → "Environment Variables …" → "New …" → Variable: TESSDATA_PREFIX, Value: "C:\Program Files\Tesseract-OCR"

  • Append Tesseract's base folder to the environment variable PATH, e.g.: "System Properties" → Tab "Advanced" → "Environment Variables …" → Section "User variables" → Select PATH → "Edit …" → Add a new entry "C:\Program Files\Tesseract-OCR"

  • To test your setup, open a new cmd-terminal and run:

    tesseract --list-langs
    

4. Install and run NormCap:

# Install normcap
pip install normcap

# Run
normcap

Development

Prerequisites for setting up a development environment: Python >=3.9, uv, and Tesseract >=5.0 (including language data).

# Clone repository
git clone https://github.com/dynobo/normcap.git

# Change into project directory
cd normcap

# Create virtual env and install dependencies
uv sync

# Register pre-commit hook
uv run pre-commit install

# Run NormCap in virtual env
uv run python -m normcap

Contribute to UI translations

Please use Weblate to complement or correct text for existing languages as well as for adding new languages.

(If you prefer not to use Weblate, you can also do it manually, but be aware that this is more cumbersome.)

Credits

This project uses the following non-standard libraries:

  • pyside6 - bindings for Qt UI Framework

And it depends on external software:

Packaging is done with:

  • briefcase - converting Python projects into standalone apps

Thanks to the maintainers of those nice tools!

Similar open source tools

If NormCap doesn't fit your needs, try these alternatives (no particular order):

Why "NormCap"?

See XKCD:

Comic

Certification

WOMM

Contributors

Made with contrib.rocks

Release files for normcap 0.6.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 normcap 0.6.0
File Size Uploaded
normcap-0.6.0.tar.gz 5.7 MB Details

Built distribution (wheel)

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

Total release size: 9.7 MB

Release files / normcap-0.6.0.tar.gz

Download URL normcap-0.6.0.tar.gz
Size 5.7 MB
Tags Source
SHA-256 checksum
How to use checksums
851dd22f0430b06255777bbd1232861a03bd85abfae3708f92124a8a5ad2cf9f
BLAKE2b-256 checksum
How to use checksums
ce74eee5d3ec97f8d46fa7c48ac303aeca006ba2cebd95d0a01e45f62beeec41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

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 Aug 31, 2025.

Transparency log

Release files / normcap-0.6.0-py3-none-any.whl

Download URL normcap-0.6.0-py3-none-any.whl
Size 3.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
6c3e82b538dab1554bb4c8a92d92177b90b828e303eb94dab5f0ff6bd47160b3
BLAKE2b-256 checksum
How to use checksums
858ec14eac02ed01a07100d29997e4187024bbb6b95d3c2201d15839881b798d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

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 Aug 31, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.9

2 release files

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.15

2 release files

0.3.14

2 release files

0.3.13

2 release files

0.3.12

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.10

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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