https://github.com/anindya-dey/tfvm
Terraform Version Manager
https://github.com/anindya-dey/tfvm
andys-cli cli nodejs terraform terraform-manager terraform-version-manager tfvm
Last synced: 3 months ago
JSON representation
Terraform Version Manager
- Host: GitHub
- URL: https://github.com/anindya-dey/tfvm
- Owner: anindya-dey
- License: mit
- Created: 2021-09-13T16:25:54.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-06-19T04:33:23.000Z (over 1 year ago)
- Last Synced: 2025-04-15T18:46:54.744Z (6 months ago)
- Topics: andys-cli, cli, nodejs, terraform, terraform-manager, terraform-version-manager, tfvm
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/tfvm
- Size: 3.7 MB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Terraform Version Manager
### A NodeJS-based CLI tool to manage terraform versions on a system
[](https://www.npmjs.com/package/tfvm) [](https://www.npmjs.com/package/tfvm) [](https://www.npmjs.com/package/tfvm)
Install it globally to manage all the terraform versions
```sh
$ npm install -g tfvm
```
### Available Commands
---
#### `list | ls [--remote | -r]`
- Use this command to list the downloaded versions of terraform
```sh
$ tfvm list # gets all the locally available terraform executables# --- OR ---
$ tfvm ls
```
- Append `--remote` or `-r` with `list` to get a list of all available releases from [Terraform](https://releases.hashicorp.com/terraform)
```sh
$ tfvm list --remote # displays the available releases from Terraform's website# --- OR ---
$ tfvm ls -r
```
- If you do not have any terraform executables on your path, you would see an error, like so:

---
#### `download | d [version]`
- This will present a list of available versions, and then a list of releases available for that version from terraform. Choose one with up/down arrow and hit `ENTER` to download it.
```sh
$ tfvm download# --- OR ---
$ tfvm d
```
- Optionally, a `version` can be appended to this command which would directly present a list of releases, associated to this version:
```sh
$ tfvm download 1.3.1# --- OR ---
$ tfvm d 1.3.1
```
---
#### `remove | rm [--all | -a]`
- Use this to remove/delete a particular terraform executable or all terraform executables.
```sh
$ tfvm remove # to remove a particular terraform executable# --- OR ---
$ tfvm rm
```
- Use `--all` or `-a` option to remove all the terraform executables.
```sh
$ tfvm remove --all # to remove all the terraform executables# --- OR ---
$ tfvm rm -a
```
---
#### `use`
- This command will present a list of all the locally available terraform executables. Once a particular executable is selected, it would be set as default and made available to the user via the `terraform` commands in the terminal.
```sh
$ tfvm use # select a terraform executable as default, which can be used via 'terraform' command
```
> NOTE: User might have to perform a one-time update of their PATH variable to include the path indicated by this command.
---
#### `dir`
- This command shows the directory where all the terraform executables are stored locally. The default path is the `$USER/terraform` directory.
```sh
$ tfvm dir # shows the directory where all the terraform executables are stored
```
---
> **NOTES:**
>
> 1. Currently, platform specfic releases are not filtered out when executing `tfvm list --remote` or `tfvm download [version]` command. User needs to make sure that they are downloading the right release for their system.
> 2. Chalk v4.1.2 is used as it supports typescript; Chalk >= v5 is purely ESM.---
⭐ _This project is inspired by the [nvm project](https://github.com/nvm-sh/nvm)_ 😍
⭐ _I created these beautiful gifs by using [terminalizer](https://www.npmjs.com/package/terminalizer)_ 😍