mrkeyoor.com_
Wed 09 Sept 06:49 UTC
Dev Toolsevaluationupdated 09 Sept 2026

drawio-desktop review

draw.io Desktop is the official Electron wrapper for the draw.io diagram editor, packaged for Windows, macOS, and Linux. It lets people make flowcharts, network diagrams, UML, and other visual documents in local files without an account or a cloud service.

Verdict

Our draw.io Desktop run installed 323 packages in 11 seconds, then passed all 158 tests in 5 seconds with 0 audit findings. That is strong evidence for trying the official binary when you need an offline, account-free diagram editor. Avoid it as an upstream contribution target, and test file watching plus managed deployment before standardizing version 31.4.5 across a company.

We ran it

Lab card: what happened when we ran drawio-desktopScreenshot of drawio-desktop (www.diagrams.net)
Install✓ · 11s323 packages · 145 MB
Buildn/ano build script
Tests✓ · 5s158 passed · 0 failed of 158 (node:test)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo3554 files~501,546 lines of source · 169.6 MB · 7 CI workflows

Answers from our run

Does drawio-desktop build from source?

Dependencies installed in 11 seconds (323 packages), and the project has no separate build step. We cloned commit f5cc222 into a clean Debian container with 3 CPUs and no project-specific setup.

Do drawio-desktop's tests pass?

Yes: 158 of 158 passed when we ran the project's own test command (node:test). Some failures need services or credentials a bare container does not have.

Does drawio-desktop have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use drawio-desktop?

Outside developers hoping to land code changes upstream: the maintainers say the project is closed to contributions and that accepted exceptions are extremely rare.

What are the alternatives to drawio-desktop?

draw.io, Excalidraw, Umbrello. Our draw.

Setup4/5Official binaries are simple; source work needs a submodule and signing choices
Docs4/5Install, privacy, and fork builds are clear; fleet guidance is still thin
Community3/563,000 stars and active issues, but outside code contributions are closed
Maturity5/5Version 31.4.5 ships across three operating systems with a passing suite

Who it’s for

People who want the draw.io editor as an offline desktop application with local file handling.
Teams that need common diagram formats and exports without sending diagram contents to a hosted editor.
Windows users who need a choice of machine-wide, per-user, portable, or Store installation.
Developers who are comfortable keeping a private fork and distributing only unsigned personal builds.

Who it’s NOT for

Outside developers hoping to land code changes upstream: the maintainers say the project is closed to contributions and that accepted exceptions are extremely rare.
Fleet administrators expecting finished mass-deployment guidance: open issue 2461 says documentation for silent installs, locked configuration, managed updates, and MDM is still thin.
Workflows that depend on reliable background file watching: open issue 2541 reports that version 31.4.5 registers no watcher when no app window is focused and can misroute events between windows.
Linux users committed to AppImageLauncher 2.2.0: the README says the static AppImage runtime needs a 3.0 beta release of that launcher or no launcher at all.
Anyone who assumes an untrusted diagram cannot cause outbound traffic: embedded remote images, backgrounds, or fonts are fetched when opened and can reveal the user's IP address.
Organizations planning to distribute a custom fork as an ordinary signed app: personal builds are unsigned, unsupported, and can trigger Gatekeeper or SmartScreen warnings.

Setup reality

Our npm install succeeded in 11 seconds, adding 323 packages and using 145 MB. The repository has no generic build script or target, so that step was skipped. Its Node test suite finished in 5 seconds with 158 passed and 0 failed; npm audit found 0 known vulnerabilities at every severity.

Running from source needs Node.js 22.12+, npm, and a recursive clone because the editor is a git submodule. No account or service credential is required. Official release creation depends on private signing infrastructure, so forks must opt into unsigned packaging.

Published binaries avoid the source workflow. Windows installation behavior varies by package, and Linux AppImageLauncher users need its 3.0 beta or must remove it. The app checks for updates unless disabled, while externally referenced diagram media can still make network requests.

Version 31.4.5 puts the draw.io editor in a local desktop shell

draw.io Desktop 31.4.5 wraps the separate draw.io web editor in Electron and packages it for Windows, macOS, and Linux. The main reason to choose it is local work: diagrams live in files, the application requires no account, and diagram content is not sent to an analytics or storage service. It is the familiar draw.io editor with desktop file handling, native packaging, command-line export, and operating-system integration around it.

The repository division matters to anyone reading or changing the code. The Electron shell lives here, while the editor is the jgraph/drawio submodule. A normal clone therefore misses a large part of the application; the README requires a recursive clone. Our measured checkout included that source and contained 3,554 files, about 501,546 lines of source, and 169.6 MB before npm dependencies were installed.

Version 31.4.5 stays offline unless updates or remote media intervene

