{"id":25172924,"url":"https://github.com/terrateamio/openinfraquote","last_synced_at":"2025-04-03T22:24:04.346Z","repository":{"id":272454235,"uuid":"914870324","full_name":"terrateamio/openinfraquote","owner":"terrateamio","description":"Fast, open-source tool for estimating infrastructure costs from Terraform plans and state files","archived":false,"fork":false,"pushed_at":"2025-04-03T07:52:24.000Z","size":2990,"stargazers_count":80,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-03T08:23:52.791Z","etag":null,"topics":["aws","azure","cloud","cloud-cost-estimates","cost-estimation","cost-management","cost-optimization","devops","finops","gcp","google","infrastructure-as-code","ocaml","opentofu","terraform","terraform-cost-estimation"],"latest_commit_sha":null,"homepage":"","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terrateamio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-10T13:30:44.000Z","updated_at":"2025-04-03T07:10:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"2048f04a-4ee4-45e3-a725-8810894291bd","html_url":"https://github.com/terrateamio/openinfraquote","commit_stats":null,"previous_names":["terrateamio/openinfraquote"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrateamio%2Fopeninfraquote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrateamio%2Fopeninfraquote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrateamio%2Fopeninfraquote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrateamio%2Fopeninfraquote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terrateamio","download_url":"https://codeload.github.com/terrateamio/openinfraquote/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247087292,"owners_count":20881361,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","azure","cloud","cloud-cost-estimates","cost-estimation","cost-management","cost-optimization","devops","finops","gcp","google","infrastructure-as-code","ocaml","opentofu","terraform","terraform-cost-estimation"],"created_at":"2025-02-09T10:18:34.419Z","updated_at":"2025-04-03T22:24:04.338Z","avatar_url":"https://github.com/terrateamio.png","language":"OCaml","funding_links":[],"categories":["OCaml","terraform"],"sub_categories":[],"readme":"💸💰\n\n# OpenInfraQuote\n\n![Comedian, Chelsea Lately, faces the camera and says, \"I am a bold artistic voice\", with a brief pause before saying, \"with a lot of credit card debt\"](docs/bold_artistic_voice.gif)\n\nInfrastructure cost estimation from Terraform plans and state files\n\n[![Stars](https://img.shields.io/github/stars/terrateamio/openinfraquote)](https://github.com/terrateamio/openinfraquote/stargazers)\n[![Slack](https://img.shields.io/badge/slack-join%20chat-blue)](https://terrateam.io/slack)\n[![Latest Release](https://img.shields.io/github/v/release/terrateamio/openinfraquote?color=%239F50DA)](https://github.com/terrateamio/openinfraquote/releases)\n[![OCaml](https://img.shields.io/badge/OCaml-EC6813?logo=ocaml\u0026logoColor=fff)](https://ocaml.org)\n[![License: MPL-2.0](https://img.shields.io/badge/License-MPL--2.0-blue.svg)](https://opensource.org/licenses/MPL-2.0)\n\n---\n\nOpenInfraQuote is a lightweight, open-source CLI tool for estimating infrastructure costs using Terraform plan and state files. It runs locally or in CI/CD. No backend, no API keys, no external services.\n\nBuilt for teams that care about flexibility, privacy, and control.\n\n---\n\n## Why OpenInfraQuote\n\n- 100% open-source (MPL-2.0)\n- No API keys or rate limits\n- Self-contained CLI, data does not leave your system\n- Works with your existing Terraform plans and state files\n- Easy to integrate into any CI/CD pipeline\n\nCurrently supports AWS. GCP and Azure are on the way.\n\n---\n\n## Getting Started\n\nYou can install OpenInfraQuote by downloading the binary.\n\n### Download Pricing Sheet\n\nBefore running a cost estimate, download the latest pricing sheet:\n\n```sh\ncurl -s https://oiq.terrateam.io/prices.csv.gz | gunzip \u003e prices.csv\n```\n\n### Install OpenInfraQuote\n\nDownload the latest release for your system:\n\n1. Go to the [OpenInfraQuote releases page](https://github.com/terrateamio/openinfraquote/releases).\n2. Download the binary for your architecture.\n3. Unarchive and copy it to one of the directories in your $PATH, e.g. /usr/local/bin\n4. Confirm it’s working:\n\n   ```bash\n   oiq --help\n   ```\n---\n## GitHub Action for OpenInfraQuote\n\nAutomate your infrastructure cost estimates with OpenInfraQuote by adding the following step to your GitHub Actions workflow file:\n\n```yml\n- name: Run OpenInfraQuote\n  uses: terrateamio/openinfraquote-action@v1\n  with:\n    plan-path: tfplan.json\n    comment-on-pr: true\n```\n\nFor more information, visit the [OpenInfraQuote GitHub Action Marketplace page](https://github.com/marketplace/actions/openinfraquote).\n\n## Examples\n\n### Estimate Costs from a Terraform Plan\n\n```sh\nterraform plan -out=tf.plan\nterraform show -json tf.plan \u003e tfplan.json\noiq match --pricesheet prices.csv tfplan.json | oiq price --region us-east-1\n```\n\nExample output:\n```\nMatch date: 2025-03-25T20:26:25\nPrice date: 2025-03-25T20:26:25\nMatch query: region=us-east-1\n\nMin Price: 61.78 USD\nMax Price: 63.85 USD\nMin Price Diff: 61.78 USD\nMax Price Diff: 63.85 USD\n\nResources\n  Name      Type            Min Price (USD)  Max Price (USD)  Change\n  example   aws_s3_bucket   61.78            63.85             add\n```\n\nIn JSON format:\n```sh\noiq match --pricesheet prices.csv tfplan.json | oiq price --region us-east-1 --format=json\n```\n\n### Estimate Current Costs from Terraform State\n\n```sh\nterraform state pull | terraform show --json \u003e tfstate.json\noiq match --pricesheet prices.csv tfstate.json | oiq price --region us-east-1\n```\n\n---\n\n## Region and Usage Configuration\n\n### Region Handling\n\nBy default, OpenInfraQuote shows pricing across all regions. If you know which region to use, pass it explicitly with the `--region` flag. This is optional.\n\nPlan and state files do not contain region information, so it must be provided manually if you want region-specific estimates.\n\n### Usage-Based Estimates\n\nSome cloud resources are priced based on usage, such as storage size or number of requests. OpenInfraQuote includes default estimates for common usage patterns to help provide directional cost data. You can customize these assumptions by providing your own `usage.json` file.\n\nSee an example usage file [here](https://github.com/terrateamio/openinfraquote/blob/main/files/usage.json).\n\n---\n\n## Running with Docker\n\nTo run OpenInfraQuote with Docker:\n\n```sh\ndocker run --rm -i \\\n  -v $(pwd)/prices.csv:/prices.csv \\\n  -v $(pwd)/tfplan.json:/tfplan.json \\\n  ghcr.io/terrateamio/openinfraquote:latest \\\n  match --pricesheet /prices.csv /tfplan.json \\\n  | docker run --rm -i \\\n    ghcr.io/terrateamio/openinfraquote:latest \\\n    price --region us-east-1\n```\n\n---\n\n## FAQ\n\n### Is OpenInfraQuote 100% open-source?\n\nYes. There are no proprietary components or hidden features.\n\n### Which cloud providers are supported?\n\nCurrently AWS. GCP and Azure support is coming soon.\n\n### How accurate are the estimates?\n\nEstimates are based on pricing data from official cloud provider APIs. OpenInfraQuote uses a pricing sheet (`prices.csv`) that is updated daily to reflect the latest public pricing. This file is downloaded and used locally, so your estimates stay current without needing a backend service.\n\nFinal costs depend on actual usage and any applicable discounts.\n\n### Where can I report issues or request features?\n\nOpen an issue on [GitHub](https://github.com/terrateamio/openinfraquote/issues) or join our [Slack](https://terrateam.io/slack) community.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterrateamio%2Fopeninfraquote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterrateamio%2Fopeninfraquote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterrateamio%2Fopeninfraquote/lists"}