Open-source project
jgraph/drawio-desktop avatar
jgraph/drawio-desktop

drawio-desktop: An Electron Wrapper That Puts Offline Diagramming First

Official electron build of draw.io. If you don't change the code and accept it is provided "as-is", you can use it for any purpose.

63,979 stars5,816 forksJavaScriptApache-2.0

At a glance

What is it?
drawio-desktop packages the draw.io editor into an offline Electron app. Its security posture and update policy define its limits as much as its features.
Who is it for?
Adopt drawio-desktop if you need a free, offline diagramming tool that runs on Windows, macOS, or Linux and you accept a project that is closed to outside contributions. Do not adopt it if you plan to modify the editor or expect commercial support, since the README states that support is provided without anything contractually binding and that purchasing draw.io for Confluence or Jira does not entitle you to commercial support for this desktop app.
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 9 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

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

From daily snapshots

Star history

  • jgraph/drawio-desktop63,979 ★ · +1,639
Star history
Repository2026-07-282026-11-13
jgraph/drawio-desktop62.3k64k

1,639 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

What drawio-desktop solves and who it is for

drawio-desktop exists to give you a diagramming application that runs locally, without a browser tab and without a network connection to the draw.io service. The README is explicit about the audience: people who want a desktop app that they can install on Windows, macOS, or Linux and use for any purpose under the GPL v3 license, provided they do not change the code. It is for teams that need to produce flowcharts, network diagrams, or UML sketches on machines that may be offline or behind a firewall. It is also for users who prefer a native window over a web page. The project does not aim to be a collaborative platform or a cloud service. It wraps the core draw.io editor in Electron, and the security section makes clear that the primary objective is to keep the app isolated from the Internet, apart from the update mechanism.

How the app is built and how it isolates itself

The repository is a thin Electron shell around the draw.io editor, which is included as a git submodule. The README says that all JavaScript files are self-contained and that the Content Security Policy forbids running remotely loaded JavaScript. This is a deliberate architecture choice: the editor code lives inside the app, and the app restricts its own network connections to itself. The consequence is that the app cannot transmit diagram data or usage analytics externally. The one exception is external media referenced inside a diagram, such as an image, background, or font loaded from a URL. When you open a diagram that contains such a reference, the app fetches that URL so the diagram renders correctly. That request can reveal your IP address to the server hosting the media, though no diagram content is sent. The README warns that opening a diagram from an untrusted source may trigger such a request. This is a real trade-off: the isolation is strong, but not absolute, and the user must be aware of what a diagram can pull in.

Getting it running: installation and launch commands

For end users, the simplest path is to download a built binary from the releases page. On Windows there are three flavours. The NSIS installer, named draw.io-<version>-windows-installer.exe, installs per-machine into Program Files and requires administrator privileges. The MSI installer, draw.io-<version>.msi, installs per-user into the user's profile and does not require admin rights, which makes it the right choice on locked-down machines. The portable build, draw.io-<version>-windows.zip, is extracted anywhere and run with draw.io.exe without any installation and therefore without admin rights, but it does not register file-type associations. There is also a Microsoft Store APPX build that installs per-user without admin rights. For developers who want to run from source, the README gives these steps: clone recursively with git clone --recursive https://github.com/jgraph/drawio-desktop.git, then run npm install in the root directory, then npm start. For debugging, use npm start --enable-logging. A note about symlinks: if you replace the submodule with a symlink to your own drawio checkout, you must also symlink the node_modules directory inside drawio/src/main/webapp. That detail matters for anyone who attempts local modifications.

The update check and how to disable it

The app checks github.com once a day for a newer version and downloads updates from an AWS S3 bucket owned by Github. This is the only external connection the app makes by default, according to the README. For centrally-managed installs, you can disable the check entirely by setting the DRAWIO_DISABLE_UPDATE=true environment variable or by passing --disable-update on launch. This is a concrete, project-specific control that admins will want. The fact that the update mechanism is separate from the diagramming engine is worth noting: even with updates disabled, the editor itself remains fully functional offline. The documentation is clear that the project's stance is to refuse any feature that enables external connections by default.

Where the project is the wrong tool

