Skip to content
🕵️‍♀️ Tooling for GraphQL. Compare schemas, validate documents, find breaking changes, find similar types, schema coverage
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode GUI (#15) Dec 3, 2018
actions fix(deps): update dependency actions-toolkit to v2.1.0 (#288) May 21, 2019
assets Beautiful readme (#42) Jan 6, 2019
docs docs: wrong command in `introspect` secion (#280) May 15, 2019
example docs: wrong command in `introspect` secion (#280) May 15, 2019
functions Use handler export (#48) Jan 6, 2019
packages chore(deps): update dependency graphql to v14.3.1 (#303) May 24, 2019
scripts Github - improve a bit (#67) Jan 25, 2019
website chore(deps): update dependency graphql to v14.3.1 (#303) May 24, 2019
.dockerignore Github Actions and v0.7.0 (#39) Jan 4, 2019
.editorconfig Setup Nov 16, 2018
.gitignore Added diff support for arrays and objects (#95) Mar 10, 2019
.npmrc Init Nov 15, 2018
.prettierignore @graphql-inspector organization (#14) Nov 23, 2018
.prettierrc Release v1.19.0 (#304) May 24, 2019
Dockerfile Release v1.19.0 (#304) May 24, 2019
LICENSE License Nov 16, 2018 Remove `head/` also from READMEs (#110) Mar 27, 2019
app.js Github Actions and v0.7.0 (#39) Jan 4, 2019
jest.config.js New optional argument or input field is dangerous + tests (#147) Mar 29, 2019
lerna.json Release v1.19.0 (#304) May 24, 2019
netlify.toml Live editor (#81) Feb 1, 2019
package.json fix(deps): update dependency netlify-lambda to v1.4.13 (#301) May 23, 2019
renovate.json Add label after PR was merged (#155) Mar 29, 2019
yarn.lock chore(deps): update dependency graphql to v14.3.1 (#303) May 24, 2019

GraphQL Inspector

npm version code style: prettier renovate-app badge Join the community on Spectrum

GraphQL Inspector ouputs a list of changes between two GraphQL schemas. Every change is precisely explained and marked as breaking, non-breaking or dangerous. It helps you validate documents and fragments against a schema and even find similar or duplicated types.

GraphQL Inspector


Major features:

  • Compares schemas
  • Finds breaking or dangerous changes
  • Validates documents against a schema
  • Finds similar / duplicated types
  • Schema coverage based on documents
  • Serves a GraphQL server with faked data and GraphQL Playground
  • Github Bot
  • Github Actions

GraphQL Inspector has a CLI and also a programatic API, so you can use it however you want to and even build tools on top of it.



yarn add @graphql-inspector/cli

# Core API for programatic usage
yarn add @graphql-inspector/core

Compare schemas

Compares schemas and finds breaking or dangerous changes.


$ graphql-inspector diff OLD_SCHEMA NEW_SCHEMA


import {diff, Change} from '@graphql-inspector/core';

const changes: Change[] = diff(schemaA, schemaB);


Find similar types

Finds similar / duplicated types.


$ graphql-inspector similar SCHEMA


import {similar, SimilarMap} from '@graphql-inspector/core';

const similar: SimilarMap = similar(schema, typename, threshold);


Check coverage

Schema coverage based on documents. Find out how many times types and fields are used in your application.


$ graphql-inspector coverage DOCUMENTS SCHEMA


import {coverage, SchemaCoverage} from '@graphql-inspector/core';

const schemaCoverage: SchemaCoverage = coverage(schema, documents);


Validate documents

Validates documents against a schema and looks for deprecated usage.


$ graphql-inspector validate DOCUMENTS SCHEMA


import {validate, InvalidDocument} from '@graphql-inspector/core';

const invalid: InvalidDocument[] = validate(documentsGlob, schema);


Serve faked GraphQL API

Serves a GraphQL server with faked data and GraphQL Playground


$ graphql-inspector serve SCHEMA
✅ Serving the GraphQL API on http://localhost:4000/

Introspect GraphQL server

Introspects a GraphQL Server and writes the result to a file


$ graphql-inspector introspect SCHEMA --write schema.json
✅ Introspection result saved to schema.json

Github Bot and Github Actions

Have a per-repository, self-hosted GraphQL Inspector service or deploy it with Docker.

# install
yarn global add @graphql-inspector/actions

# use

$ graphql-inspector-github
  "name": "app",
  "scripts": {
    "precommit": "graphql-inspector introspect schema.js --write schema.graphql && git add schema.graphql"
  "graphql-inspector": {
    "diff": true,
    "schema": {
      "ref": "master",
      "path": "schema.graphql"

Get Github annotations in your PRs.


CLI in more details


Path to a CommonJS or ES Module that exports an object


graphql-inspector coverage ./src/schema.js

Example with TypeScript:

graphql-inspector coverage ./src/schema.ts --require ts-node/register
// String
export default `
  type Query {
    hello: String

// GraphQLSchema
export default makeExecutableSchema({...});

// GraphQL Document
export default gql`
  type Query {
    hello: String

// IntrospectionQuery result
export default {
  data: {
    __schema: {

Pointer to a Github repository


graphql-inspector coverage github:kamilkisiela/graphql-inspector-example#master:schema.graphql



GraphQL File


graphql-inspector coverage schema.graphql
graphql-inspector coverage schema.gql



graphql-inspector coverage introspected-schema.json

URL to a GraphQL endpoint


graphql-inspector coverage https://localhost:3000/graphql


Glob pattern


graphql-inspector validate ./src/**/*.{js,jsx,tsx,graphql} https://localhost:3000/graphql

Supports TypeScript, JavaScript and GraphQL Files (Extensions: ts,tsx,js,jsx,graphql,gql,graphqls).


Find out what the CLI is capable of:

graphql-inspector --help
graphql-inspector similar --help


Some part of the library was ported to NodeJS from Ruby's GraphQL Schema Comparator


MIT © Kamil Kisiela

You can’t perform that action at this time.