Skip to main content

Lightweight, high-performance FinOps toolkit for AWS

Project description

๐Ÿฆˆ Remora-Fin: High-Performance AWS FinOps CLI

Remora-Fin is a lightweight, high-performance FinOps toolkit for AWS. Built with Polars and Textual, it attaches to your AWS environment to analyze spending, detect anomalies, and export professional-grade reports.


๐Ÿš€ Key Features

  • ๐Ÿ“ˆ Vector Graphics: Native PDF visualizations (Bars & Lines) with zero external dependencies.
  • ๐Ÿ“‚ High-Speed Analysis: Powered by Polars for near-instant processing of large billing datasets.
  • ๐Ÿ” Anomaly Intelligence: Identify unexpected cost spikes using AWS Cost Explorer algorithms.
  • ๐Ÿ”ฎ Predictive Analysis: Integrated spending forecasts to avoid end-of-month surprises.
  • ๐Ÿ“‰ Efficiency & Unit Economics: Correlate cost with real-world utilization metrics (CPU, Memory, I/O) to identify waste and right-sizing opportunities.
  • ๐Ÿ–ฅ๏ธ Terminal UI: Interactive dashboard (TUI) with a high-performance UI Facade and internal caching for ultra-responsive navigation.
  • ๐Ÿ—๏ธ Registry Architecture: Dynamically managed AWS inventory via a centralized resource registry, making it easy to extend monitoring to new services.
  • ๐Ÿ”’ Privacy First: All data processing happens locally on your machine. Remora-Fin never sends your billing data to external servers.

๐Ÿ“Š Service Coverage & Checklist

Remora-Fin provides deep visibility into your AWS environment. Below is the checklist of active integrations and their supported FinOps depth.

AWS Service Status Tracking Pricing Cost Calc
Compute
EC2 Instances Active โœ… โœ… โœ…
Lambda Functions Active โœ… โœ… โœ…
ECS Clusters Active โœ… โœ… โœ…
EKS Clusters Active โœ… โœ… โœ…
App Runner Active โœ… โœ… โœ…
Storage
S3 Buckets Active โœ… โœ… โœ…
EBS Volumes Active โœ… โœ… โœ…
EFS File Systems Active โœ… โœ… โœ…
Databases
RDS Instances Active โœ… โœ… โœ…
DynamoDB Tables Active โœ… โœ… โœ…
ElastiCache Active โœ… โœ… โœ…
Redshift Active โœ… โœ… โœ…
Networking
CloudFront Active โœ… โœ… โœ…
ELB (v2) Active โœ… โœ… โœ…
NAT Gateway Active โœ… โœ… โœ…
App Integration
SNS Topics Active โœ… โœ… โœ…
SQS Queues Active โœ… โœ… โœ…
Step Functions Active โœ… โœ… โœ…
Analytics & ML
EMR Clusters Active โœ… โœ… โœ…
SageMaker Active โœ… โœ… โœ…
Glue Active โœ… โœ… โœ…
Management
KMS Keys Active โœ… โœ… โœ…
Secrets Manager Active โœ… โœ… โœ…
Transfer Family Active โœ… โœ… โœ…

๐Ÿ“ฆ Installation

Install Remora-Fin using pip or uv:

# Using uv (Recommended)
uv tool install remora-fin

# Using pip
pip install remora-fin

๐Ÿ” IAM Permissions

Remora-Fin requires read-only access to AWS Cost Explorer, Organizations, and various resource metadata for the dashboard inventory.

Option 1: Managed Policy (Recommended)

Attach the AWS managed policy ReadOnlyAccess to your IAM user or role. This is the simplest way to ensure all features work correctly.

Option 2: Granular Permissions

If you prefer a least-privilege approach, ensure your IAM identity has the following permissions:

Service Action Purpose
Cost Explorer ce:GetCostAndUsage Cost reports and trends.
ce:GetAnomalies Cost spike detection and monitor access.
ce:GetCostForecast Native spend projections.
Security Token sts:GetCallerIdentity Current account and user identification.
Organizations organizations:ListAccounts Multi-account environment support.
Tagging tag:GetResources Governance and tag compliance scoring.
Pricing pricing:GetProducts Real-time unit price lookups for right-sizing.
Metrics cloudwatch:GetMetricStatistics Resource utilization analysis.
Inventory ec2:DescribeInstances EC2 Instance tracking.
s3:ListAllMyBuckets S3 Bucket inventory.
rds:DescribeDBInstances RDS Database tracking.
lambda:ListFunctions Serverless function monitoring.
cloudfront:ListDistributions Edge delivery tracking.
dynamodb:ListTables NoSQL table inventory.
elasticache:DescribeCacheClusters In-memory cache tracking.
elasticmapreduce:ListClusters Big data cluster inventory.
redshift:DescribeClusters Data warehouse tracking.
sagemaker:ListNotebookInstances ML notebook monitoring.
ecs:ListClusters Container cluster inventory.
eks:ListClusters Kubernetes cluster inventory.
apprunner:ListServices App Runner service tracking.
states:ListStateMachines Step Functions monitoring.
glue:GetDatabases Data catalog inventory.
transfer:ListServers Transfer Family tracking.
sns:ListTopics Pub/Sub topic inventory.
sqs:ListQueues Message queue tracking.
kms:ListKeys KMS Key tracking.
secretsmanager:ListSecrets Secrets Manager tracking.
ec2:DescribeVolumes EBS Volume tracking.
efs:DescribeFileSystems EFS File System tracking.
elbv2:DescribeLoadBalancers ELB Load Balancer tracking.
ec2:DescribeNatGateways NAT Gateway tracking.

๐Ÿ› ๏ธ Commands & Usage

