Cloudexit – assess your cloud exit readiness

bencehezso1 pts1 comments

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...

main python azure config cloudexit cloud

Related Articles