--- 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.