> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Cheatsheet

> A quick reference for Dify plugin development, covering environment setup, installation, the development process, and plugin types

## Environment Requirements

* Python version 3.12
* Dify plugin scaffold tool (`dify-plugin-daemon`)

For setup instructions, see [Initializing Development Tools](/en/develop-plugin/getting-started/cli).

## Obtain the Dify Plugin Development Package

Download the [Dify Plugin CLI](https://github.com/langgenius/dify-plugin-daemon/releases) from the GitHub releases page.

### Installation Methods for Different Platforms

**macOS [Brew](https://github.com/langgenius/homebrew-dify) (Global Installation)**:

```bash theme={null}
brew tap langgenius/dify
brew install dify
```

After installation, open a new terminal window and enter the `dify version` command. If it outputs the version information, the installation was successful.

**macOS ARM (M Series Chips)**:

```bash theme={null}
# Download dify-plugin-darwin-arm64
chmod +x dify-plugin-darwin-arm64
./dify-plugin-darwin-arm64 version
```

**macOS Intel**:

```bash theme={null}
# Download dify-plugin-darwin-amd64
chmod +x dify-plugin-darwin-amd64
./dify-plugin-darwin-amd64 version
```

**Linux**:

```bash theme={null}
# Download dify-plugin-linux-amd64
chmod +x dify-plugin-linux-amd64
./dify-plugin-linux-amd64 version
```

**Global Installation (Recommended)**:

```bash theme={null}
# Rename and move to system path
# Example (macOS ARM)
mv dify-plugin-darwin-arm64 dify
sudo mv dify /usr/local/bin/
dify version
```

## Run the Development Package

The following examples use `dify` as the command. If you installed locally, replace the command accordingly—for example, `./dify-plugin-darwin-arm64 plugin init`.

## Plugin Development Process

### 1. Create a New Plugin

```bash theme={null}
./dify plugin init
```

Follow the prompts to configure the basic plugin information.

For a full walkthrough, see [Dify Plugin Development: Hello World Guide](/en/develop-plugin/dev-guides-and-walkthroughs/tool-plugin).

### 2. Run in Development Mode

Configure the `.env` file, then run the following command in the plugin directory:

```bash theme={null}
python -m main
```

For debugging details, see [Remote Debugging Plugins](/en/develop-plugin/features-and-specs/plugin-types/remote-debug-a-plugin).

### 3. Package and Deploy

Package the plugin:

```bash theme={null}
cd ..
dify plugin package ./yourapp
```

For publishing details, see the [Publishing Overview](/en/develop-plugin/publishing/marketplace-listing/release-overview).

## Plugin Categories

### Tool Labels

Category tags are defined in [`ToolLabelEnum`](https://github.com/langgenius/dify-plugin-sdks/blob/main/python/dify_plugin/entities/tool.py):

```python theme={null}
class ToolLabelEnum(Enum):
    SEARCH = "search"
    IMAGE = "image"
    VIDEOS = "videos"
    WEATHER = "weather"
    FINANCE = "finance"
    DESIGN = "design"
    TRAVEL = "travel"
    SOCIAL = "social"
    NEWS = "news"
    MEDICAL = "medical"
    PRODUCTIVITY = "productivity"
    EDUCATION = "education"
    BUSINESS = "business"
    ENTERTAINMENT = "entertainment"
    UTILITIES = "utilities"
    OTHER = "other"
```

## Plugin Type Reference

Dify supports several plugin types:

* **Tool plugin**: Integrate third-party APIs and services. See [Dify Plugin Development: Hello World Guide](/en/develop-plugin/dev-guides-and-walkthroughs/tool-plugin).
* **Model plugin**: Integrate AI models. See [Model Plugin](/en/develop-plugin/features-and-specs/plugin-types/model-designing-rules) and [Quick Integration of a New Model](/en/develop-plugin/dev-guides-and-walkthroughs/creating-new-model-provider).
* **Agent strategy plugin**: Customize Agent thinking and decision-making strategies. See [Agent Strategy Plugin](/en/develop-plugin/features-and-specs/advanced-development/reverse-invocation).
* **Extension plugin**: Extend Dify platform functionality, such as Endpoints and WebApp. See [Extension Plugin](/en/develop-plugin/dev-guides-and-walkthroughs/endpoint).
* **Data source plugin**: Serve as the document data source and starting point for knowledge pipelines. See [Data Source Plugin](/en/develop-plugin/dev-guides-and-walkthroughs/datasource-plugin).
* **Trigger plugin**: Automatically trigger workflow execution on third-party events. See [Trigger Plugin](/en/develop-plugin/dev-guides-and-walkthroughs/trigger-plugin).
