GitHub - escapecloud/cloudexit: Run a cloud exit assessment on your infrastructure to understand the challenges and constraints of a potential exit, and take a concrete step toward digital sovereignty. (DORA Article 28) · GitHub
/" data-turbo-transient="true" />
Skip to content
Type / to search
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading. Please reload this page.
escapecloud
cloudexit
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star<br>153
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>132 Commits<br>132 Commits
.github/workflows
.github/workflows
assets
assets
config
config
core
core
docs/images
docs/images
tests
tests
utils
utils
.gitignore
.gitignore
LICENSE
LICENSE
README.md
README.md
config.py
config.py
main.py
main.py
publiccode.yml
publiccode.yml
pyproject.toml
pyproject.toml
requirements-dev.txt
requirements-dev.txt
requirements.txt
requirements.txt
View all files
Repository files navigation
Know your exit before you're locked in.
Open-source cloud exit assessment CLI. Runs locally, no account required.
Quick Start ·<br>What you get ·<br>Providers ·<br>Configuration ·<br>CI/CD ·<br>Ecosystem ·<br>Docs
What is cloudexit?
cloudexit is a free, open-source CLI that assesses your cloud exit readiness . It connects to your AWS or Azure account with read-only credentials, builds a full resource and cost inventory, scores your vendor lock-in risk across service categories, and produces an HTML, PDF, and JSON report — all locally, with no account required.
It is the open-source foundation of the EscapeCloud ecosystem.
Quick Start
Prerequisites: Python 3.12+, and either an AWS CLI profile or an Azure CLI session.
git clone git@github.com:escapecloud/cloudexit.git<br>cd cloudexit<br>python -m venv .venv && source .venv/bin/activate<br>pip install -r requirements.txt
Run your first assessment:
# AWS — using your existing CLI profile<br>python main.py aws --profile default
# Azure — using your Azure CLI session<br>az login<br>python main.py azure --cli
Reports are written locally as HTML, PDF, and JSON. Full credential and permissions setup is covered in the documentation.
What you get
cloudexit produces a structured exit readiness report covering:
Resource Inventory — every service in use within the defined scope
Cost Inventory — monthly cost breakdown within the defined scope
Risk Assessment — rule-based evaluation of exit feasibility across each identified service
Alternative Technologies — open-source and portable replacements for each identified cloud service, with additional details such as company ownership and location
Cloud Providers
Provider<br>Required permissions
Amazon Web Services<br>AWS permissions →
Microsoft Azure<br>Azure permissions →
See the permission reference for details.
Google Cloud Platform & Oracle Cloud Infrastructure is on the roadmap.
Configuration
The CLI supports multiple input modes for both AWS and Azure.
AWS
Mode<br>Command
Interactive (manual credentials)<br>python main.py aws
AWS CLI profile<br>python main.py aws --profile PROFILE
JSON config file<br>python main.py aws --config config.json
Terraform/OpenTofu state file<br>python main.py aws --tfstate infra.tfstate
Non-interactive (env vars, CI)<br>python main.py aws --non-interactive
Azure
Mode<br>Command
Interactive (service principal)<br>python main.py azure
Azure CLI session<br>python main.py azure --cli
JSON config file<br>python main.py azure --config config.json
Terraform/OpenTofu state file<br>python main.py azure --tfstate infra.tfstate
Non-interactive (env vars, CI)<br>python main.py azure --non-interactive
See the configuration reference for required permissions and config file format.
Want to see how a regulatory-aligned report looks (DORA / FINMA / UK PRA)? Run with --dry-run and send the output payload.json to request_report@escapecloud.io — we'll generate a sample you can share with your risk or compliance team.
Data Landscape & Egress Estimation (alpha)
Add --egress to any assessment to measure how much data lives in the assessed scope and estimate the one-time internet egress fee for moving it out — based on the provider's tiered list prices, with no additional permissions required.
python main.py azure --cli --egress<br>python main.py aws --profile PROFILE --egress
See the egress reference for details.
Infrastructure-as-Code State Scan (alpha)
Instead of connecting to a cloud account, cloudexit can build the assessment from a local Terraform / OpenTofu state file — no credentials, no API calls, nothing leaves your machine.
python main.py aws --tfstate infra.tfstate<br>python main.py...