You are viewing the documentation of TeamCity 9.x, which is not the most recently released version of TeamCity.
View this page in TeamCity 2018.x documentation or refer to the listing to choose the documentation corresponding to your TeamCity version.

Skip to end of metadata
Go to start of metadata

TeamCity functionality can be significantly extended by a custom plugin. TeamCity plugins are written in Java (Kotlin, Groovy and JRuby can also be used), run within the TeamCity application and have access to internal entities of the TeamCity server or agent.

Aside from this documentation, please refer to the following sources:

If you need more information or have a question regarding the API, please do not hesitate to post your question into TeamCity Plugins forum. Please use the  search before posting to avoid possible duplication of discussions.

Consider making your plugin public and submit it to be listed on the plugins page.

Please refer to corresponding section for further details.

Plugin Quick Start

See Getting Started with Plugin Development to create your first plugin with Maven. Developing Plugins Using Maven provides more details.

There are also several approaches to create plugins provided by third parties or existing out of the main TeamCity development line:

See also a post on the very first steps for setting up the plugin development environment.


  1. Gradle way to create plugins for TeamCity: wiki
    IDEA project to create plugins for TeamCity: blog post, repository

  2. Another Gradle plugin supporting TeamCity plugins development. (plugins forum thread)

  3. Can I add custom text fields for my plugin in Global Setting ??