By default GoCheese is configured to use PyPI: -pypi, -pypi-json (if empty string, then do not try to update the metadata).

It gives several HTTP endpoints to work with:

/simple/ (-refresh option)

Simple API entrypoint. Each access to it asks for upstream if any state refresh is needed. Each refresh update the package’s metadata (if -pypi-json is enabled), available releases and their checksums.

/norefresh/ (-norefresh option)

Same as above, but does not refresh data from the upstream, completely read only mode.

/gpgupdate/ (-gpgupdate option)

Refresh the package state from the upstream as above, but additionally check and download missing GPG signatures. Intended to be used only manually, for example after database migration. It is probably useful to set $GOCHEESE_NO_SYNC=1 environment variable to turn off filesystem synchronization calls.

/pypi/ (-json option)

Read only (non refreshing) JSON API entrypoint, giving metadata for the packages and releases.

/ and /hr/*

Those URLs give human readable packages listing and package information.

To use GoCheese as a proxy, just configure your pip.conf:

index-url =