A Terraform console wrapper that enhances the REPL experience with tab completion, variable definition, and command history.
terraform-repl is an enhanced interactive console wrapper for Terraform that improves the standard `terraform console` experience. It adds features like tab completion, command history, variable definition, and system command execution to facilitate debugging and exploration of Terraform configurations. The tool can run with a local Terraform process or a Docker container backend for better performance with larger projects.
Terraform users, DevOps engineers, and infrastructure developers who frequently work with Terraform configurations and need an interactive environment for testing expressions, debugging, and exploring variables.
Developers choose terraform-repl because it overcomes the limitations of the native Terraform console, offering a more feature-rich and productive REPL experience. Its unique selling point is the combination of tab completion, variable management, and optional Docker backend, which streamlines workflow and reduces friction during Terraform development.
A terraform console wrapper for a better REPL experience
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Autocompletes Terraform functions and local variables, reducing errors and speeding up exploration, as shown in the usage examples with TAB key.
Allows creating and inspecting new local variables within the session, enabling dynamic testing without modifying configuration files, demonstrated with local.c assignment.
Uses a HashiCorp/terraform Docker container for faster expression evaluation in large projects, as mentioned in the -docker-container-backend option.
Generates complete transcripts of inputs and outputs with the -transcript flag, useful for documentation, as shown in the sample transcript.
Requires multiple dependencies like jq and hcl2json, and optionally docker and socat, complicating setup compared to the native console.
Optimal performance with large projects necessitates Docker, adding an extra layer of dependency that may not be feasible in all environments.
Focuses on local configurations without apparent support for remote state or Terraform Cloud, limiting use in cloud-centric workflows.