Tools for managing Cosmos on-chain governance proposals.

Currently guvnor supports converting a chains’ governance proposals into an RSS feed.



If you are new to Golang, please follow the setup instructions here.


Before running the guvnor service, please ensure that you have the following environment variables set:

Var Description
GUVNOR_PORT The port that the service should run on (e.g.: 3000)
GUVNOR_CONFIG The full path to the config.toml file.
GUVNOR_DOMAIN The domain that the service is being run on.
REDIS_URL The Redis URL (e.g.: localhost:6379).
REDIS_PASSWORD The Redis password (leave blank if no password is set).
PROPOSAL_FEED_AUTHOR The name of the author, for the feed.
PROPOSAL_FEED_EMAIL The email address of the author, for the feed.



To setup the config, please run:

make setup-config

This will create a ~/.guvnor/config directory and copy the example config file into. It will also set the GUVNOR_CONFIG environment variable.

You can easily override the config location by changing GUVNOR_CONFIG.


Remove the placeholder content and update it with those that are relevant to the chains that you wish to generate feeds for. The structure of the config file is very simple, and you add a given chain like so:

chain_id = "<chain_id>"
api = "<api_host>"


You can run the guvnor service on any cloud or bare metal provider. A Heroku Procfile (please see here for how to launch this on Heroku) as also been included.

Please ensure that you have a Redis instance available, as the guvnor service makes use of Redis to cache requests (for up to 6 hours).


To install the binary, run:

make clean install


To then to start the service:

make run-guvnor-service

Once running, you may access the feed at <hostname>/<chain_id>/proposals/rss.



To run the linter:

make lint


To run the tests and see test coverage:

make tests


As mentioned above, Redis is used to cache frequently requested objects. To start a local Redis instance, run:

make docker-redis


View Github