Skip to content

[tool_extensibility] Prototype: Out-of-Process Isolate Extensions Architecture #190755

Open

Description

@bkonyi

Overview

Note

This issue tracks an experimental prototype implementation of an out-of-process tool extensibility architecture for flutter_tools.

The goal of this prototype is to evaluate allowing custom, third-party, and out-of-tree platforms to extend Flutter CLI commands (doctor, config, create, devices, build, assemble, and run) through dedicated worker isolates without embedding platform-specific logic into the host tool codebase.

Architecture Highlights

  • Pub Workspace Architecture: Encapsulates core DTOs, extension protocol contracts, and platform prototypes in dedicated sub-packages (flutter_tools_core, flutter_tools_extension, flutter_tools_extension_linux_prototype).
  • Isolated Execution: Extension entrypoints run in dedicated worker isolates over a JSON-RPC protocol.
  • Dynamic CLI Rebuilding: Commands mix in ExtensionArgParserMixin to dynamically re-parse flags and register subcommands based on loaded extensions.
  • Pure Dependency Injection: Eliminates reliance on ambient AppContext / globals for extension managers.

Prototype Phases

Activity

  1. self-assigned this
    on Aug 7, 2026
  2. added
    P1High-priority issues at the top of the work list
    team-toolOwned by Flutter Tool team
    triaged-toolTriaged by Flutter Tool team
    on Aug 7, 2026
  3. 47 remaining items

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

Metadata

Metadata

Assignees

Labels

📜Issue was posted to Discord. Remove to have the issue reannounced. (For "design doc", "emergency")P1High-priority issues at the top of the work listdesign docTracks a design discussion documentteam-toolOwned by Flutter Tool teamtriaged-toolTriaged by Flutter Tool team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions