Framework M Entry Points Reference
Framework M uses Python entry points for discovery and extensibility. This allows packages to register themselves, override core services, or contribute to the UI without modifying the framework itself.
Complete List of Core Groups
These are the primary groups the framework scans for:
| Group | Purpose | Target | Package |
|---|---|---|---|
framework_m.apps | Main App registration | Module | framework-m-core |
framework_m.frontend | MFE Plugin (UI) | Module | framework-m-standard |
framework_m.shell | Active UI Shell | Static path | framework-m-standard |
framework_m.bootstrap | Startup steps | BootstrapProtocol | framework-m-core |
framework_m.overrides | DI Provider overrides | Class/Factory | framework-m-core |
framework_m.containers | Additional DI Containers | Container Class | framework-m-core |
framework_m_core.cli_commands | m CLI extensions | cyclopts.App | framework-m-core |
Specialized Adapters
These allow swapping core implementations (e.g., using MX-Mongo instead of Standard-SQLAlchemy):
| Group | Default Implementation |
|---|---|
framework_m.adapters.repository | framework_m_standard.adapters.db:GenericRepository |
framework_m.adapters.schema_mapper | framework_m_standard.adapters.db:SchemaMapper |
framework_m.adapters.unit_of_work | framework_m_standard.adapters.db:SessionFactory |
framework_m.adapters.permission | framework_m_standard.adapters.auth:CitadelPolicyAdapter |
framework_m.adapters.event_bus | framework_m_standard.adapters.events:InMemoryEventBus |
Discovery
The easiest way to see which entry points are active in your environment is using the Framework M Studio CLI:
m entrypoints
This command automatically filters for all framework_m.* and framework_m_core.* groups.
[!TIP] Programmatically, you can access these using
importlib.metadata.entry_points(group="...").