Skip to content
GraphQL code generator with flexible support for custom plugins and templates
Branch: master
Clone or download
Latest commit 985e30f Apr 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci CI test result reporting (#1749) Apr 21, 2019
dev-test change generic parameter name to prevent clash (#1682) Apr 14, 2019
docs added dotenv to the docs Apr 23, 2019
packages v1.1.1 Apr 23, 2019
website v1.1.1 Apr 23, 2019
.gitignore CI test result reporting (#1749) Apr 21, 2019
.prettierignore added stub for operation variables Dec 7, 2018
.prettierrc refactor to use graphql-toolkit tools Jan 30, 2019 Refactor TypeScript plugins (#1353) Mar 14, 2019
LICENSE Update badge Mar 23, 2019
jest.config.js CI test result reporting (#1749) Apr 21, 2019
logo.png added logo Oct 11, 2017
package.json Update dependency react-apollo to v2.5.5 (#1755) Apr 22, 2019
renovate.json rename all packages to use scopes @graphql-codegen Mar 18, 2019
yarn.lock Update dependency react-apollo to v2.5.5 (#1755) Apr 22, 2019

GraphQL Code Generator

npm version CircleCI code style: prettier renovate-app badge

GraphQL Codegen 1.0 is here!

GraphQL Code Generator is a tool that generates code out of your GraphQL schema. Whether you are developing a frontend or backend, you can utilize GraphQL Code Generator to generate output from your GraphQL Schema and GraphQL Documents (query/mutation/subscription/fragment).

By analyzing the schema and documents and parsing it, GraphQL Code Generator can output code at a wide variety of formats, based on pre-defined templates or based on custom user-defined ones. Regardless of the language that you're using, GraphQL Code Generator got you covered.

GraphQL Code Generator let you choose the output that you need, based on plugins, which are very flexible and customizable. You can also write your own plugins to generate custom outputs that matches your needs.

You can try this tool live on your browser and see some useful examples. Check out GraphQL Code Generator Live Examples.

We currently support and maintain these plugins (TypeScript, Flow, React, Angular, MongoDB, Stencil, Reason and some more), and there is an active community that writes and maintains custom plugins.

Quick Start

Install using yarn:

$ yarn add -D graphql @graphql-codegen/cli

GraphQL Code Generator lets you setup everything by simply running the following command:

$ graphql-codegen init

Question by question, it will guide you through the whole process of setting up a schema, selecting plugins, picking a destination of a generated file and a lot more.

If you don't want to use the wizard, create a basic codegen.yml configuration file, point to your schema, and pick the plugins you wish to use. For example:

schema: http://localhost:3000/graphql
    - typescript

Then, run the code-generator using graphql-codegen command:

$ graphql-codegen

The command above may fetch (for example) the following GraphQL schema:

type Author {
  id: Int!
  firstName: String!
  lastName: String!
  posts(findTitle: String): [Post]

type Post {
  id: Int!
  title: String!
  author: Author!

type Query {
  posts: [Post]

schema {
  query: Query

And generate the following TypeScript typings:

interface Query {
  posts?: Post[];

interface Post {
  id: number;
  title: string;
  author: Author;

interface Author {
  id: number;
  firstName: string;
  lastName: string;
  posts?: Post[];

interface PostsAuthorArgs {
  findTitle?: string;


Besides our docs page, feel free to go through our published Medium articles to get a better grasp of what GraphQL Code Generator is all about:


Feel free to open issues and pull requests. We're always welcome support from the community.

To run this project locally:

  • Use Node >= 8
  • Make sure that you have the latest Yarn version (
  • Clone this repo using git clone
  • Run yarn on the root dir (it has a Yarn workspace defined, so all the packages dependencies will be installed)
  • Run yarn build to build all core packages and plugins
  • Run yarn test to make sure everything works


GitHub license


You can’t perform that action at this time.