drawio-desktop is not the right choice if you need to modify the editor's behaviour. The README states that the project is closed to contributions. Maintainers rarely permit external changes. If you fork the project and build your own unsigned app, you can do so for personal use, but the README points to doc/BUILDING_FOR_PERSONAL_USE.md for that path. The project is also the wrong tool if you need commercial support. The README says support is provided on a reasonable business constraints basis, but without anything contractually binding, and that purchasing draw.io for Confluence or Jira does not entitle you to commercial support for the desktop app. If your organisation requires a support contract or an SLA, this project will not give you one. The portable Windows build is also a poor fit if you rely on file-type associations, because it does not register them.

A real alternative: the web version of draw.io

The most direct alternative is the hosted draw.io web application at diagrams.net, which is the repository homepage. The desktop app wraps the same core draw.io editor in Electron, and the README security section says it is designed to be completely isolated from the Internet, apart from the update process. If you would rather work in a browser tab, the web version is the alternative; if keeping the editor off the network matters most, that isolation is the desktop app stated goal.

Maintenance, upgrades, and licence implications

The project is actively maintained, with releases like v32.6.1 pushed on 2026-10-23, according to the repository data. The built-in update check is the main upgrade mechanism for end users; for admins who disable it, upgrades become a manual process of downloading new binaries from the releases page. How updates work depends on the install type: the Windows installer, macOS and AppImage builds download updates in the background, MSI, Windows zip, deb and rpm builds only tell you a new version is available, and Microsoft Store, Snap and Flatpak builds are updated by the store. The licence is GPL-3.0, and the README says that if you don't change the code and accept it is provided "as-is", you can use it for any purpose. If you do change the code, you take on the responsibility of building and signing your own binaries, and the project's closed-contribution policy means you cannot expect your changes to be merged upstream. The maintenance cost for an adopter is low if you use the official binaries, because you do not maintain the code. The cost rises if you fork, because you must track upstream releases manually and rebuild your fork each time. The README points to doc/RELEASE_PROCESS.md for the release process (GitHub Actions builds, signing and publishing), which is the part you would need to replicate for your own builds.

Editorial conclusion

Adopt drawio-desktop if you need a free, offline diagramming tool that runs on Windows, macOS, or Linux and you accept a project that is closed to outside contributions. Do not adopt it if you plan to modify the editor or expect commercial support, since the README states that support is provided without anything contractually binding and that purchasing draw.io for Confluence or Jira does not entitle you to commercial support for this desktop app. Before adopting, verify that your diagrams do not depend on external media, because the app fetches referenced URLs when a diagram opens, and confirm that your team can live with the daily update check or knows how to disable it with DRAWIO_DISABLE_UPDATE=true or --disable-update. The project's own security goal is isolation from the Internet, so treat any feature request that requires external connections as likely to be rejected.

Frequently asked questions

Is drawio desktop free?

Yes, under the GPL v3 license. The condition the project attaches is that you do not change the code and accept it as provided, in which case you can use it for any purpose. package.json records the licence as GPL-3.0-only and ships a LICENSE file.

What is Drawio and what does it do?

drawio-desktop is a diagramming desktop app built on Electron that wraps the core draw.io editor, which lives in this repository as a git submodule. The published artefacts are built binaries for Windows, macOS and Linux, and package.json names diagram, flowchart and UML as its keywords.

Is draw.io safe to use?

The app is designed to be isolated from the internet apart from the update check against github.com, the Content Security Policy forbids remotely loaded JavaScript, and no diagram data or usage analytics are sent externally. One exception is documented: a diagram that references an image, background or font by URL will fetch it when opened, which can reveal your IP address to that server.

how to install draw io desktop

The project publishes built binaries on its releases section rather than giving a package manager recipe. On Windows you pick between an NSIS installer that needs admin rights, an MSI that installs per-user, a portable build with no file-type associations, and a Microsoft Store build, and the README warns that a Linux AppImage needs AppImageLauncher 3.0 or no AppImageLauncher at all.

drawio desktop vs web

The desktop build wraps the same core draw.io editor in Electron and is designed to be completely isolated from the internet except for the update process, which can be turned off with the DRAWIO_DISABLE_UPDATE environment variable or a --disable-update flag. The project's homepage is the web version at diagrams.net.

What program opens drawio files?

The project's own desktop application is the Electron wrapper around the core draw.io editor, distributed as built binaries on the releases page. The portable Windows build registers no file-type associations at all, so opening a diagram by double click depends on which of the Windows builds you installed.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
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/jgraph-drawio-desktop.svg)](https://hysenlabs.com/projects/jgraph-drawio-desktop)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/jgraph-drawio-desktop.svg)](https://hysenlabs.com/projects/jgraph-drawio-desktop)

Was this useful?