Skip to content

Enable users to turn on external plugins via configuration within desktop app. #2499

Description

@lukasonokoleg
  • I agree to follow the Code of Conduct that this project adheres to.

  • I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Is your feature request related to a problem? Please describe.

_The desktop application supports external plugins only when started with the --enable-plugins command-line flag. While this is a reasonable security default, many users are unaware that the feature exists or have no practical way to enable it, especially on Windows and macOS where applications are typically launched from shortcuts or the application launcher rather than a terminal.

This makes it unnecessarily difficult for users who consciously want to use trusted third-party plugins._

Describe the solution you'd like
_Provide an optional UI setting that allows users to enable external plugins after explicitly acknowledging the security implications.

For example:

  • Settings → Advanced
    • ☐ Enable external plugins
  • Display a warning explaining that external plugins execute arbitrary JavaScript and should only be enabled for trusted plugins.
  • Require confirmation before enabling the setting.
  • Store the preference locally and apply it on subsequent launches.

This would preserve the secure default while making the feature accessible to users who intentionally choose to use external plugins._

Describe alternatives you've considered
The current --enable-plugins startup flag works technically but has several usability issues:

  • Many users never launch draw.io from a terminal.
  • Windows users must manually modify shortcuts.
  • macOS users must create custom launchers or always use the command line.
  • Plugin authors must explain platform-specific startup instructions instead of simply documenting how to install their plugin.

Another possibility would be a first-run dialog when an external plugin is detected, asking whether the user wishes to enable support.

Additional context

External plugins significantly expand what draw.io Desktop can do beyond its built-in functionality. They enable communities, companies, and open-source projects to create domain-specific extensions such as custom diagram types, opinionated shape libraries, validation rules, generators, import/export capabilities, and workflow automation that would not be practical to include in the core product.

By providing an official, user-controlled way to enable external plugins, draw.io can foster a richer extension ecosystem while maintaining a secure-by-default experience. Users who need specialized functionality can consciously opt in after understanding the security implications, while everyone else continues to benefit from the existing secure default.

This allows draw.io to remain a lightweight, general-purpose diagramming tool while empowering the community to build specialized capabilities for enterprise architecture, cloud infrastructure, networking, Kubernetes, BPMN extensions, C4 modeling, industry-specific notations, and many other use cases without increasing the maintenance burden of the core application.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions