title: Publishing
---
summary: Explains how publishing of plugins works.
---
sort_key: 20
---
body:

Once you are happy with a plugin you can publish it so that other people
can use it.  Publishing of plugins happens through the
[Python Package Index :ext](https://pypi.python.org/) and can be
automatically done with the help of the lektor shell command.

## Enhance your setup.py

Before you can go about publishing your plugin there needs to be at least
some information added about it to your `setup.py`.  At least the keys
`name`, `version`, `author`, `author_email`, `url` and `description` need to be
set.  Here is a basic example of doing this:

```python
from setuptools import setup


setup(
    name='lektor-your-plugin',
    author='Your Name',
    author_email='your.email@your.domain.invalid',
    version='1.0',
    url='http://github.com/youruser/lektor-yourplugin',
    license='MIT',
    packages=['lektor_your_plugin'],
    description='Basic description goes here',
    entry_points={
        'lektor.plugins': [
            'hello-world = lektor_hello_world:HelloWorldPlugin',
        ]
    },
)
```

## Publishing

Once you augmented your `setup.py` you can go ahead with the publishing.  First
you need to make sure you have a PyPI account.  If you do not, you can
create one at [pypi.python.org :ext](https://pypi.python.org/pypi?%3Aaction=register_form).

Once you have done that, you can publish the plugin from the command line
with the `lektor` command:

```
$ cd path/to/your/plugin
$ lektor dev publish-plugin
```

When you use this for the first time it will prompt you for your login
credentials for `pypi`.  Next time it will have remembered them.