Know your exit before you're locked in.
Open-source cloud exit assessment CLI. Runs locally, no account required.
Quick Start · What you get · Providers · Configuration · CI/CD · Ecosystem · Docs
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.
Prerequisites: Python 3.12+, and either an AWS CLI profile or an Azure CLI session.
git clone git@github.com:escapecloud/cloudexit.git
cd cloudexit
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txtRun your first assessment:
# AWS — using your existing CLI profile
python main.py aws --profile default
# Azure — using your Azure CLI session
az login
python main.py azure --cliReports are written locally as HTML, PDF, and JSON. Full credential and permissions setup is covered in the documentation.
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
| Provider | Required permissions |
|---|---|
| Amazon Web Services | AWS permissions → |
| Microsoft Azure | Azure permissions → |
See the permission reference for details.
Google Cloud Platform & Oracle Cloud Infrastructure is on the roadmap.
The CLI supports multiple input modes for both AWS and Azure.
AWS
| Mode | Command |
|---|---|
| Interactive (manual credentials) | python main.py aws |
| AWS CLI profile | python main.py aws --profile PROFILE |
| JSON config file | python main.py aws --config config.json |
| Non-interactive (env vars, CI) | python main.py aws --non-interactive |
Azure
| Mode | Command |
|---|---|
| Interactive (service principal) | python main.py azure |
| Azure CLI session | python main.py azure --cli |
| JSON config file | python main.py azure --config config.json |
| Non-interactive (env vars, CI) | 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.
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
python main.py aws --profile PROFILE --egressSee the egress reference for details.
cloudexit runs headlessly in CI pipelines via --non-interactive and environment variables. A ready-made GitHub Action is available:
- uses: escapecloud/cloudexit-action@v1
with:
provider: aws
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: us-east-1
ESC_EXIT_STRATEGY: 1
ESC_ASSESSMENT_TYPE: 1cloudexit is the open-source, offline-first tier of a broader platform.
| Tier | Description |
|---|---|
| cloudexit (this repo) | CLI, offline Basic assessment, local reports |
| exitcloud.io | Lightweight platform for individuals, SMEs, and MSPs — adds scoring, history, and richer reports |
| escapecloud.io | Enterprise platform with advanced reporting, governance, and regulatory evidence (DORA, FINMA, UK PRA) |
Running cloudexit offline always produces a Basic assessment. Connect it to exitcloud.io or escapecloud.io for full scoring and report features.
Contributions are welcome — bug reports, documentation improvements, new service mappings, and pull requests.
See the contribution guidelines for details.
cloudexit is licensed under the GNU Affero General Public License v3 (AGPL-3.0).
See LICENSE for details.

