---
title: Install Development Tools
---

Before start to develop Dify plugins, please prepare the following prerequisites:
* [Dify Plugin CLI tool](https://github.com/langgenius/dify-plugin-daemon?tab=readme-ov-file#cli)
* Python 3.12+

### **1. Install Dify Plugin CLI Tool**

The Dify Plugin CLI Tool can be installed either with from Homebrew (on Linux and macOS) or with the standalone binary executable file (on Windows, Linux and macOS).

#### Install with Homebrew

For the macOS and Linux users, installing Dify Plugin CLI with [Homebrew](https://brew.sh/) is recommended.

Tap the [Homebrew formula for Dify Plugin CLI tool](https://github.com/langgenius/homebrew-dify), and then install it with `brew install`.

```bash
brew tap langgenius/dify
brew install dify
```

To check the installation, run `dify version` and a version code should be displayed.
```bash
dify version
```

To upgrade the Dify Plugin CLI tool, run the following command:

```bash
brew upgrade dify
```

#### Install with binary executable

1. Download the binary executable

On the asset list of the release page of [Dify Plugin CLI Tool](https://github.com/langgenius/dify-plugin-daemon/releases), choose and download the binary executable for the OS system (Linux / macOS / Windows) and the chip architecture (`amd64` for x86 chips / `arm64` for ARM or Apple's M chips).

Using **macOS with M chips** as an example. Download the `dify-plugin-darwin-arm64` file and grant it execution permissions by running the command:
```bash
chmod +x ./dify-plugin-darwin-arm64
mv ./dify-plugin-darwin-arm64 ./dify
```

To check the installation, run `./dify version` and a version code should be displayed.
```bash
./dify version
```

> If the system shows an "Apple cannot verify" error, go to **Settings → Privacy & Security → Security**, and click the "Open Anyway" button.


<Info>
    **Tips:**
    To use `dify` command globally system-wide, it's recommended to rename the binary file to `dify` and copy it to the
    `/usr/local/bin` system path.
</Info>

### **2. Install Python**

Python version 3.12 or higher is required. For detailed instructions, please refer to the official [Python installation](https://docs.python.org/3.12/using/index.html) guide.


### 3. **Develop plugins**

Please refer to the following content for examples of different types of plugin development.

<Card title="Tool Plugin" icon="link" href="/en/plugins/quick-start/develop-plugins/tool-plugin">
</Card>

<Card title="Model Plugin" icon="link" href="/en/plugins/quick-start/develop-plugins/model-plugin">
</Card>

<Card title="Agent Strategy Plugin" icon="link" href="/en/plugins/quick-start/develop-plugins/agent-strategy-plugin">
</Card>

<Card title="Extension Plugin" icon="link" href="/en/plugins/quick-start/develop-plugins/extension-plugin">
</Card>

<Card title="Bundle Plugin" icon="link" href="/en/plugins/quick-start/develop-plugins/bundle">
</Card>

{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}

<CardGroup cols="2">
    <Card
        title="Edit this page"
        icon="pen-to-square"
        href="https://github.com/langgenius/dify-docs-mintlify/edit/main/en/plugins/quick-start/develop-plugins/initialize-development-tools.mdx"
    >
        Help improve our documentation by contributing directly
    </Card>
    <Card
        title="Report an issue"
        icon="github"
        href="https://github.com/langgenius/dify-docs-mintlify/issues/new?title=Documentation%20Issue%3A%20alize-development-to&body=%23%23%20Issue%20Description%0A%3C%21--%20Please%20briefly%20describe%20the%20issue%20you%20found%20--%3E%0A%0A%23%23%20Page%20Link%0Ahttps%3A%2F%2Fgithub.com%2Flanggenius%2Fdify-docs-mintlify%2Fblob%2Fmain%2Fen/plugins/quick-start/develop-plugins%2Finitialize-development-tools.mdx%0A%0A%23%23%20Suggested%20Changes%0A%3C%21--%20If%20you%20have%20specific%20suggestions%20for%20changes%2C%20please%20describe%20them%20here%20--%3E%0A%0A%3C%21--%20Thank%20you%20for%20helping%20improve%20our%20documentation%21%20--%3E"
    >
        Found an error or have suggestions? Let us know
    </Card>
</CardGroup>
