drawio-desktop
The offline-first diagram editor that puts security above all else — no account, no data leaving your machine, no compromises.
draw.io Desktop is a free, open-source Electron application that wraps the full draw.io diagramming engine and delivers it as a native desktop experience across Windows, macOS, and Linux. It was built specifically for users who need professional diagramming capabilities without the privacy implications of a cloud service — no account is required, and no diagram data is ever transmitted externally.
The application enforces a strict Content Security Policy at the session level that blocks all remotely-loaded JavaScript and restricts network connections to the application itself. Even images or fonts embedded in a diagram are fetched client-side and never routed through draw.io’s infrastructure. Users can optionally disable the auto-update check entirely for fully air-gapped deployments.
Beyond the security model, draw.io Desktop covers the full spectrum of diagramming use cases: flowcharts, UML class and sequence diagrams, network topologies, BPMN processes, entity-relationship diagrams, and general whiteboard-style wireframes. The underlying draw.io editor is shared with the hosted web version, so all shape libraries, themes, and import/export formats are available offline.
Export targets include PDF (with embedded diagram XML for round-trip import), PNG, SVG, JPEG, and HTML. A headless CLI mode enables batch conversion of entire directories of diagram files, making it suitable for documentation pipelines and CI/CD workflows that render diagrams automatically.
What You Get
- Complete Offline Operation - The full draw.io editor runs without any internet connection; all diagram data, shape libraries, and rendering stay on your machine
- No Account or Login Required - Install and start diagramming immediately without registering an account, providing an email address, or accepting any cloud terms of service
- Session-Level Content Security Policy - The Electron session blocks all remotely-loaded JavaScript and restricts network connections so your diagrams and usage data cannot be transmitted externally
- Blessed-Path File Security - Only files you explicitly open via the file picker, file association, or CLI are permitted for write-back, preventing renderer-side path traversal attacks
- Headless CLI Export - Run
drawio --exportto batch-convert entire folders of diagrams to PDF, PNG, SVG, JPEG, or HTML from the command line, suitable for CI pipelines - Multi-Format Import and Export - Opens .drawio, .vsdx (Visio), .mmd/.mermaid (Mermaid), CSV, and PNG/PDF files with embedded diagram data; exports to six formats
- Cross-Platform Native Installers - Shipped as NSIS installer, MSI, AppX (Microsoft Store), DMG, ZIP, DEB, RPM, and AppImage for x64, x86, ARM64, and universal macOS
- Configurable Auto-Update - Updates download silently in the background by default; can be disabled entirely via environment variable or CLI flag for managed corporate deployments
Common Use Cases
- Air-Gapped Infrastructure Documentation - Network and security engineers in government, defense, or finance use draw.io Desktop to diagram sensitive infrastructure that must never touch an internet-connected service
- Regulated Industry Compliance - Healthcare and legal teams create process flows, data maps, and org charts under data-sovereignty requirements where cloud diagramming tools would create compliance risks
- CI/CD Documentation Pipelines - DevOps teams invoke the headless CLI in build scripts to auto-export architecture diagrams from version-controlled .drawio source files into PNG or SVG for docs sites
- Corporate Managed Deployments - IT administrators deploy draw.io Desktop via MSI or APPX with the update check disabled, managing upgrades centrally through software distribution tools
- Offline Fieldwork and Travel - Consultants and engineers working on-site or without reliable connectivity diagram systems locally and sync files manually or via their own cloud storage
Under The Hood
Architecture
The application follows a two-process Electron model with clearly separated responsibilities: the main process manages BrowserWindow lifecycle, IPC routing, auto-update orchestration, and native OS integration, while the renderer hosts the full draw.io web application. A contextBridge-based preload script exposes a carefully scoped API to the renderer, and every incoming IPC message is validated by a validateSender() guard that rejects any message not originating from the application’s own file URL. The architecture also enforces a “blessed paths” security model where only files opened through trusted UI paths — file picker, file associations, or CLI arguments — are authorized for write-back, with the allowlist persisted across sessions via electron-store. The update subsystem is cleanly decoupled from window lifecycle, abstracting silent background downloads from interactive user-triggered flows behind shared state flags.
Tech Stack
Built on Electron (v42) with Node.js 22 and ES module syntax throughout the main process. The draw.io web application is included as a git submodule, running as a local HTML/JavaScript application loaded via file:// protocol. PDF generation uses @cantoo/pdf-lib to produce multi-page PDFs with embedded diagram XML stored in PDF metadata for round-trip import. electron-builder handles all packaging targets — Windows (NSIS, MSI, AppX), macOS (DMG and ZIP for x64, ARM64, and universal), and Linux (DEB, RPM, AppImage). electron-updater provides GitHub Releases-based auto-update with configurable check intervals. electron-store persists user preferences and the blessed-paths allowlist across sessions. The Node.js built-in test runner (node:test) drives the unit test suite.
Code Quality
A single, well-structured test file covers CLI argument parsing with comprehensive assertions across all flag types, page ranges, combined short flags, and edge cases — demonstrating good testing discipline for that module. However, test coverage is narrowly scoped: the main process, IPC handlers, file I/O, and the multi-page PDF export pipeline are entirely untested. Error handling has been meaningfully improved — the auto-update subsystem now wraps all calls in safeUpdaterCall and safeUpdaterListener helpers that catch both synchronous throws and promise rejections, routing failures to a deduped fallback dialog. The blessed-paths system applies defensive guards throughout. Large sections of the export pipeline still rely on inline error callbacks without typed error categories. No TypeScript or automated linting tooling is visible in the project.
What Makes It Unique
The blessed-paths file security model is the most distinctive engineering contribution — a custom allowlist of user-authorized filesystem paths, persisted across sessions and enforced at the IPC layer before any write operation, going beyond standard Electron security guidance. Combined with session-level CSP enforcement and validateSender() origin checking, the result is one of the more carefully hardened Electron applications in the open-source ecosystem. The PDF export pipeline embeds diagram XML as a PDF attachment or Subject metadata field, enabling full round-trip import from PDFs. An adaptive-colors migration system seeds user preferences from the main process into the renderer’s localStorage via preload arguments, preserving display settings across version upgrades without user interaction.
Self-Hosting
draw.io Desktop is released under the Apache License 2.0, which is a permissive open-source license. You can use it for any purpose — including commercial use — modify the source code, and redistribute it without paying licensing fees. The only obligations are to include the license notice and state any changes you made. There are no copyleft requirements, so embedding it in proprietary internal tooling or modifying it for corporate deployment does not require you to open-source your changes.
Running draw.io Desktop means each user installs and manages their own copy. There is no server component to operate, no database to maintain, and no infrastructure to provision — the application is entirely self-contained. File storage is wherever the user saves their .drawio files: local disk, network share, or a cloud storage folder synced by a separate client. IT administrators deploying at scale can use the MSI installer for silent per-user installs without admin rights, or the NSIS installer for per-machine deployment via software distribution tools. The update check can be disabled via environment variable for centrally managed upgrade cycles. There is no telemetry or analytics built into the desktop client.
Compared to the hosted diagrams.net web application, the desktop client trades real-time cloud collaboration for data sovereignty — there is no built-in collaborative editing in the desktop version unless you store files in a shared cloud folder and accept the concurrency risks of two people editing the same file. The desktop app also has no cloud backup: if a user’s machine fails between saves, diagram work since the last manual save is lost. draw.io for Confluence and Jira are separate commercial products; purchasing either does not entitle you to support for the desktop application. Community support is provided exclusively via the GitHub issue tracker on a best-effort basis.
Related Apps
AutoGPT
Automation · Productivity · AI Assistants
Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.
AutoGPT
OtherDify
No Code Platforms · AI Development · Developer Tools
Visual LLM workflow platform with RAG pipelines, agent capabilities, and model management for building production AI applications.
Dify
OtherGodot Engine
Developer Tools · Game Development · Design Tools
Free, MIT-licensed 2D and 3D game engine with one-click multi-platform export and no royalties.