Skip to content


The itch module contains the code necessary to push projects to using the butler tool.


Enumerations for platform types.


The handler for publishing content to using Butler.


  • author (str): The username that is publishing content.
  • project (str): The project that the author is publishing content for.
  • bin (str): The path to the Butler executable.
  • tag_rules (dict): A dictionary containing rules for additional tags.


__init__(self, author, project, **kwargs)

Initialize a Butler class.


  • author (str): The user that will submit a project.
  • project (str): The project that the user will submit.


  • exec (str): The path to the Butler executable file. Defaults to "butler".

push(self, file: str, **kwargs)

Push the file to the page.


  • file (str): The path to the file to push.
  • **kwargs: Arbitrary keyword arguments Kwargs:
  • user_version (str): The user version to use, if any.
  • with_tag_rule (str): The tag rule to use. This is used as a channel.
  • with_custom_tag (str): The tag to use at the end of the tag rule name.

add_tag_rule(self, name: str, platform: ButlerPlatformType)

Create a new rule for the project's channel tags.


  • name (str): The rule that will determine what platform to store it under.
  • platform (ButlerPlatformType): The platform for that rule.