Skip to content

Formae

Open-source Infrastructure As Code that starts from what already runs. formae discovers your estate, versions drift and hands back current code. A Terraform and Pulumi…

Install

$/plugin marketplace add platform-engineering-labs/formae-marketplace

Install command taken from the project's README or registry entry. Always review code before running it.

formae discovers the infrastructure running in your cloud accounts and clusters, keeps a versioned record of every resource and every change to it, whoever made the change, and applies changes at any granularity, from a single property to a whole environment. There is no state file to manage. You work with it through code, the CLI or an AI agent.

It can be used as an alternative to Terraform, OpenTofu or Pulumi, or alongside them, Helm and manual changes, on AWS, Azure, Google Cloud, Kubernetes and other platforms.

This repository is formae IaC, the open source edition you run yourself. formae Cloud is the same formae with the agent run and managed for you.

Documentation · Quick start · Plugins · Release notes · Website · Discord

Install

/bin/bash -c "$(curl -fsSL https://hub.platform.engineering/get/formae.sh)"
export PATH=/opt/pel/bin:$PATH
formae --version

Linux and macOS. A container image and a Helm chart are available for running the agent on a server or in Kubernetes.

Example

Start the agent, then see what already exists and get code for it:

formae agent start                                            # in its own terminal
formae inventory resources --query="managed:false"            # resources formae found but does not manage
formae extract --query 'type:AWS::S3::Bucket' ./buckets.pkl   # code for them, generated from what is running

Or declare resources yourself. A forma in Pkl, main.pkl:

amends "@formae/forma.pkl"
import "@formae/formae.pkl"
import "@aws/aws.pkl"
import "@aws/s3/bucket.pkl"

forma {
  new formae.Stack {
    label = "my-app"
  }

  new formae.Target {
    label = "my-aws-target"
    config = new aws.Config {
      region = "us-east-1"
    }
  }

  new bucket.Bucket {
    label = "app-bucket"
    bucketName = "my-unique-bucket-name"
  }
}
formae apply --mode reconcile main.pkl   # shows the plan, asks before changing anything

The quick start deploys a full example to AWS, Azure or GCP in about ten minutes.

How it works

Similar plugs

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts. 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI…

An open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM

Enhanced ChatGPT Clone: Features Agents, MCP, Skills, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini,…

Explore related