#developer-tools #git #process-management


Angreal is a tool for templating projects and associated processes to provide a consistent developer experience across multiple projects

15 stable releases

2.1.2 Nov 22, 2023
2.1.1 Nov 17, 2023
2.1.0 Sep 22, 2023
2.0.10 Jul 29, 2023
2.0.0 Jan 26, 2023

#105 in Template engine

Download history 22/week @ 2023-08-07 12/week @ 2023-08-14 24/week @ 2023-08-28 13/week @ 2023-09-04 33/week @ 2023-09-11 25/week @ 2023-09-18 5/week @ 2023-09-25 3/week @ 2023-10-02 2/week @ 2023-10-16 11/week @ 2023-10-23 15/week @ 2023-10-30 26/week @ 2023-11-13 74/week @ 2023-11-20

115 downloads per month



Rust 1.5K SLoC // 0.0% comments Python 597 SLoC // 0.3% comments


image PyPI - Downloads image Angreal Tests Angreal Docs Deploy Angreal Release

Docs are available here.

Angreal is meant to:

  • allow the consistent creation of projects
  • provide consistent methods for interacting with projects

Quick Start

  1. Install via pip
  2. Initialize a project from a template
  3. Use the template
$: pip install 'angreal>=2' #pip install angreal will also work
$: angreal init https://github.com/angreal/python

What is it?

Angreal is an attempt to solve two problems that I was running into in both my personal and professional life as a data scientist and software developer. I do things often enough that they needed automation, I don't do things so often that I remember all of the steps/commands I might need to get them done. Angreal solves this problem by allowing me to remember by forgetting : I only have to remember the command to do something not the actual steps to complete the task.

How does it solve these challenges ?

Angreal provides a way to template the structure of projects and a way of executing methods for interacting with that project in a consistent manner. These methods (called tasks) travel with the project so while templated initially, they're customizable to the project - allowing some level of flexibility in how a task functions between projects.

Why 2.0 ?

The original angreal was built on top of a number of python modules that were under active development and used by a number of other projects. The nature of the application itself meant that core application found itself in dependency hell regularly - and became rather annoying to use. The 2.0.0 release is a complete rewrite that uses Rust to provide a compiled binary with the goal that it will require no external python dependencies.


~886K SLoC