iac-bicep

Installation
SKILL.md

Bicep / ARM

Bicep is Azure's first-party IaC language. It compiles to ARM JSON, which is what Azure Resource Manager actually deploys. If your stack is Azure-only, Bicep is usually the better choice than Terraform: same-day support for new resource types, no state file to manage, native what-if, and tighter integration with Azure Policy and deployment stacks.

When not to choose Bicep:

  • Multi-cloud — Bicep only does Azure.
  • You need 3rd-party providers (GitHub, Datadog, Cloudflare, etc.) — Terraform's ecosystem is much richer.
  • The team is already heavy on Terraform and the Azure-only sub-portion isn't worth a second tool.

How Bicep relates to ARM

ARM is the underlying API and template format. Bicep is a transpiler that produces ARM JSON. There's no runtime Bicep engine in Azure — just a more pleasant authoring experience that compiles down. This means:

  • Anything you can do in ARM, you can do in Bicep (and almost everything is more concise).
  • Bicep has no state file. ARM tracks deployments per scope (RG/sub/MG); the "state" is the live state of resources in Azure.
  • You can decompile existing ARM to Bicep (bicep decompile) — useful but the output usually needs cleanup.

Deployment scopes

Installs
2
GitHub Stars
1
First Seen
May 14, 2026