---
page_title: Managing Plugins - Terraform CLI
description: >-
  Commands to install, configure, and show information about providers. Also
  commands to reduce install effort in air-gapped environments.
---

# Managing Plugins

Terraform relies on plugins called "providers" in order to manage various types
of resources. (For more information about providers, see
[Providers](/terraform/language/providers) in the Terraform
language docs.)

-> **Note:** Providers are the only plugin type most Terraform users interact with. Terraform also supports third-party provisioner plugins, but
we discourage their use.

Terraform downloads and/or installs any providers
[required](/terraform/language/providers/requirements) by a configuration
when [initializing](/terraform/cli/init) a working directory. By default,
this works without any additional interaction but requires network access to
download providers from their source registry.

You can configure Terraform's provider installation behavior to limit or skip
network access, and to enable use of providers that aren't available via a
networked source. Terraform also includes some commands to show information
about providers and to reduce the effort of installing providers in airgapped
environments.

## Configuring Plugin Installation

Terraform's configuration file includes options for caching downloaded plugins,
or explicitly specifying a local or HTTPS mirror to install plugins from. For
more information, see [CLI Config File](/terraform/cli/config/config-file).

## Getting Plugin Information

Use the [`terraform providers`](/terraform/cli/commands/providers) command to get information
about the providers required by the current working directory's configuration.

Use the [`terraform version`](/terraform/cli/commands/version) command (or
`terraform -version`) to show the specific provider versions installed for the
current working directory.

Use the [`terraform providers schema`](/terraform/cli/commands/providers/schema) command to
get machine-readable information about the resources and configuration options
offered by each provider.

## Managing Plugin Installation

Use the [`terraform providers mirror`](/terraform/cli/commands/providers/mirror) command to
download local copies of every provider required by the current working
directory's configuration. This directory will use the nested directory layout
that Terraform expects when installing plugins from a local source, so you can
transfer it directly to an airgapped system that runs Terraform.

Use the [`terraform providers lock`](/terraform/cli/commands/providers/lock) command
to update the lock file that Terraform uses to ensure predictable runs when
using ambiguous provider version constraints.
