README file from
GithubObDrawIO
Edit and manage draw.io diagrams (.drawio / .dio files) directly inside Obsidian with a fully functional embedded editor.
Features
✨ Full draw.io Editor — All draw.io features available directly in Obsidian (flowcharts, UML, wireframes, ERD, etc.)
🎨 Theme Sync — Automatically matches Obsidian's light/dark theme
💾 Auto-save — Changes are automatically saved to your vault as you edit
🔗 Easy Linking — Insert diagram links into your notes with a built-in picker
⚙️ Customizable — Configure draw.io server URL, theme, language, and more
📱 Cross-platform — Works on desktop (tested) and mobile browsers
Installation
From Obsidian Community Plugins (Coming Soon)
- Open Settings → Community plugins
- Search for "ObDrawIO"
- Click Install and enable
Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create folder:
<YourVault>/.obsidian/plugins/obdrawio/ - Place the three files in that folder
- Reload Obsidian and enable the plugin in Settings → Community plugins
Usage
Creating a New Diagram
Option 1: Ribbon Icon
- Click the workflow icon in the left ribbon
Option 2: Command Palette
- Press
Cmd/Ctrl + Pand search for "New diagram"
Option 3: File Menu
- Right-click on any folder in the file explorer and select "New diagram"
Editing Diagrams
- Simply click any
.drawioor.diofile in your vault to open it in the editor - The editor loads with your current diagram
- Edit freely — changes auto-save by default (configurable in settings)
- Close the tab when done
Inserting Diagram Links
- While editing a markdown note, press
Cmd/Ctrl + P - Search for "Insert diagram link into note"
- Select a diagram from the searchable picker
- The link
[[diagram-name.drawio]]is inserted
Opening in New Tab
- Right-click a
.drawiofile and select "Open in diagram editor" - Or use Command Palette → "Open diagram in new tab"
Settings
Access settings via Settings → Community plugins → ObDrawIO
| Setting | Default | Description |
|---|---|---|
| Draw.io server URL | https://embed.diagrams.net |
URL for the editor (use a self-hosted instance for offline use) |
| Follow Obsidian theme | ✓ | Auto-switch editor theme when Obsidian theme changes |
| Auto-save | ✓ | Automatically save changes as you edit |
| Default diagram folder | (vault root) | Folder where new diagrams are created |
| Language | (browser default) | Editor language code (e.g., zh, de, es) |
File Format
.drawio files are standard XML-based diagram files compatible with:
- diagrams.net web editor
- draw.io desktop
- Any draw.io compatible tool
Supported Extensions
.drawio(standard).dio(alternate)
Tips & Tricks
Offline Use (Self-Hosted)
- Set up a self-hosted draw.io instance
- Update the "Draw.io server URL" setting to point to your instance
- All editor features remain available without internet
Language Support
The plugin respects your browser's language settings. To override, set the Language setting to:
zhfor 中文defor Deutschfrfor Françaisesfor Español- See all supported codes
Linking Diagrams in Notes
After inserting a link like [[my-diagram.drawio]], clicking the link opens the diagram in edit mode. You can also view backlinks in the diagram's own sidebar.
Keyboard Shortcuts
All draw.io shortcuts work in the editor. Common ones:
| Shortcut | Action |
|---|---|
Cmd/Ctrl + S |
Save (if not auto-saving) |
Cmd/Ctrl + Z |
Undo |
Cmd/Ctrl + Y / Cmd/Ctrl + Shift + Z |
Redo |
Del / Backspace |
Delete selected |
Cmd/Ctrl + A |
Select all |
Cmd/Ctrl + G |
Group |
Cmd/Ctrl + Shift + U |
Ungroup |
Troubleshooting
Plugin doesn't load after installation
- Ensure
main.js,manifest.json, andstyles.cssare in<Vault>/.obsidian/plugins/obdrawio/ - Reload Obsidian:
Cmd/Ctrl + Shift + Ion desktop or close/reopen on mobile - Check Settings → Community plugins that ObDrawIO is enabled
Editor doesn't respond
- Ensure you have internet access (required for default
embed.diagrams.net) - For offline use, configure a self-hosted draw.io URL in settings
- Try reloading the tab or restarting Obsidian
Changes not saving
- Verify Auto-save is enabled in settings
- Manually save with Command Palette → "Open diagram in new tab" and back
- Check that the file permissions allow write access
Theme not switching
- Ensure Follow Obsidian theme is enabled in settings
- Restart the editor tab to force theme refresh
Development
Building from Source
# Install dependencies
npm install
# Development build (watch mode)
npm run dev
# Production build
npm run build
# Lint
npm run lint
Project Structure
src/
├── main.ts # Plugin entry point
├── settings.ts # Settings UI and defaults
├── types.ts # TypeScript types and constants
├── view/
│ └── DiagramView.ts # Main diagram editor view
├── commands/
│ ├── index.ts # Command registrations
│ └── newDiagram.ts # "New diagram" modal
└── utils/ # Utility functions
License
MIT License — See LICENSE file for details
Credits
- Built with Obsidian Plugin API
- Uses draw.io by JGraph
- Icons from Obsidian's built-in icon set
Feedback & Issues
Found a bug or have a feature request? Please open an issue on GitHub.
Support
If you find this plugin useful, consider:
- ⭐ Starring the GitHub repository
- 💬 Sharing feedback and suggestions
- 🐛 Reporting bugs with details
- 📝 Contributing improvements via pull requests