Open-source project
neo4j/neo4j-browser avatar
neo4j/neo4j-browser

Neo4j Browser classic: the open source UI that Neo4j has moved on from

Neo4j Browser is the general purpose user interface for working with Neo4j. Query, visualize, administrate and monitor the database.

828 stars381 forksTypeScriptGPL-3.0

At a glance

What is it?
The repository holding the classic Neo4j Browser, the graphical front end for querying and visualizing a graph database. It is no longer bundled with the server and receives only limited maintenance.
Who is it for?
This repository suits someone who needs to read or patch the classic Neo4j Browser, or who wants to run that interface against a Neo4j instance they control, and it remains a useful reference for how a graph client is put together. It does not suit a new deployment, because the current Browser at browser.neo4j.io is built from closed source artefacts and this code is no longer bundled with the server.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The warning at the top of the README comes first

The first thing this repository tells you is that the new Neo4j Browser is not built or maintained from it. The current Browser, hosted at browser.neo4j.io, is built and released from closed-source artefacts shared with Neo4j Console and Neo4j Desktop. What lives here is the classic Neo4j Browser, the general purpose graphical interface for Neo4j that lets you query, visualize, administer and monitor the database. Two further facts follow from that split. The classic Browser is no longer bundled with the Neo4j server and is not available as a fallback from the new Browser, and this repository receives limited maintenance. The repository is not archived and the last push was on 2026-10-16, but the tagged releases stop at 2025.8.0 from 2025-08-07, and the package manifest still carries version 2025.6.0.

Running the classic Browser locally with yarn

Getting the interface up on a developer machine is a small job with an old toolchain. The README states that running Neo4j Browser locally requires Node.js version 12.4.0 or later and that yarn is used for dependencies, installed globally with npm install -g yarn. Installing and starting the development server, which comes up on port 8080, takes two commands:

bash
yarn install
yarn start

There is a production mode as well:

bash
yarn start-prod

To actually use it you need something to connect to, since the Browser is a client and not a database. The README points at Neo4j Desktop as a simple way to get a running instance, which by default exposes the Bolt port on localhost:7687 for the Browser to attach to. The same note explains why the repository keeps a canary deployment, browser-canary.graphapp.io, where the latest unreleased classic Browser build can be tried against an instance.

The neo4j-arc subproject is deliberately sealed off

The project structure section explains a design choice that shapes the codebase. Browser has a subproject of reusable components bundled together and exposed as neo4j-arc. Rather than set up monorepo tooling, the project configured eslint to isolate neo4j-arc and gave it a separate build step. The import rule is strict in both directions. Code inside Browser may import from neo4j-arc only through neo4j-arc aliases, as if it were a separate project, and neo4j-arc is not allowed to import any code from outside its own folder. So the reusable layer has no path back into the application, and the application reaches it only through the alias boundary. The repository root mirrors this structure with src/, scripts/, build_scripts/, e2e_tests/, test_utils/, docs/, docker/ and an auth_server directory, plus a pom.xml for the parts that are not TypeScript.

Cypress end to end tests take a database version and a password

The testing section is the most detailed part of the README, and it is aimed at people running the suite against a real server. Unit tests and end to end tests run automatically on every pull request. The unit suite is a single command that runs a linter and then the tests, and the end to end suite uses Cypress. Running the Cypress tests needs docker installed and ports 7687 and 8080 free of anything else. Against your own server, the command takes an environment payload:

bash
yarn e2e-local --env browser-password=hunter2,server=4.2

The documented options are a server version of 3.5, 4.0, 4.1, 4.2 or 4.3 with 4.3 as the default, an edition of enterprise, community or aura with enterprise as the default, a browser password defaulting to newpassword, an include-import-tests flag defaulting to false, and a bolt-url defaulting to localhost:7687. Two settings can only be given as environment variables, CYPRESS_E2E_TEST_ENV and CYPRESS_BASE_URL, because they decide how the run bootstraps and where the runner points.

Jest, webpack and a formatting pass before every commit

The build and lint toolchain is conventional for a TypeScript web application of this age. The production build runs webpack through build_scripts/webpack.config.js with NODE_ENV set to production, and the package manifest points the entry point at dist/index.html. Tests are Jest, with a jest.config.js at the root, a watch mode exposed as the dev script, a coverage script and an updateSnapshot script. Linting is eslint over TypeScript and TSX, formatting is prettier-eslint across source, test, script and build directories, and precommit runs lint-staged. The manifest also carries a neo4jDesktop block with an apiVersion of 1.4.0 and a list of properties to copy into the plugin manifest, which is how the Browser registers itself with Neo4j Desktop.

GPL-3.0, with the licence files spelled out

Licensing is stated in three places, which is unusual enough to be worth noting. The package manifest declares GPL-3.0, and the repository root holds LICENSE, a LICENSES.txt and a NOTICE.txt. A GPL-3.0 client means that anyone who distributes a modified build has obligations under the copyleft terms, while running the classic Browser locally against your own database is a different matter entirely. For a user rather than a packager, the more useful licence fact is that the current Browser is a closed-source product, so the GPL terms on this repository do not extend to the interface most people actually use today. The path forward for anyone evaluating the classic interface is therefore to work from this source, or to look at the canary deployment rather than expecting the classic build to appear in a current Neo4j server download.

Editorial conclusion

This repository suits someone who needs to read or patch the classic Neo4j Browser, or who wants to run that interface against a Neo4j instance they control, and it remains a useful reference for how a graph client is put together. It does not suit a new deployment, because the current Browser at browser.neo4j.io is built from closed source artefacts and this code is no longer bundled with the server. Before building, decide whether you need the classic interface at all, and if you do, expect the legacy dependency versions in the README to be the harder part of the setup.

Frequently asked questions

Is the Neo4j Browser in this repository the current one?

No. The README states the new Neo4j Browser, hosted at browser.neo4j.io, is built and released from closed-source artefacts shared with Neo4j Console and Neo4j Desktop. This repository holds the classic Neo4j Browser, which is no longer bundled with the server and receives limited maintenance.

How do I run the classic Neo4j Browser locally?

Install dependencies with yarn install and start the development server with yarn start, which serves it on http://localhost:8080. The README requires Node.js 12.4.0 or later and yarn, and a running Neo4j instance, available by default on localhost:7687.

How do I run the Neo4j Browser Cypress tests against my own server?

Use yarn e2e-local with an environment payload, for example yarn e2e-local --env browser-password=hunter2,server=4.2. The documented options cover the server version, the edition, the browser password, include-import-tests and the bolt url.

What is the neo4j-arc subproject in the Neo4j Browser code?

It is a set of reusable components bundled together and exposed as neo4j-arc, with its own build step and eslint isolation. Browser code may import from it only through neo4j-arc aliases, and neo4j-arc may not import from outside its own folder.

What licence does the classic Neo4j Browser use?

GPL-3.0, declared in the package manifest, with LICENSE, LICENSES.txt and NOTICE.txt in the repository root.

Official sources

  1. License: GPL-3.0
  2. neo4j/neo4j-browser on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/neo4j-neo4j-browser.svg)](https://hysenlabs.com/projects/neo4j-neo4j-browser)

Was this useful?