formae
Health Gecti
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 774 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
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 alternative built on Pkl, with an MCP server for AI agents.
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
- Discovery. The agent scans each target (a cloud account, region or cluster) every 10 minutes by default and records resources it does not manage as unmanaged. Unmanaged resources are read-only to formae until you bring them under management.
- Synchronization. Every 5 minutes by default, the agent reads the resources it knows about and records any change made outside formae, which other tools usually call drift. It does not edit your code repository or change cloud resources on its own.
- Extract.
formae extractwrites Pkl for any set of resources, managed or not, so code can be generated from the running infrastructure instead of written by hand. - Code. Infrastructure As Code (IaC): desired state is declared in a forma, a file written in Pkl, a configuration language with types and constraints. Resource types are Pkl schemas provided by the plugins, so a forma is type-checked before anything is applied.
- Reconcile.
formae apply --mode reconcilemakes a stack match the forma in your code, on disk or in your repository, including deletions. If out-of-band changes (drift) were recorded, it stops and asks you to absorb each one into the desired state or revert it. Works with GitOps: keep the Pkl in Git and run reconcile from CI. - Patch.
formae apply --mode patchonly creates or updates the resources named in the forma you apply and never deletes anything; collections such as tags are only added to. It is meant for targeted and emergency changes. - Agent. The CLI talks to an agent that executes operations and stores state in its own database (SQLite, PostgreSQL, Aurora Data API or SQL Server). Run it yourself locally, on a server or in Kubernetes, or use formae Cloud, where it is run for you.
- Plugins. Comparable to Terraform providers: each plugin is a separate, independently versioned process that adds the resource types of one platform.
Concepts in detail: forma, stack, target, apply modes, discovery, synchronization, architecture.
Compared with Terraform and Pulumi
| Terraform / OpenTofu | Pulumi | formae | |
|---|---|---|---|
| IaC language | HCL | TypeScript, JavaScript, Python, Go, C#, Java, YAML and more | Pkl |
| State | State file in a local or remote backend | State in Pulumi Cloud or a self-managed backend | Stored by the agent; no state file to handle |
| Runtime | CLI, runs on demand | CLI, runs on demand | CLI plus an always-on agent |
| Changes made outside the tool ("drift") | Detected when a plan refreshes state | Detected by pulumi refresh |
Recorded by the agent, every 5 minutes by default |
| Existing resources | import blocks or terraform import |
pulumi import |
Discovered automatically; formae extract generates the code |
| Targeted changes | -target; the whole configuration and dependency graph are still evaluated |
--target; the whole program still runs and builds the full resource graph |
--mode patch applies only what the forma declares, with minimal blast radius |
Longer write-ups: formae vs. Terraform, formae vs. Pulumi.
Plugins
Official plugins, published on the formae hub:
- Cloud: AWS, Azure, Google Cloud, Oracle Cloud (OCI), OVHcloud, Fly.io, Vercel
- Containers: Kubernetes, Docker Compose
- Data: Databricks, Supabase
- Observability: Datadog, Grafana, PagerDuty
- CI/CD: GitHub Actions, GitLab CI/CD
- AI: vLLM
- Other: SFTP
To write a plugin for anything with an API, start from the plugin template and the plugin SDK guide.
AI agents
formae has an MCP server, so AI coding assistants can query and change infrastructure through the same agent and schemas as the CLI.
Claude Code only, run inside Claude Code:
/plugin marketplace add platform-engineering-labs/formae-marketplace
/plugin install formae@formae-marketplace
Codex, Cursor, OpenCode and other MCP clients: see AI assistants for each client's setup.
Source: formae-mcp. The documentation is also available as llms.txt.
Editions
- formae IaC (this repository): open source and self-hosted. You run the agent.
- formae Cloud: formae with the agent run and managed for you. You work with it through your AI coding assistant; there is no agent to operate. Quick start with formae Cloud.
See pricing.
Contributing
See CONTRIBUTING.md. Questions and discussion: Discord.
Security
Report vulnerabilities to [email protected].
License
formae is open source under FSL-1.1-ALv2: free to use, modify and self-host, and every release converts to Apache-2.0 after two years.
Built by Platform Engineering Labs.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi