---
description: |
  Communicators are remote-access programs Packer uses to perform actions, such as upload files and execute scripts, on the machines Packer creates.
page_title: Communicators overview
---

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
> [!IMPORTANT]  
> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

# Communicators overview

Communicators are the mechanism Packer uses to upload files, execute scripts,
etc. with the machine being created.

Communicators are configured within the
[builder](/packer/docs/templates/legacy_json_templates/builders) section. Packer currently supports
three kinds of communicators:

- `none`: Packer does not use a communicator and cannot use most provisioners.
- [`ssh`](/packer/docs/communicators/ssh): Packer establishes an SSH connection to the machine. This is usually the default.
- [`winrm`](/packer/docs/communicators/winrm): Packer establishes a WinRM connection. 

In addition to the above, some builders have custom communicators they can use.
For example, the Docker builder has a "docker" communicator that uses
`docker exec` and `docker cp` to execute scripts and copy files.

For more details on how to use each communicator, click the links above to be
taken to each communicator's page.
