---
title: Write an external plugin
description: 'Set up your plugin to use it with execd. For listed external plugins, the author of the external plugin is also responsible for the maintenance and feature development of external plugins. Write your Telegraf plugin. Follow InfluxData’s best practices: Input plugins Processor plugins Aggregator plugins Output plugins If your plugin is written in Go, follow the steps for the Execd Go Shim. Add usage and development instructions in the homepage of your repository for running your plugin with its r'
url: https://docs.influxdata.com/telegraf/v1/configure_plugins/external_plugins/write_external_plugin/
estimated_tokens: 574
product: Telegraf
version: v1
---

# Write an external plugin

Set up your plugin to use it with `execd`.

For listed [external plugins](https://github.com/influxdata/telegraf/blob/master/EXTERNAL_PLUGINS.md), the author of the external plugin is also responsible for the maintenance and feature development of external plugins.

1. Write your Telegraf plugin. Follow InfluxData’s best practices:
    -   [Input plugins](https://github.com/influxdata/telegraf/blob/master/docs/INPUTS.md)
    -   [Processor plugins](https://github.com/influxdata/telegraf/blob/master/docs/PROCESSORS.md)
    -   [Aggregator plugins](https://github.com/influxdata/telegraf/blob/master/docs/AGGREGATORS.md)
    -   [Output plugins](https://github.com/influxdata/telegraf/blob/master/docs/OUTPUTS.md)
2. If your plugin is written in Go, follow the steps for the [Execd Go Shim](/telegraf/v1/configure_plugins/external_plugins/shim).
3. Add usage and development instructions in the homepage of your repository for running your plugin with its respective `execd` plugin. Refer to [openvpn](https://github.com/danielnelson/telegraf-execd-openvpn#usage) and [awsalarms](https://github.com/vipinvkmenon/awsalarms#installation) for examples. Include the following steps:
    -   How to download the release package for your platform or how to clone the binary for your external plugin
    -   Commands to build your binary
    -   Location to edit your `telegraf.conf`
    -   Configuration to run your external plugin with [inputs.execd](https://github.com/influxdata/telegraf/tree/master/plugins/inputs/execd), [processors.execd](https://github.com/influxdata/telegraf/tree/master/plugins/processors/execd) or [outputs.execd](https://github.com/influxdata/telegraf/tree/master/plugins/outputs/execd)
4. Submit your plugin by opening a PR to add your external plugin to the [/EXTERNAL\_PLUGINS.md](https://github.com/influxdata/telegraf/blob/master/EXTERNAL_PLUGINS.md) list. Include the plugin name, a link to the plugin repository and a short description of the plugin.
