Explanation
Conceptual guides that explain the “why” behind Angreal’s design and implementation.
Angreal uses a unique architecture:
- Rust Core: Provides the CLI, performance-critical operations, and Python runtime management
- Python Tasks: Offers flexibility and ease of use for task definitions
- Best of Both Worlds: Performance where it matters, flexibility where you need it
Angreal integrates with high-performance tools for speed-critical operations:
- UV Integration: 10-50x faster virtual environment and package management
- Binary-First Approach: Leverages fast external tools rather than pure Python implementations
- Subprocess Safety: Secure, reliable integration with external binaries
Angreal’s templating system is designed around:
- Portability: Templates can be shared via Git repositories
- Flexibility: Jinja2 templating for dynamic content
- Consistency: Standardized structure across all templates
Angreal automatically discovers tasks by:
- Looking for
.angreal/
directories - Loading Python files matching
task_*.py
- Registering decorated functions as commands
- Convention over Configuration: Sensible defaults with override options
- Progressive Disclosure: Simple tasks stay simple, complex tasks are possible
- Project-Local: Tasks and configuration travel with the project
- Cross-Platform: Core functionality works consistently across Windows, macOS, and Linux, with task authors able to handle OS-specific needs
- Contributing - How to contribute to Angreal
- API Reference - Technical details
- Tutorials - Learn by example