Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

PyScreenReader

PyScreenReader

PyScreenReader is a library for developers to parse on-screen information using the simplicity of Python.

It's a cross-platform abstraction of native accessibility APIs for Windows, macOS, and Linux, based around representing UI elements in a common tree-like interface in Python.

Key features:

  • Parse UI properties: Such as location, size, text content, focus state, and more...
  • Cross-platform support: Write once, works (mostly) everywhere! Compatible with Windows, macOS, and Linux.
  • Unified UI model: Abstracts diverse native UI controls into a single consistent tree-like data structure.
  • Abstracted System APIs: Avoid delving in to the complexity of native per-platform system APIs to interact with the screen.
  • Lightweight and Pythonic: No need for compilers or special toolchain setup, just use Python.

Full documentation of PyScreenReader can be found HERE.

[!WARNING] PyScreenReader is not yet released and is still in testing. Stay tuned for its public release on PyPi in the near future.

Table of Content

Quick Start

Install PyScreenReader latest release from pip registries.

pip install PyScreenReader

In your Python script, import PyScreenReader -

# Import the reader itself
from PyScreenReader.screen_reader import ScreenReader
# Import the widgets the reader will return
from PyScreenReader.virtual_widgets import VirtualWidget

# Create a screen reader instance
screen_reader = ScreenReader()
# Read the virtual widget tree by your program's PID
root = screen_reader.from_pid(20880)
# Print the location of the root widget extracted
print(f"Position of Root Widget (X: {root.get_x()}, Y: {root.get_y()})")

# Optional: Get all children of the root as a list of VirtualWidgets to traverse the tree!
children = root.get_children()

This is just a quick start. For more information, please refer to our full documentation.

Contributing

We are glad to hear that you are interested in contributing to PyScreenReader! Please see the contribution guideline for more information.
The guideline includes how to file a GitHub issue, open a GitHub Pull Request, set up local dev environment, etc.

Feedback & Support

Feedback is a gift! We appreciate any kind of feedback/questions/concerns in the following forms:

  • File an issue ticket. Issue board is another place where we track technical questions. Once approved by the maintainers, new issues will be assigned and worked on, and hopefully will be released in the next version of PyScreenReader.
  • Found Security concerns and vulnerabilities? Please refer to our SECURITY page and report them through the GitHub Security Portal.

Licensing

PyScreenReader is licensed under MIT License. By using, distributing, or contributing to this project, you agree the terms and conditions of this license.

PyScreenReader greatly relies on:

Special thanks to:

  • NumPy for inspiration for our release workflow
  • Typer for inspiration for our README file

Metadata

Release files for PyScreenReader 1.0.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for PyScreenReader 1.0.0a1
File
pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl CPython 3.13 abi3 Windows x86-64 Details
pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl CPython 3.13 abi3 Linux glibc 2.17+ x86-64 Details
pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl CPython 3.13 abi3 macOS 11.0+ ARM64 Details
pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl CPython 3.12 abi3 Windows x86-64 Details
pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details
pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl CPython 3.11 abi3 Linux glibc 2.17+ x86-64 Details
pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details

Total release size: 4.5 MB

Release files / pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl

Download URL pyscreenreader-1.0.0a1-cp313-abi3-win_amd64.whl
Size 344.4 kB
Tags CPython 3.13 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
767da9f6b1f13d239404b2601cf5b3c2efde7949a56014ef15d81e63ad8e295b
BLAKE2b-256 checksum
How to use checksums
6c5683acd7248fd47b5289c67e6d4a9582b7e707b153eeb052975ae63cf465ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl

Download URL pyscreenreader-1.0.0a1-cp313-abi3-manylinux2014_x86_64.whl
Size 620.7 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
356d4d92cf98fcc71aca1bf7e0b6c13394a1c0c0ebbc167b7ec9c5729707a3ee
BLAKE2b-256 checksum
How to use checksums
46cdcfa457a7d1c11e51d3fbb9ea3d03e7f63488b904d8ab6b3d49546ceb2caa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl

Download URL pyscreenreader-1.0.0a1-cp313-abi3-macosx_11_0_arm64.whl
Size 538.6 kB
Tags CPython 3.13 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cf2b7093309b3dc148db5996e080acbc073e8c8d91bc7445a8fdba3bd0a09ccf
BLAKE2b-256 checksum
How to use checksums
135379bcd4ea74e41fdabe96629670f75b59eb4dee9b347e0cf9cec79c0ddb44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl

Download URL pyscreenreader-1.0.0a1-cp312-abi3-win_amd64.whl
Size 344.3 kB
Tags CPython 3.12 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
bf15be9b144789687ebde4de677b1787a7258110326d132a4e45710fe0f83d63
BLAKE2b-256 checksum
How to use checksums
11d7bc755343fe0504b1833eb96adb6a41fe082dfa1835cc8f397f38c8552b4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl

Download URL pyscreenreader-1.0.0a1-cp312-abi3-manylinux2014_x86_64.whl
Size 620.5 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
827fe296fa697add773d95b6c6a6a8e7a66cbf1c75cbc25a4fcdb43de0e0acd4
BLAKE2b-256 checksum
How to use checksums
cc1e07eb1575656e14030d34e5fea295f0fe70bdadb623932829288a6df1030a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl

Download URL pyscreenreader-1.0.0a1-cp312-abi3-macosx_11_0_arm64.whl
Size 538.4 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d69f0afa070131f6ff63170952061b93285866b9824199c8f690926097479330
BLAKE2b-256 checksum
How to use checksums
f30601d69338ebbd1b77d1a97c3da672b71ddc6afc25ff90747f1df8d3ea8444
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl

Download URL pyscreenreader-1.0.0a1-cp311-abi3-win_amd64.whl
Size 343.4 kB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
300603edd053db582b4e00e2a6e69ba978a28714b1ec711261f4ce653a65d3bf
BLAKE2b-256 checksum
How to use checksums
00b866d8f7ba6f1a6003ce612f1c1b4849bc48768ff28ebb0ab674c976b64b4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl

Download URL pyscreenreader-1.0.0a1-cp311-abi3-manylinux2014_x86_64.whl
Size 618.9 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
9a013915c992979d6de5f098c36d07ee291f9f154d878e3b520e45b53f7d1347
BLAKE2b-256 checksum
How to use checksums
ae3c9175e566c7f2c0f72c2b7c64731417d3612382b1b3e84239714212f641d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl

Download URL pyscreenreader-1.0.0a1-cp311-abi3-macosx_11_0_arm64.whl
Size 536.1 kB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f753a498f2880c55193d4ee70693675ad5fb43037791be62b13eec5acf4b82ee
BLAKE2b-256 checksum
How to use checksums
f9134d372037b63dd4836723426520dc3a3008e656b28c29adbf99eb1713a02c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.0.0a1 This release

9 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