Skip to content

Feature Request: Plugin Architecture for Extensibility #3252

@ankushss

Description

@ankushss

Problem

Currently extending Maestro requires forking the repository. We built an accessibility scanner that needed to hook into test execution, but had to fork Maestro to add this functionality.

Proposed Solution

Add a plugin architecture that allows extensions via JAR-based plugins with lifecycle hooks.

Implementation

I've opened PR #3221 with a complete implementation including:

  • Plugin lifecycle hooks (onInit, onFlowStart, onCommandComplete, etc.)
  • CLI commands (add-plugin, list-plugins, remove-plugin)
  • Plugin installation in ~/.maestro/plugins/
  • ServiceLoader-based plugin discovery

Use Cases

  • Accessibility scanning (WCAG compliance)
  • Performance monitoring
  • Visual regression testing
  • Custom analytics and reporting

Discussion

Would love feedback on:

  1. Is this approach aligned with Maestro's architecture?
  2. Should plugins have platform-specific capabilities?
  3. Any API changes needed before stabilizing?

See PR #3221 for full implementation details.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions