enola
Architectural regression testing for AI-assisted development.
Catch structural regressions that builds and tests cannot see: new dependency cycles, violated layer boundaries, undeclared service dependencies, and changes that spread beyond their intended scope.
Enola maps your codebase before a change and compares it with the structure afterward. The result is about this change, not every problem already in the repository, and only the rules you choose can fail the build.
- Exact, local measurement. Parsed source and graph algorithms. No model, no embeddings, no upload, no account, no license check.
- One graph across the repository. 23 languages and formats, detected automatically and combined into one baseline and verdict.
- One loop everywhere. Your coding agent reads the graph before it edits and receives the verdict afterward. The same check runs from the CLI or in CI.
Install
pip install enola-cli
The command is enola. This package ships a prebuilt binary, so there is no
Python dependency at run time and nothing is importable from Python.
Try it read-only
enola --explain /path/to/your/repo
No baseline, config file or MCP client, and nothing is written to disk. Enola prints the architecture it measured (patterns, cycles, layer violations, hotspots, blast radius and structural outliers) and exits.
Documentation
Full documentation, including the CLI reference and architecture internals, lives at https://github.com/enola-labs/enola.
Release files for enola-cli 0.4.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| enola_cli-0.4.20-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| enola_cli-0.4.20-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| enola_cli-0.4.20-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| enola_cli-0.4.20-py3-none-macosx_12_0_x86_64.whl | Python 3 | none | macOS 12.0+ x86-64 | Details |
| enola_cli-0.4.20-py3-none-macosx_12_0_arm64.whl | Python 3 | none | macOS 12.0+ ARM64 | Details |
Total release size: 54.7 MB
Release files / enola_cli-0.4.20-py3-none-win_amd64.whl
| Download URL | enola_cli-0.4.20-py3-none-win_amd64.whl |
|---|---|
| Size | 11.4 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
0ad18647534840bb45e69a79b12fc9afbe0ffb3272360fb02bda12c3e8324c5f
|
|
BLAKE2b-256 checksum How to use checksums |
446b0c89a6fedf3b3d35c2efcd7edb7de4db1c2274b1bfc8b55635873a0b7b48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / enola_cli-0.4.20-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | enola_cli-0.4.20-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 11.2 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
4014e9cc3efaf0199b6d614ab8c61f05044f4e6775d351820780741b0fb97726
|
|
BLAKE2b-256 checksum How to use checksums |
4760b8c9558d3162dafa5f8a6fe1e143da2a5af757391fcf782109bd1ca75a5a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / enola_cli-0.4.20-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | enola_cli-0.4.20-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
b1376b1a22af07ee8c2422daf8dc4077f824ab6f4c519c6ce0d8aa1215074116
|
|
BLAKE2b-256 checksum How to use checksums |
017e15f490b4f8b245cb4db65b5944c6e28cd6dc588300a45f441e9d536c3086
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / enola_cli-0.4.20-py3-none-macosx_12_0_x86_64.whl
| Download URL | enola_cli-0.4.20-py3-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 11.2 MB |
| Tags | Python 3 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
cfa7d0ffbd7f01ef5bff950efbe131aa44772c750ffdcf585b6c64207bc259f9
|
|
BLAKE2b-256 checksum How to use checksums |
729744f97c1c4b5f12cf650806bf0b8e6f452625425daaaa48086f207d45615f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency logRelease files / enola_cli-0.4.20-py3-none-macosx_12_0_arm64.whl
| Download URL | enola_cli-0.4.20-py3-none-macosx_12_0_arm64.whl |
|---|---|
| Size | 10.7 MB |
| Tags | Python 3 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
fb3ac6c4935fdb53fd2aacd59385f81c1e828176c097e61d9edd89df17c6c334
|
|
BLAKE2b-256 checksum How to use checksums |
c07976e05f59dddc2883e5cec1eb2eccc6ebe9254fb8ac3760fcdeb4cdb0fd87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.
Transparency log