A pure-Python library (built on ctypes) that lets you inspect, modify and search the memory of any running process in a few lines of Python — Cheat Engine workflows on Windows, Linux and macOS.
📖 Full guide at Read the Docs.
Read, write and scan the memory of any process — straight from Python.
One unified API. Three operating systems. No C compiler. No native build step.
Tweak a value in a running game · inspect a live program's state · harvest data straight from RAM.
Runs on 🪟 Windows · 🐧 Linux · 🍎 macOS — 32-bit and 64-bit, with the same code on all three.
pip install PyMemoryEditorTo also install the bundled GUI app (a Cheat Engine-style scanner), use the app extra:
pip install "PyMemoryEditor[app]"
pymemoryeditorfrom PyMemoryEditor import OpenProcess
with OpenProcess(process_name="game.exe") as process:
# Scan the whole process for every address holding the value 100.
for address in process.search_by_value(int, 4, 100):
print(f"Found at 0x{address:X}")
# Write a new value at a known address.
process.write_process_memory(0x006A9EC0, int, 4, 9999)That's it — read, write or scan another process in three lines, the same way on every platform.
|
🐍 The Python library
|
🖥️ The bundled GUI app
|
Full documentation lives at pymemoryeditor.readthedocs.io — installation, the Cheat Engine workflow, every method and parameter, the GUI app guide, platform notes and troubleshooting.
A quick map of where to go:
| Quick Start | Open a process, read, write and run your first scan. |
| Searching memory | Value scans, ranges, refining results, the Cheat Engine loop. |
| Pattern scan | Find code/data with byte signatures (AOB) and regex. |
| Pointers | Multi-level pointer chains and the live RemotePointer. |
| Pointer scan | Find static pointers that survive ASLR. |
| The GUI app | The bundled Cheat Engine-style scanner. |
| API reference | Every public class, method and parameter. |
| Platform notes | Permissions and quirks on Windows, Linux and macOS. |
| Troubleshooting | Common errors and how to fix them. |
- 🎮 Game modding & speedrunning tools — the classic Cheat Engine use case.
- 🔬 Debugging & introspection — inspect live state without attaching a debugger.
- 📊 Observability tooling — sample variables in a running process for telemetry.
- 🔐 Security & reverse-engineering research — on systems you own or are authorized to test.
- 🎓 Learning — the bundled app is a great teaching tool for how memory scanning works.
Note
Responsible use. PyMemoryEditor talks to other processes through OS-level APIs. Only point it at processes you own or have explicit permission to inspect.
Pull requests, bug reports and feature ideas are very welcome. Read
CONTRIBUTING.md for the development setup, test layout and
the small set of platform-specific quirks to be aware of.
If PyMemoryEditor helped your project, please ⭐ the repo — it's the easiest way to support the work and to help others discover the library.
Released under the MIT License — free for personal and commercial use.
