Security Notice: All versions of
1.4.7are vulnerable to an XSS attack in cases where the GraphQL server to which the GraphiQL web app connects is not trusted. Learn more in the graphiql
GraphiQL is the reference implementation of this monorepo, GraphQL IDE, an official project under the GraphQL Foundation. The code uses the permissive MIT license.
Whether you want a simple GraphiQL IDE instance for your server, or a more advanced web or desktop GraphQL IDE experience for your framework or plugin, or you want to build an IDE extension or plugin, you've come to the right place!
The purpose of this monorepo is to give the GraphQL Community:
As we re-write for
[email protected] ecosystem, this monorepo will contain a sdk and plugins.
Breaking Changes & Improvements: several interfaces are being dropped for new ones are arriving for GraphiQL 1.0.0! Read more in this issue
Learn more about GraphiQL in
Provides monaco editor with a powerful, schema-driven graphql language mode.
Provides CodeMirror with a parser mode for GraphQL along with a live linter and typeahead hinter powered by your GraphQL Schema
Provides language services for LSP-based IDE extensions
Provides a CLI for the language service server
Many of these packages need to work in multiple environments.
By default, all typescript packages target
graphql-language-service-cli are made for the node runtime, so they target
codemirror-graphql and the
graphiql browser bundle use the
.browserslistrc, which targets modern browsers to keep bundle size small and keep the language services performant where async/await is used, and especially to avoid the requirement of
regenerator-runtime or special babel configuration.
last 2 versions Firefox ESR not dead not IE 11 not ios 10 maintained node versions
To be clear, we do not support Internet Explorer or older versions of evergreen browsers.
To get setup for local development of this monorepo, refer to DEVELOPMENT.md
This is an open source project, and we welcome contributions. Please see CONTRIBUTING.md for details on how to contribute.
This repository is managed by EasyCLA. Project participants must sign the free GraphQL Specification Membership agreement before making a contribution. You only need to do this one time, and it can be signed by individual contributors or their employers.
To initiate the signature process please open a PR against this repo. The EasyCLA bot will block the merge if we still need a membership agreement from you.
Please note that EasyCLA is configured to accept commits from certain GitHub bots. These are approved on an exception basis once we are confident that any content they create is either unlikely to consist of copyrightable content or else was written by someone who has already signed the CLA (e.g., a project maintainer). The bots that have currently been approved as exceptions are:
Maintainers of this repository regularly review PRs and issues and help advance the GraphiQL roadmap
Without these amazing past maintainers, where would we be?!
vscode-graphql, and contributor to much of the ecosystem. Thanks Divy!
Maintainers who are currently active (to varying degrees, please contact us via our discord channels!):
Thank you graphql community for all the help & support! I did it all for you, and I couldn't have done it without you - @acao
The door is open for proposals for the new GraphiQL Plugin API, and other ideas on how to make the rest of the IDE ecosystem more performant, scalable, interoperable and extensible.
Feel free to open a PR to create a document in the
Eventually we hope to move these to a repo that serves this purpose.