GraphQL IDE Monorepo
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:
- a to-specification official language service (see: API Docs)
- a comprehensive LSP server and CLI service for use with IDEs
- a codemirror mode
- a monaco mode (in the works)
- an example of how to use this ecosystem with GraphiQL.
- examples of how to implement or extend GraphiQL.
Latest Stable Ecosystem
email@example.com and ecosystem are organized as below. Any further changes to
firstname.lastname@example.org are made against
As we re-write for
email@example.com ecosystem, this monorepo will contain an 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
How To Setup/Implement GraphiQL
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 a command-line interface for running GraphQL Language Service Server for various IDEs.
An almost fully LSP compliant server process backing the GraphQL Language Service.
Utilities to support the GraphQL Language Service.
Browser & Runtime Support
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
rengenerator-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.
Maintainers of this repository regulary review PRs and issues and help advance the GraphiQL roadmap
Originally this was three seperate repositories
- @leebyron - original author of all libraries
- @asiandrummer - original creator of GraphiQL
- @wincent - early co-author and maintainer
- @lostplan - maintained the language service ecosystem until about 2017
- @IvanGoncharov -
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, scaleable, 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.
- Discord - Most discussion outside of github happens on our Discord Server
- Twitter - @GraphiQL and #GraphiQL
- GitHub - Create feature requests, discussions issues and bugs above
- Working Group - Yes, you're invited! Monthly planning/decision making meetings, and working sessions every two weeks on zoom! Learn more.