This repository contains the shared provider interfaces, domain packages, and cloud-provider integrations used by the CLI, MCP server, and self-hosted platform. It is not an application CLI and does not produce a CUDly binary.
The intended public repository is LeanerCloud/cloud-commitments-go; it is not
published yet. The committed go.work is sufficient for development in this
checkout. Consumer repositories may still require unpublished shared-module
versions until the publication sequence completes.
The repository has five Go modules:
pkgcontains shared domain and utility packages, includingpkg/commonandpkg/provider.providers/aws,providers/azure, andproviders/gcpcontain provider integrations.ci_cd_sanity_testscontains diagnostic CI and integration checks. It is not an end-user CLI.
There is no root Go module. Use the module directories above when you inspect, build, or test this component.
Use the Go version declared in each module's go.mod (currently Go 1.26.11).
make build
make test-unitmake build and make test-unit iterate over the five module directories. These targets do not create a shared library binary. Unit tests do not require cloud credentials. The diagnostic binaries in ci_cd_sanity_tests/cmd/ are explicitly cloud-backed checks and must not be run unless the target account and credentials are intended.
For standalone module verification in this checkout, use the module-local
command with GOWORK=off, for example:
(cd pkg && GOWORK=off go test -race -short ./...)The provider modules' committed relative replacements resolve the local pkg
module during this check. After publication, repeat the verification against
released module versions with GOWORK=off and no local replacement; that is
the external-consumer release check.
Provider support varies by service and account. Amazon RDS and ElastiCache are the tested AWS service paths. Other AWS service paths, Azure, and GCP support remains experimental.
These packages expose provider operations to callers. Purchase confirmation, dry-run policy, and user-facing safety controls belong to the CLI, MCP server, or platform caller. Any caller that executes a purchase can spend money.
Caller-specific behavior is documented in the CLI, MCP server, and self-hosted platform components. Those destination repositories are intended but not yet published; do not treat this library as providing their purchase controls.
These defaults apply when a caller leaves the value unset. They are kept as they are and listed here so callers can override them.
| Default | Value | Where | Effect |
|---|---|---|---|
| Coverage and utilization lookback | 30 days | providers/aws/recommendations/coverage.go:242-243 (coverageWindow), providers/aws/recommendations/utilization.go:41-42, providers/aws/ladder/ladder.go:19 (DefaultLookbackDays) |
A non-positive lookbackDays passed to GetRICoverageMap or GetRIUtilization is replaced with 30. The ladder uses 30 when Config.LookbackDays is zero. Pass an explicit window to size from a different history. |
| MemoryDB reserved-node engine | redis |
providers/aws/services/memorydb/client.go:329 (ReservedNodeEngine), used at providers/aws/recommendations/parser_services.go:260 |
Every MemoryDB recommendation is labelled redis, including Valkey clusters. The MemoryDB purchase path does not filter on engine, so the label affects display, pool keys and duplicate detection only. |
Built by LeanerCloud, a group of AWS cost optimization and FinOps specialists, also authors of AutoSpotting.
Development is sponsored by Archera, which funds it from insurance purchases made through that page. Archera can insure the Savings Plans, Reserved Instances and CUD purchases you make with this tool.
If this tool saves you time and money, please give us a ⭐ so others can also find it.
CUDly is maintained by LeanerCloud and licensed under the Open Software License 3.0. See the repository license and attribution files for third-party notices.