Skip to content

Publishing your plugin

All the plugins MUST be server from domain. This is to ensure that the plugin is served from a secure and reliable source, and that published plugins, once checked and approved, are not modified.

A new version of the plugin must be published as a new release, with higher version number.

Properly published plugins are uploaded to URL like this, where 3 is your user Id, windy-plugin-my-plugin is the plugin name and 0.1.1 is the plugin version.

Assuming, that your repository is on GitHub, either private or public, you can publish your plugin via GitHub Actions.

Setup GitHub Workflow

1. Create a new Windy API key

Create your Windy Plugins API key at

Create API key

2. Add the API key to your GitHub repository

In your GitHub repository, go to Settings, Secrets and Variables, Actions. Click New repository secret and create secret WINDY_API_KEY with the API key you created at

Add API key

3. Run the "publish-plugin" action

To publish the plugin, go to Actions, publish-plugin, Run workflow and select the branch from which you want to publish the plugin.

Run workflow

4. Get URL of your published plugin

After the workflow is finished, go to the job log, expand the Publish Plugin stage and copy the plugin installation URL.

Get Plugin URL

My plugin is published, what's next?

Suppose, you have published your plugin and you have the plugin URL that looks like this

In case of private plugin (marked as private: true in pluginConfig.ts) feel free to share this URL with your friends or within your corporation.

If you want to offer plugin to other users let us know here so we can review and approve your plugin.

Once approved, your plugin will be available to all users.

Publishing your plugin manually

If you can not ue GitHub Actions, you can publish your plugin manually. Just create a new release in your GitHub repository and upload the plugin to the server, via the script like this:



OWNER="Put your username here"

SHA=$(git rev-parse --short HEAD)

REPOSITORY="Put URL of your repository here"


cd ./$DIR
echo "Creating plugin archive..."
echo "{\"repositoryName\": \"${REPOSITORY}\", \"commitSha\": \"${SHA}\", \"repositoryOwner\": \"${OWNER}\"}" > ./plugin-info.json
jq -s '.[0] * .[1]' ./plugin.json ./plugin-info.json > ./plugin2.json
rm ./plugin.json && mv ./plugin2.json ./plugin.json
tar cf ./plugin.tar --exclude='./plugin.tar' .
echo "Publishing plugin..."
curl -s --fail-with-body -XPOST '' -H "x-windy-api-key: ${WINDY_API_KEY}" -F "plugin_archive=@./plugin.tar"
rm ./plugin.tar