Remote debugging is the fastest way to iterate on a plugin. You run the plugin process on your laptop, and Dify treats it as if it were installed in the workspace. Saves, edits, and restarts take effect immediately.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.
Prerequisites
- A Dify workspace where you can access Plugins in the top-right corner.
- A scaffolded plugin project (see CLI if you haven’t created one yet).
- Python 3.12 and the plugin’s dependencies installed (
pip install -r requirements.txt).
Step 1: Get the Debug URL and Key
Open the Plugins page in Dify and click the debug icon (the small bug icon next to Install Plugin). A dialog shows the remote install host:port and an API key.
- Dify Cloud
- Self-hosted
The host is something like
debug-plugin.dify.dev:5003. The key is unique to your workspace; anyone with the key can attach a plugin, so do not share it.Step 2: Configure the Plugin’s .env
In your plugin project, copy .env.example to .env and fill in the values:
REMOTE_INSTALL_URL is the combined host:port from Step 1, not two separate variables.Step 3: Run the Plugin
From the plugin project directory:Step 4: Verify the Install
Go back to the Dify Plugins page. The plugin appears in the list, labelled with a debug marker. Other members of the workspace can also see and use it.
The plugin tile shows a debug indicator and your local terminal logs the first registration handshake. You’re attached.
Troubleshooting
Connection refused / cannot reach host
Connection refused / cannot reach host
The daemon is not listening on the address you put in
REMOTE_INSTALL_URL. On self-hosted setups, confirm the daemon container has PLUGIN_REMOTE_INSTALLING_ENABLED=true and that port 5003 is exposed. On cloud, double-check you copied the host:port exactly as shown in the debug dialog.Plugin starts but never appears in the Plugins list
Plugin starts but never appears in the Plugins list
The most common cause is a stale or wrong
REMOTE_INSTALL_KEY. Regenerate the key from the debug dialog and rerun python -m main. Also confirm the daemon log shows the incoming registration.`plugin_unique_identifier is not valid`
`plugin_unique_identifier is not valid`
The
author field in manifest.yaml or in provider/*.yaml doesn’t match a value the daemon accepts. Set it to your GitHub handle, then restart.Changes don't take effect
Changes don't take effect
The plugin process needs to restart after every edit; there’s no hot reload. Stop with
Ctrl+C and rerun python -m main.Related Resources
- CLI - Scaffold a plugin and set up
.env - Plugin Logging - Emit structured logs from inside your plugin
- Package as Local File and Share - Ship the plugin once debugging is done
Edit this page | Report an issue