cle
CLE Loads Everything (at least, many binary formats!) and provides a pythonic interface to analyze what they are and what they would look like in memory.
Decision gist · record as of 2026-08-14
Yes. CLE is actively maintained, has no known vulnerabilities, installs with low friction, and is essential if you're doing binary analysis or building on the angr framework. The BSD-2-Clause license is permissive. The only caveat is the Python 3.12+ requirement; if you're on an older version, you cannot use it.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.12 or later.
- Cross-architecture library loading may require system cross-compilation libraries (e.g., libc6-powerpc-cross on Debian for ARM support).
- Low friction installation with a pure-Python wheel.
License · maintenance · safety
BSD-2-Clause (permissive) — BSD-2-Clause is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you retain the license notice.
last release 2026-08-05 (9 days) · last repo commit 2026-08-13 · 483 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 901,912 downloads/mo, #4,772 on PyPI
Alternatives
Verify before relying
pip install cle
import cle
ld = cle.Loader("/bin/ls")
print(hex(ld.main_object.entry))
print(ld.shared_objects)- Whether the package supports loading binaries from non-native architectures without cross-compilation libraries installed
- Performance characteristics when loading very large binaries or many shared objects simultaneously
- Whether all 11 runtime dependencies are required for basic use or only for specific backends
What it is and what it does
CLE is a binary loader that reads executable files in formats like ELF, PE (Windows), and Mach-O, then constructs an in-memory representation of how the OS would lay them out after loading. It resolves imports between the main binary and its shared libraries, searches for those libraries across configurable paths, and exposes the resulting memory state through a Python interface. You give it a file path, and it returns an object representing the loaded process with access to entry points, imports, memory contents, and architecture information.
The package is designed for binary analysis workflows—reverse engineering, vulnerability research, and automated program understanding. It sits at the foundation of the angr framework and handles the low-level mechanics of parsing multiple binary formats and reconciling their dependencies, so higher-level tools don't have to. Its main dependencies are format-specific parsers (pyelftools, pefile, pyxbe) and architecture metadata (archinfo), plus pyvex for lifting machine code to an intermediate representation.
Use it for
- Load a binary and inspect its entry point, imports, and memory layout for reverse-engineering or static analysis
- Resolve all shared library dependencies of an executable and examine their symbols and relocations
- Extract raw machine code from a loaded binary and lift it to an intermediate representation for analysis
- Analyze Windows PE binaries or ARM Mach-O files by selecting the appropriate backend and architecture
- Build a custom binary analysis tool that needs to understand process memory layout without running the binary
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
CLE is actively maintained, has no known vulnerabilities, installs with low friction, and is essential if you're doing binary analysis or building on the angr framework. The BSD-2-Clause license is permissive. The only caveat is the Python 3.12+ requirement; if you're on an older version, you cannot use it.
Install
cle on PyPI
Before you install
Low friction installation with a pure-Python wheel. Active maintenance with a recent release (9 days old) and steady repository activity. Requires Python 3.12 or later.
Requires Python 3.12 or later. Cross-architecture library loading may require system cross-compilation libraries (e.g., libc6-powerpc-cross on Debian for ARM support).
License in practice
BSD-2-Clause is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you retain the license notice.
Quickstart
pip install cle
import cle
ld = cle.Loader("/bin/ls")
print(hex(ld.main_object.entry))
print(ld.shared_objects)
Verify before relying
- Whether the package supports loading binaries from non-native architectures without cross-compilation libraries installed
- Performance characteristics when loading very large binaries or many shared objects simultaneously
- Whether all 11 runtime dependencies are required for basic use or only for specific backends
Package facts
| License | BSD-2-Clause permissive |
| Python support | Supports the current Python release >=3.12 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 11 packagesarchinfoarpycartminidumppefilepyelftoolspyvexpyxbepyxdiasortedcontainersuefi-firmware |
| Maintenance | Actively maintained 9 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 901,912 / month, #4,772 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: cle-9.3.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “binary loader library”
- cleCLE loads binary executables and shared libraries, resolves their…
- panda3d-gltfAdds glTF 2.0 file loading to Panda3D, including support for binary…
- thriftpy2ThriftPy2 is a pure Python implementation of Apache Thrift that lets…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also pefile · lief · membrowse · bincopy · clr_loader · ailment · dllist · patchelf · archinfo · ropper