Determine how Taxi is processed

Plugins define how a compiled taxi document will be processed. Typically, this involves creating models in some language.

Currently, there's only a single generator provided - the Kotlin generator. However, the plugin system of Taxi is evolving rapidly, and we intend to support loading externally provided plugins.

Plugins can be used to output a taxi model in a specific language - or to modify the source from a generator.

Plugins are either packaged internally with Taxi, or you can write your own, which can be downloaded and included.


Writing your own plugins

Declaring a plugin

Plugins are declared in the plugins section of the taxi.conf file. Declare the name of the plugin to enable, followed by configuration options for that plugin

plugins: {
    'taxi/kotlin' {  // Name of the plugin
        // plugin config goes here
pluginSettings: { // Optional
    repositories: [
    localCache: '~/.taxi.plugins'

Configuring a plugin

Each plugin determines it's own configuration. The PluginWithConfig<T> interface defines the type of config that a plugin will consume. For an example, check out the Kotlin plugin.

Edit on Github