Prerequisites
angr Management requires:- Python: 3.10 or higher
- Platform: Windows, macOS, or Linux
- Qt: PySide6 (installed automatically)
Installation Methods
- Development Install (Recommended)
- From Source (Latest)
Dependency Groups
angr Management defines several dependency groups inpyproject.toml:
Core Dependencies
Automatically installed with the base package:- PySide6-Essentials (>=6.4.2, !=6.7.0) - Qt bindings
- PySide6-QtAds (>=4.2.1) - Advanced docking system
- QtAwesome (1.4.0) - Icon fonts
- angr (with angrDB) - Binary analysis framework
- cle - Binary loader
- pyqodeng (>=0.0.10) - Code editor
- binsync (5.7.11) - Collaboration framework
- ipython - Interactive console
Development Group
- docs - Documentation tools (Sphinx, furo, myst-parser)
- pyinstaller - Bundling tools
- testing - Test framework and coverage tools
Testing Group
- pytest - Testing framework
- pytest-cov - Coverage plugin
- pytest-xdist - Parallel testing
- pytest-timeout - Test timeouts
- coverage - Code coverage
pyproject.toml:63-72 for the complete list.
Documentation Group
- sphinx - Documentation generator
- furo - Sphinx theme
- myst-parser - Markdown support
- sphinx-autodoc-typehints - Type hint documentation
PyInstaller Group
- pyinstaller (6.16.0)
- pillow (macOS only)
- keystone-engine (non-Linux ARM)
- angr[unicorn]
Platform-Specific Setup
- Ubuntu/Debian
- macOS
- Windows
Required System Packages
.github/workflows/ci.yml:36-48.Running angr Management
After installation, you can run angr Management in several ways:Development Tools
Code Quality
angr Management uses Ruff for linting and formatting:pyproject.toml:106-138:
- Line length: 120
- Target version: Python 3.10
- Required imports:
from __future__ import annotations
Type Checking
Type checking with mypy:pyproject.toml:140-147.
Testing
See the Contributing Guide for testing instructions.Environment Variables
Project Structure
Optional Features
Bintrace Support
For trace analysis capabilities:Troubleshooting
Qt platform plugin could not be initialized
Qt platform plugin could not be initialized
This usually means Qt dependencies are missing.Ubuntu/Linux:For headless environments:
PySide6 6.7.0 conflicts
PySide6 6.7.0 conflicts
PySide6 6.7.0 is explicitly excluded due to incompatibilities. The constraint is defined in If you encounter this version, downgrade or upgrade:
pyproject.toml:14:Import errors with angr
Import errors with angr
Make sure angr and angr-management versions match:Both should be
9.2.205.dev0 for the development version.Next Steps
Architecture Overview
Understand the core components
Contributing
Start contributing to the project