Version 31.4.5 ships its JavaScript inside the application and uses a Content Security Policy that blocks remotely loaded scripts. The README says the app sends no diagram data and no usage analytics. Its intended network exception is the update process, which checks GitHub at startup and downloads releases from GitHub-owned S3 storage. Administrators can turn that check off with DRAWIO_DISABLE_UPDATE=true or the --disable-update launch flag.

A diagram may still contain an image, background, or font referenced by URL. Opening that file fetches the external resource and can expose metadata such as the viewer's IP address to its server. No diagram body is sent, according to the project, but the request itself matters in a sensitive environment. For a strict offline workflow, disable updates and inspect or strip remote references before opening diagrams received from someone else.

What happened when we ran it

Our sandbox installed 323 npm packages in 11 seconds, and the dependency tree occupied 145 MB. The repository exposes no generic build script or target, so our harness skipped the build step rather than substituting a release command. We tested commit f5cc222 inside an unprivileged container with 3 CPUs and 8 GB of RAM. Installation completed without an error in that environment.

The Node test command finished in 5 seconds with 158 passed and 0 failed out of 158. Npm audit reported 0 known vulnerabilities: 0 critical, 0 high, 0 moderate, and 0 low. The repository scan found 7 CI workflow files, no Dockerfile, and no tests directory, although the package script points directly to test files under src/test. These results cover repository checks, not a graphical launch on all 3 supported operating systems.

The missing generic build target is worth reading literally. Package scripts exist for Windows, Linux, Snap, and other release jobs, but those commands are platform packaging and may publish artifacts. The personal-build guide tells fork owners to invoke electron-builder with a platform config and --publish never. Our lab correctly avoided treating a release script as an ordinary source build.

Windows offers three packages, while AppImageLauncher needs version 3.0

Windows users get 3 main downloads: an administrator-only machine installer, a per-user MSI, and a portable executable without file associations. A Microsoft Store package is another per-user route. Native ARM64 installer and portable builds support Windows 11 on Arm; version 31.4.5 enables auto-update there after older ARM64 releases shipped with it disabled. Existing ARM64 users must install the newer build manually once.

Linux has deb, rpm, and AppImage choices. Since version 31.4.2, the AppImage uses a static runtime and no longer needs the obsolete libfuse2. That change breaks AppImageLauncher 2.2.0, whose last stable release cannot load the static runtime. The README tells users to install a 3.0 beta build of AppImageLauncher or remove the launcher, which is unnecessary for running the AppImage directly.

Node 22.12 forks are unsigned, and upstream contributions are closed

Source work requires Node.js 22.12 or later, npm, and the editor submodule. npm start launches the app without packaging, provided another draw.io instance is not already running. The single-instance behavior can fool a developer by opening a window in the official app instead of the modified copy. Packaging adds platform-specific steps, including disabling auto-update so an official release does not overwrite the customized build.

Official binaries use private Apple and Microsoft signing infrastructure that a fork cannot access. Personal packages require an explicit unsigned-build setting, and macOS Gatekeeper or Windows SmartScreen may warn or block them. The maintainers also close the upstream code path: bug reports and feature requests are welcome, but outside code contributions are refused except in rare cases. Apache-2.0 permits a fork; maintenance and distribution remain the fork owner's responsibility.

Three open issues sit beside a same-day 31.4.5 release

GitHub showed 63,000 stars, 3 open issues, and a last push on September 8, 2026. Release 31.4.5 arrived later that same day. The 5 most recent releases span August 21 through September 8, so release activity is current. The small open count is especially notable for a desktop application used across 3 operating systems, though a closed contribution policy also limits how work enters the repository.

One of those 3 issues identifies a concrete version 31.4.5 fault: file watching registers nothing when no window is focused and can send events to the wrong window when several are open. Another asks the maintainers to research mass deployment because current guidance for MDM, silent installation, policy locking, and controlled updates is thin. draw.io Desktop is a dependable personal diagram editor by the evidence we saw. Company rollout and background file workflows deserve their own acceptance checks.

Alternatives

ProjectWhat it isPick it when
draw.io gh↗The client-side core editor that powers the desktop wrapper and browser deployments.pick this instead when you want to host or embed the editor rather than ship an Electron desktop app.
Excalidraw gh↗A browser-based whiteboard with a hand-drawn visual style and collaboration features.pick this instead when quick sketches and live collaboration matter more than formal diagram tooling.
UmbrelloA KDE desktop application focused on UML diagrams and code-oriented modeling.pick this instead when UML and software modeling are the main jobs.

What people are saying

  1. [velocity-scout] jgraph/drawio-desktop

Sources

  1. draw.io Desktop repository and README
  2. draw.io Desktop 31.4.5 release
  3. Personal fork build guide
  4. Background file-watching issue
  5. Mass deployment research issue
  6. AppImageLauncher compatibility report

More dev tools reviews

glow · serenity · Python · mocha · ohmyzsh · system-design-academy · the whole board →