{"id":18117940,"url":"https://github.com/augur-ai/mantis","last_synced_at":"2026-03-09T21:39:58.100Z","repository":{"id":257966880,"uuid":"867672375","full_name":"augur-ai/mantis","owner":"augur-ai","description":"Mantis is a unified infrastructure as code framework that replaces Terraform and Helm","archived":false,"fork":false,"pushed_at":"2024-10-31T06:29:20.000Z","size":299604,"stargazers_count":54,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-31T07:22:55.463Z","etag":null,"topics":["helm-charts","infrastructure-as-code","kubernetes","kubernetes-deployment","opentofu","policy-as-code","terraform"],"latest_commit_sha":null,"homepage":"https://getmantis.ai","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/augur-ai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-04T13:56:51.000Z","updated_at":"2024-10-31T06:25:19.000Z","dependencies_parsed_at":"2024-10-31T07:34:10.328Z","dependency_job_id":null,"html_url":"https://github.com/augur-ai/mantis","commit_stats":null,"previous_names":["pranil-augur/mantis","augur-ai/mantis"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/augur-ai/mantis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augur-ai%2Fmantis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augur-ai%2Fmantis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augur-ai%2Fmantis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augur-ai%2Fmantis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/augur-ai","download_url":"https://codeload.github.com/augur-ai/mantis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/augur-ai%2Fmantis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30312346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["helm-charts","infrastructure-as-code","kubernetes","kubernetes-deployment","opentofu","policy-as-code","terraform"],"created_at":"2024-11-01T05:02:05.156Z","updated_at":"2026-03-09T21:39:58.083Z","avatar_url":"https://github.com/augur-ai.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"[![Language](https://img.shields.io/badge/Language-go-blue.svg)](https://go.dev/)\n[![Discord](https://img.shields.io/discord/1098133460310294528?logo=Discord)](https://discord.gg/BJ8nKSmH)\n# **Mantis**\n\n🚀 AI-first queryable Infrastructure as Code tool that is an alternative to Terraform and Helm\n\n**Introduction**\n\nMantis is a next-generation Infrastructure as Code (IaC) tool that reimagines how we manage cloud and Kubernetes resources. Built as a fork of OpenTofu and powered by CUE, Mantis combines the best of Terraform and Helm while solving their limitations.\n\nTo manage cloud resources, Mantis compiles CUE configurations into Terraform compatible json and leverages the Opentofu engine to orchestrate it.\nTo manage K8s resources, Mantis compiles CUE configurations yaml manifests which can be deployed either using mantis or via integrations with Gitops tools like ArgoCD or FluxCD\n\n### **Key Features**\n\n* **Unified Configuration**: Single tool to replace both Terraform and Helm workflows  \n* **Task-Centric State Management**: Unlike Terraform's global state, Mantis manages state at the task level, eliminating lock contentions and speeding up deployments  \n* **AI-first:** Mantis treats configuration as code and applies Gen-AI to generate, validate, query and visualize configuration and config changes  \n* **Built-in Policy Engine**: Define and enforce security, compliance, and operational policies\n\n⚠️ **Note**: Mantis is under active development. APIs and CLI interfaces may change.\n\n## **Installation**\n\n### **Prerequisites**\n\n* Basic understanding of IaC concepts  \n* Familiarity with Terraform or Helm (helpful but not required)\n\n### **Quick Install**\n\n**MacOS/Linux**\n\n```bash  \nbrew install pranil-augur/homebrew-mantis/mantis\n```\n\n\n## **Usage**\n\n### **Basic Example \\- Install a K8s based Flask app**\n\nDeploy a cloud-native Flask application integrated with AWS RDS and managed through Kubernetes. We'll walk through the structure of the example code, how the tasks are broken down, and how the CUE-based modules simplify reusable infrastructure components.\n\nLet’s dive into the file structure and flow that powers this deployment.\n\nProject File Structure Below is the structure of the example deployment:\n\n```bash\ntree -L 2\n.\n├── cue.mod\n│   └── module.cue           # Defines the module name and CUE version\n├── defs\n│   ├── deployment.cue       # Deployment configurations for the Flask app\n│   ├── rds.cue              # RDS database configurations\n│   ├── variables.cue        # Variable definitions and inputs\n│   └── providers.cue        # Providers configuration\n└── install_flask_app.tf.cue  # Main Mantis flow for deploying the app\n```\n\nThis file structure reflects how Mantis organizes infrastructure code using modular and reusable CUE configurations. Let's look at what each file and directory does.\n\n#### **1\\. Main Flow (install\\_flask\\_app.tf.cue)[​](https://getmantis.ai/blog/mantis_application_install#1-main-flow-install_flask_apptfcue)**\n\nMain Flow Code\n\nThe main flow file orchestrates the entire deployment process by:\n\n* Importing and using the definitions from defs/  \n* Defining task dependencies and execution order  \n* Managing state and variable passing between tasks  \n* Coordinating both AWS and Kubernetes resources\n\nThe core syntax of the main flow is:\n\n```cue\ndeploy_flask_rds: {\n   @flow(deploy_flask_rds)\n   # Define the tasks that make up the flow\n   task_1: {\n       @task(mantis.core.TF) // Terraform task\n       ...\n   }\n   task_2: {\n       @task(mantis.core.TF)\n       dep: [task_1] // Define task dependencies\n       ...\n   }\n   task_3: {\n       @task(mantis.core.K8s) // Kubernetes task\n       dep: [task_1, task_2] // Define task dependencies\n       ...\n   }\n}\n```\n\n#### **2\\. cue.mod/module.cue[​](https://getmantis.ai/blog/mantis_application_install#2-cuemodmodulecue)**\n\nThis file defines the module name and CUE language version being used for the project. It also allows dependencies to be managed across the project.\n\n```cue\nmodule: \"augur.ai/rds-flask-app\"\nlanguage: {\n   version: \"v0.10.0\"\n}\n\n// Define the dependencies for the project\ndependencies: [\n   \"abc.xyz.com/module1\",\n   \"abc.xyz.com/module2\",\n]\n```\n\nPurpose: This ensures the project remains compatible across various CUE versions and clearly identifies the module for import across multiple flows.\n\n#### **3\\. defs Directory[​](https://getmantis.ai/blog/mantis_application_install#3-defs-directory)**\n\n* defs/deployment.cue  \n* defs/variables.cue  \n* defs/providers.cue  \n* defs/rds.cue\n\n```cue\npackage defs\n\nflaskRdsDeployment: {\napiVersion: \"apps/v1\"\nkind:       \"Deployment\"\nmetadata: {\n   name:   \"flask-rds-deployment\"\n   labels: {\n       app: \"flask-rds\"\n   }\n}\nspec: {\n   replicas: 2\n   selector: {\n       matchLabels: {\n           app: \"flask-rds\"\n       }\n   }\n   template: {\n       metadata: {\n           labels: {\n               app: \"flask-rds\"\n           }\n       }\n       spec: {\n           containers: [{\n               name:  \"flask-rds\"\n   \t    image: \"\\(common.container_repo)\"\n               ports: [{\n                   containerPort: 80\n               }]\n               env: [\n                   {\n                       name:  \"DB_HOST\"\n                       value: \"@var(rds_endpoint)\"\n                   },\n                   {\n                       name:  \"DB_NAME\"\n                       value: \"\\(common.db_name)\"\n                   },\n                   {\n                       name:  \"DB_USER\"\n                       value: \"\\(common.db_username)\"\n                   },\n                   {\n                       name:  \"DB_PASSWORD\"\n                       value: \"\\(common.db_password)\"\n                   }\n               ]\n               resources: {\n                   limits: {\n                       memory: \"256Mi\"\n                       cpu:    \"250m\"\n                   }\n                   requests: {\n                       memory: \"128Mi\"\n                       cpu:    \"80m\"\n                   }\n               }\n           }]\n           }\n       }\n   }\n```\n## **Demo video**\n[Introduction to Mantis](https://www.loom.com/share/b8c48935df8f4752b305e64fc3bb3845)\n\n## **Documentation**\n\n### **Core Concepts**\n\n* [Tasks](https://getmantis.ai/docs/key_concepts/flows/tasks) \u0026 [flows](https://getmantis.ai/docs/key_concepts/flows/flow_overview)\n* [Configuration Query Language](https://getmantis.ai/docs/key_concepts/cql/cql_overview)\n\n### **Guides**\n\n* [Getting Started](https://getmantis.ai/docs/getting_started/installation)  \n* [Migrating from Terraform](Coming soon)  \n* [Migrating from Helm](Coming soon)\n* [Codifying Cloud Infrastructure](Coming soon)\n\n## **Contributing**\n\n* The easiest way to contribute is to pick an issue with the `good first issue` tag 💪. Read the contribution guidelines here.  \n* Submit your bug reports and feature requests [here](https://github.com/pranil-augur/mantis/issues)\n\n---\n\n## **Community**\n\n* Join our growing community around the world, for help, ideas, and discussions   \n  * Discord [https://discord.gg/BJ8nKSmH](https://discord.gg/BJ8nKSmH) \n  * Linkedin [https://www.linkedin.com/company/augur-ai-inc/](https://www.linkedin.com/company/augur-ai-inc/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugur-ai%2Fmantis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faugur-ai%2Fmantis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faugur-ai%2Fmantis/lists"}