- Python 3.12+
- Node.js 20+ (for dashboard)
uvpackage manager (recommended)
CloudCull relies on standard SDK credential chains. It does not manage keys itself.
Standard Boto3 configuration:
export AWS_ACCESS_KEY_ID="testing"
export AWS_SECRET_ACCESS_KEY="testing"
export AWS_REGION="us-east-1"Or use ~/.aws/credentials
Uses DefaultAzureCredential. Set these environment variables:
export AZURE_SUBSCRIPTION_ID="your-sub-id"
export AZURE_TENANT_ID="your-tenant-id"
export AZURE_CLIENT_ID="your-client-id"
export AZURE_CLIENT_SECRET="your-client-secret"Uses Application Default Credentials (ADC):
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"
export GOOGLE_CLOUD_PROJECT="your-project-id"At least one is required for analysis:
export ANTHROPIC_API_KEY="sk-ant-..."
# OR
export GOOGLE_API_KEY="AIza..."
# OR
export OPENAI_API_KEY="sk-..."To run CloudCull without any of the above credentials:
uv run cloudcull --simulated --dry-runThis will generate a high-fidelity mock report.
The dashboard is served via a secure Python backend to protect sensitive logs.
-
Build the Frontend (once):
cd dashboard npm run build cd ..
-
Start the Secure Server:
python3 src/dashboard_server.py
Access at
http://localhost:8080.
Note: Will not be able to access secured logs.
cd dashboard
npm run dev