openCypher
The open specification of Cypher, the graph pattern language from Neo4j: a grammar, a compatibility test kit and improvement proposals, now used to move Cypher implementations toward the ISO GQL standard.
- What it is
- Graph databases
- Type
- Open source
- Made by
- Neo4j, Inc.
- License
- Apache 2.0
- Facts checked
- 24 October 2026
What it is
Cypher describes graph patterns as ASCII art, such as (a:Person)-[:KNOWS]->(b:Person), inside SQL-like clauses: MATCH, WHERE, WITH, RETURN, ORDER BY. openCypher publishes what another database needs to implement it: the Cypher Query Language Reference (Version 9), a grammar in ISO WG3 BNF with ANTLR and EBNF versions, a Technology Compatibility Kit (TCK) of Cucumber scenarios that define how each feature must behave, and Cypher Improvement Proposals (CIPs). It ships no database or query engine; each implementer writes its own planner, runtime and storage. Neo4j says more than a dozen graph databases support Cypher, among them Memgraph, Amazon Neptune, Apache AGE inside PostgreSQL, TigerGraph (inside GSQL) and PuppyGraph.
Since ISO published GQL (ISO/IEC 39075) on 11 April 2024, language design has moved to ISO, and openCypher’s job is to pave the road to GQL. openCypher 9 is frozen, and changes are made only by adding GQL features to the grammar and specification, in releases named after the target standard: 2024.1 in April 2025, 2024.2 in July 2025 and 2024.3 in March 2026, which added the SHORTEST path syntax. The repository is copyright Neo4j and Apache 2.0 licensed; since January 2026 its README says it is not an official Neo4j product, is maintained by Neo4j employees or contributors in a personal or experimental capacity, and comes unsupported.
Why teams pick it
- Patterns read like the graph they match, and the same core syntax works across many products
- The TCK gives implementers a concrete conformance test, not just prose
- Cypher was a major input to GQL, and openCypher’s grammar is being extended toward it, so Cypher queries and skills carry forward
Watch out for
- A specification, not software: each product supports a different subset and adds its own extensions, so queries don’t always move between engines unchanged
- openCypher 9 is frozen and only GQL features are added, so vendor extensions beyond that are not specified anywhere shared
- Low activity and no support commitment: a handful of commits a year, and the README describes the repository as unofficial and unsupported
- Data model
- Property graph
- Query language
- Cypher (openCypher 9, frozen), extended toward ISO GQL
Alternatives
What all graph databases have in common →Compare side by side →How it fits with other technologies
See it in a real stack
No architecture uses openCypher yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2015–2026
Neo4j created Cypher as the query language for its own database. On 21 October 2015, at GraphConnect San Francisco, CEO Emil Eifrem launched openCypher to make it available to any data store, tool or application, the way SQL became a common language for relational databases, with support from Oracle, Databricks, Tableau and Structr. Neo4j promised reference documentation, a TCK, a reference parser under Apache 2.0 and a formal specification of the syntax.
From February 2017 to March 2019 the openCypher Implementers Group met virtually and in person to work on multiple graphs, subqueries and path queries, and Cypher for Apache Spark appeared in 2017. Work on property graph extensions to SQL fed proposals for a new standard language, which ISO published as GQL in April 2024, with Cypher as a major input.
In May 2024 Neo4j said openCypher would “pave the road to GQL”: openCypher 9 would be frozen and new releases would only add GQL features. Three such grammar releases followed between April 2025 and March 2026, and in January 2026 a disclaimer was added that the repository is not an official Neo4j project.
Why it’s built this way
- Open the language, keep the database
- Neo4j wanted Cypher to become a common language for property graphs, the way SQL is for tables, which only works if other vendors can implement it freely.
- A test kit instead of a reference engine
- A TCK lets each vendor self-certify which Cypher features it supports while building its own planner and storage.
- Follow GQL instead of evolving separately
- Once ISO took over language design, a separate Cypher roadmap would split the ecosystem, so openCypher only adds features from the standard.
Timeline
- 2015
Neo4j launches openCypher with Oracle, Databricks, Tableau and Structr
- 2017
openCypher Implementers Group meetings begin; Cypher for Apache Spark
- 2019
Last Implementers Group meeting, in March
- 2024
ISO publishes GQL; openCypher 9 is frozen
- 2025
First GQL-aligned grammar release, 2024.1, in April
- 2026
Release 2024.3 adds SHORTEST; repository marked unofficial
- Neo4j blog: Meet openCypher, the open source SQL for graphs (21 Oct 2015)
- openCypher: openCypher 9 history (Implementers Group meetings 2017–2019)
- Neo4j blog: openCypher will pave the road to GQL for Cypher implementers (May 2024)
- GitHub: opencypher/openCypher releases (2024.1, 2024.2, 2024.3)
- Neo4j blog: ISO GQL, a defining moment in database innovation (Apr 2024)
Sources10 · facts checked 24 October 2026
- openCypher: home page (specification evolving towards ISO/IEC 39075 GQL, published 11 April 2024)
- openCypher: resources (Cypher Query Language Reference Version 9, grammars, TCK)
- GitHub: opencypher/openCypher README (CIPs, grammar, TCK, disclaimer, Apache 2.0)
- GitHub: opencypher/openCypher releases (2024.3 adds SHORTEST)
- Neo4j blog: openCypher will pave the road to GQL for Cypher implementers (May 2024)
- Memgraph docs: home (Cypher)
- Amazon Neptune User Guide: What is Amazon Neptune? (Gremlin, openCypher, SPARQL)
- Apache AGE README (openCypher in PostgreSQL)
- GSQL docs: openCypher in GSQL
- PuppyGraph docs: introduction (openCypher and Gremlin)
