master v0.13.0 v0.12.2 v0.11.3 v0.10.2 v0.9.3 v0.8.3


How to write plugins for gqlgen
You are looking at the docs for the unreleased master branch. The latest version is v0.13.0.

Plugins provide a way to hook into the gqlgen code generation lifecycle. In order to use anything other than the default plugins you will need to create your own entrypoint:

Using a plugin

// +build ignore

package main

import (


func main() {
	cfg, err := config.LoadConfigFromDefaultLocations()
	if err != nil {
		fmt.Fprintln(os.Stderr, "failed to load config", err.Error())

	err = api.Generate(cfg,
		api.AddPlugin(yourplugin.New()), // This is the magic line
	if err != nil {
		fmt.Fprintln(os.Stderr, err.Error())

Writing a plugin

There are currently only two hooks:

Take a look at plugin.go for the full list of available hooks. These are likely to change with each release.