๐Ÿ“Š report

Generate comprehensive cost and usage reports.

Argument Shortcut Type / Choices Default Description
--type -t breakdown, trend, account, full full Report type.
--format -f pdf, excel, csv, markdown, json pdf Output format.
--days -d int 30 Lookback period in days.
--start YYYY-MM-DD Start date.
--end YYYY-MM-DD End date.
--metric UnblendedCost, BlendedCost, NetUnblendedCost, AmortizedCost, UsageQuantity UnblendedCost Cost metric.
--group-by SERVICE, LINKED_ACCOUNT, REGION, USAGE_TYPE Group results by dimension.
--service -s string Filter by one or more AWS services (e.g., ec2 s3). Supports smart aliases.
--include-charts flag True Include visual charts in the report.
--chart-labels flag True Show minimalistic X and Y axis values on charts.
--output -o path Output file path.
--profile -p string AWS profile name.
--region -r string AWS region.
# Generate a monthly breakdown in PDF for the last 30 days
remora-fin report --type breakdown --format pdf --output monthly_report.pdf

# Generate a dedicated report for EC2 and S3 with axis labels
remora-fin report --service ec2 s3 --type full --format pdf --chart-labels

# Export cost data in JSON format for external analysis
remora-fin report --type trend --format json --days 60

๐Ÿ” anomalies

Detect and display AWS cost anomalies using ML-based detection.

Argument Shortcut Type / Choices Default Description
--days -d int 30 Lookback period (max 90).
--start YYYY-MM-DD Start date.
--end YYYY-MM-DD End date.
--severity low, medium, high, critical Filter by severity.
--monitor-arn string Filter by specific monitor ARN.
--detail flag Show detailed anomaly list.
--json flag Output as JSON.
--profile -p string AWS profile name.
--region -r string AWS region.
# Detect anomalies in the last 60 days
remora-fin anomalies --days 60 --severity high

๐Ÿ”ฎ forecast

Predict future AWS costs using ML-based forecasting.

Argument Shortcut Type / Choices Default Description
--days -d int 30 Days to forecast (max 365).
--start YYYY-MM-DD Forecast start date.
--end YYYY-MM-DD End date.
--metric UnblendedCost, BlendedCost, NetUnblendedCost, AmortizedCost, UsageQuantity UnblendedCost Metric to forecast.
--granularity DAILY, MONTHLY DAILY Forecast granularity.
--group-by-type DIMENSION, TAG, COST_CATEGORY Group forecast by type.
--group-by-key SERVICE, LINKED_ACCOUNT, REGION, USAGE_TYPE, INSTANCE_TYPE, PLATFORM Group forecast by key.
--scenarios flag Show what-if scenario analysis.
--json flag Output as JSON.
--profile -p string AWS profile name.
--region -r string AWS region.
# Forecast next 30 days of spend
remora-fin forecast --days 30 --scenarios

๐Ÿ–ฅ๏ธ dashboard

Launch the interactive Terminal User Interface.

Argument Shortcut Type / Choices Default Description
--days -d int Default period in days.
--theme dark, light UI theme.
--profile -p string AWS profile name.
--region -r string AWS region.
remora-fin dashboard --days 60 --theme dark

๐Ÿ“‰ utilization

Analyze resource efficiency by correlating cost with CloudWatch metrics and Pricing API.

Argument Shortcut Type / Choices Default Description
--days -d int 7 Lookback period for metrics.
--profile -p string AWS profile name.
--region -r string AWS region.
# Analyze EC2 efficiency for the last 7 days
remora-fin utilization --days 7

๐Ÿ” login

Configure and test AWS credentials.

Argument Shortcut Type / Choices Default Description
--profile -p string default AWS profile name.
--region -r string AWS region.
--test -t flag Test existing credentials.
--configure -c flag Interactive configuration.
# Configure interactively
remora-fin login --configure

# Test existing credentials
remora-fin login --test

๐Ÿ‘ค profile

View current remora-fin configuration and AWS session identity.

remora-fin profile

๐Ÿค Contributing

Contributions are welcome!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ› ๏ธ Development

Remora-Fin uses uv for high-performance dependency management and multi-version Python testing.

Testing across Python versions

You can easily run the test suite against different Python versions without manual installation:

# Test with Python 3.12 (Default)
uv run --python 3.12 pytest tests/

# Test with Python 3.13
uv run --python 3.13 pytest tests/

If a specific Python version is not found on your system, uv will automatically download and manage it for you.


๐Ÿ“ License

Distributed under the MIT License. See LICENSE for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

remora_fin-1.0.5.tar.gz (67.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

remora_fin-1.0.5-py3-none-any.whl (92.7 kB view details)

Uploaded Python 3

File details

Details for the file remora_fin-1.0.5.tar.gz.

File metadata

  • Download URL: remora_fin-1.0.5.tar.gz
  • Upload date:
  • Size: 67.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for remora_fin-1.0.5.tar.gz
Algorithm Hash digest
SHA256 52d44520fdc949e01c1a42f49eb2a89399b2e6745d7e3fb6d439b9e4f8defeb7
MD5 bb7c7c140298b3b505c294fbd1b37339
BLAKE2b-256 154f6d5f04cea70f46df21483d038473408e267bd5d3d8a0a942843c12085e5e

See more details on using hashes here.

File details

Details for the file remora_fin-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: remora_fin-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 92.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for remora_fin-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ccbf02bf73148c3fd1f8203a2beea23a41025193bbdc78d098da324223529ad2
MD5 7c6e03dd0ea7bad18a8685211acdb554
BLAKE2b-256 ee108dc7f1040c44eed09539e39b359ec53e6308c7eb9fa2401ffd84cb8f4deb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page