Terraform and Pulumi are both infrastructure as code tools but they differ in key ways. Terraform uses HCL syntax and focuses on infrastructure resources while Pulumi uses regular programming languages to define cloud resources and applications together. Pulumi supports more providers but Terraform is easier to use for developers with system administration experience. Both tools use state files to track infrastructure changes but Pulumi state is managed through its CLI and service while Terraform uses local or remote state files.