A completely offline, smooth, modern PlantUML editor with bundled rendering engine
Download β’ Documentation β’ Report Bug β’ Request Feature
Open UML is a professional desktop application designed for creating PlantUML diagrams with zero setup required. Everything runs completely offline β the PlantUML rendering engine and Java runtime are bundled, so you can start creating diagrams immediately without any installation hassles.
Perfect for students, developers, and technical writers who need a reliable, fast, and beautiful tool for creating UML diagrams, flowcharts, and other PlantUML-supported diagrams.
- π Fully Offline - No internet connection required, all dependencies bundled
- β‘ Lightning Fast - 300ms debounced rendering for instant preview updates
- π¨ Modern UI - Beautiful, minimal interface with smooth animations
- π Theme Support - Dark and light themes with seamless switching
- π Monaco Editor - Professional code editor with PlantUML syntax highlighting
- π Zoom & Pan - Zoom from 25% to 300% with Google Maps-style panning
- πΎ Export Options - Save diagrams as PNG or SVG
- β¨οΈ Keyboard Shortcuts - Complete keyboard support for power users
- π¦ Cross-Platform - Windows and macOS installers available
- π Secure - Built with security best practices (context isolation, no node integration)
- Download
OpenUML-Setup-1.0.0.exefrom Releases - Run the installer
- Launch Open UML from the desktop shortcut or Start menu
- Start creating your PlantUML diagrams!
- Download
OpenUML-1.0.0.dmgfrom Releases - Open the DMG file and drag Open UML to Applications
- Launch from Applications or Spotlight
- If you see a security warning, go to System Preferences β Security & Privacy β Allow
- Live Rendering - See your diagrams update in real-time as you type (300ms debounce)
- Full PlantUML Support - All diagram types supported:
- Sequence Diagrams
- Class Diagrams
- Activity Diagrams
- Use Case Diagrams
- Component Diagrams
- State Diagrams
- And more!
- Export Options - Save your diagrams as:
- PNG (raster format, perfect for presentations)
- SVG (vector format, perfect for documentation)
- File Operations:
- New file (
Ctrl+N) - Open file (
Ctrl+O) - Save file (
Ctrl+S) - Save As (
Ctrl+Shift+S)
- New file (
- Error Detection - Automatic error parsing with line numbers and helpful messages
- Smooth Performance - 60 FPS UI with no lag during editing
- Fast Rendering - Typical diagrams render in <1 second
- Intuitive Interface - Split-pane editor and preview with resizable divider
- Zoom Controls - Zoom from 25% to 300% with smooth scaling
- Pan Support - When zoomed in, drag to pan around the diagram (like Google Maps)
- Persistent State - Auto-saves your work to localStorage
- Theme Toggle - Switch between dark and light themes instantly
- Responsive Layout - Works perfectly on all screen sizes
| Shortcut | Action |
|---|---|
Ctrl+N / Cmd+N |
New file |
Ctrl+O / Cmd+O |
Open file |
Ctrl+S / Cmd+S |
Save file |
Ctrl+Shift+S / Cmd+Shift+S |
Save As |
Ctrl+Shift+R / Cmd+Shift+R |
Render diagram |
Ctrl+Shift+G / Cmd+Shift+G |
Export as SVG |
Ctrl+Shift+P / Cmd+Shift+P |
Export as PNG |
- File Menu:
- New, Open, Save, Save As
- Render, Export as SVG, Export as PNG
- Help Menu:
- FAQ (links to GitHub repository)
- Contact (opens email client)
- Node.js 20+ and npm
- Git
-
Clone the repository
git clone https://github.com/choksi2212/open-uml.git cd open-uml -
Install dependencies
npm install
-
Set up PlantUML and JRE
You need to download and place the following in
app/plantuml/:plantuml.jarβ Download from PlantUML releasesjre/β Extract OpenJDK 17+ JRE for your platform
Structure:
app/plantuml/ βββ plantuml.jar βββ jre/ βββ bin/ βββ java (or java.exe on Windows) -
Run in development mode
npm run electron:dev
| Command | Description |
|---|---|
npm run dev |
Start Vite dev server only |
npm run electron:dev |
Start Electron + React dev mode |
npm run build |
Build production files |
npm run dist |
Generate installers (.exe/.dmg) |
npm run lint |
Lint TypeScript/React code |
open-uml/
βββ app/
β βββ main/ # Electron main process
β β βββ index.ts # Window creation, IPC handlers
β βββ renderer/ # React UI components
β β βββ App.tsx # Main app component
β β βββ components/ # UI components
β β β βββ Editor.tsx # Monaco editor wrapper
β β β βββ Preview.tsx # Diagram preview with zoom/pan
β β β βββ TopBar.tsx # Top navigation bar
β β β βββ ErrorPanel.tsx # Error display
β β βββ index.css # Global styles
β βββ assets/ # Icons, logos
β βββ plantuml/ # plantuml.jar + JRE
β βββ preload.ts # IPC bridge
βββ .github/
β βββ workflows/ # CI/CD workflows
β βββ release.yml # Automated releases
βββ build/ # Build output (installers)
βββ dist/ # Production build
βββ dist-electron/ # Electron build output
βββ package.json
βββ electron-builder.yml
βββ README.md
- β Rendering speed: <1s for typical diagrams
- β UI FPS: β₯60
- β No stutters or visual lag
- β Fully offline operation
- β Memory-safe subprocess handling
- β Full PlantUML compatibility
- β Installer size: ~200 MB (includes Electron, Chromium, PlantUML, and JRE)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Follow Conventional Commits:
feat:β New featurefix:β Bug fixdocs:β Documentationstyle:β Code stylerefactor:β Code refactoringtest:β Testschore:β Maintenance
This project is licensed under the MIT License β see the LICENSE file for details.
- PlantUML β The amazing diagramming language
- Electron β Cross-platform desktop framework
- Monaco Editor β Code editor
- React β UI library
- Tailwind CSS β Styling framework
- Vite β Build tool
Created for Students by Manas Choksi with β€οΈ


