"I hate checking the bill manager on console, so I built this."
A premium, always-on-top desktop widget that displays your AWS spending in real-time. No more logging into the AWS Console just to check your costs!
- 🟣 Premium Purple Theme - AWS Cloud Clubs inspired design
- 💰 Real-time Cost Tracking - Month-to-date AWS spending at a glance
- 📊 Visual Budget Progress - Color-coded progress bar (green/yellow/red)
- 🔥 Top Services Breakdown - See which services cost the most
- 🖱️ Draggable Widget - Position anywhere on your screen
- 🔄 Auto-refresh - Configurable update interval (10-300 seconds)
- 🌐 Cross-platform - Works on Windows, macOS, and Linux
- 🎨 Glassmorphism Design - Modern, elegant UI that stands out
- Python 3.8 or higher
- AWS credentials configured
# Clone the repository
git clone https://github.com/yourusername/aws-cost-widget.git
cd aws-cost-widget
# Install dependencies
pip install -r requirements.txt
# Run the widget
python src/main.pyThe widget reads AWS credentials from standard locations:
Option 1: AWS CLI (Recommended)
aws configureOption 2: Environment Variables
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-east-1Option 3: Credentials File
Create ~/.aws/credentials:
[default]
aws_access_key_id = your_access_key
aws_secret_access_key = your_secret_key
⚠️ Your IAM user needsce:GetCostAndUsagepermission.
Edit config.json to customize the widget:
{
"budget": 100.0,
"refresh_interval": 30,
"use_simulated_data": false
}| Option | Description | Default |
|---|---|---|
budget |
Monthly budget in USD | 100.0 |
refresh_interval |
Seconds between updates (10-300) | 30 |
use_simulated_data |
Use mock data for testing | false |
The widget features an AWS Cloud Clubs inspired purple theme with:
- Glassmorphism effects
- Gradient borders
- Color-coded budget status
- Ranked service breakdown
aws-cost-widget/
├── src/
│ ├── main.py # Application entry point
│ ├── widget.py # UI components (tkinter)
│ ├── cost_fetcher.py # AWS Cost Explorer integration
│ ├── config.py # Configuration management
│ └── scheduler.py # Auto-refresh scheduler
├── tests/ # Property-based & unit tests
├── config.json # User configuration
└── requirements.txt # Python dependencies
The project uses property-based testing with Hypothesis:
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=srcContributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Kiro - AI-powered IDE
- Inspired by AWS Cloud Clubs community
- Purple theme represents the AWS Cloud Clubs brand
Made with 💜 by developers who hate checking the AWS Console
