Overview
Placeholder: MABL uses a plugin architecture where plugins are separate APKs that register as providers of core features (LLM, TTS, STT, etc.) and can register tool calls for custom functionality.
Plugin Discovery
Placeholder: Plugins register for pre-defined action names in their AndroidManifest.xml:
<service android:name=".MySttService" android:exported="true">
<intent-filter>
<action android:name="com.penumbraos.intent.action.PROVIDE_STT" />
</intent-filter>
<meta-data
android:name="com.penumbraos.metadata.DISPLAY_NAME"
android:value="My Custom STT" />
</service>
Communication
Placeholder: How plugin logic runs in its own process, binds provider services, and communicates with MABL via the PenumbraOS SDK.
Rendering UI
Placeholder: How plugins can request UI display within the MABL process. MABL loads plugin UI code via DexClassLoader.
Existing Plugins
Placeholder: List of built-in and community plugins:
- OpenAI-compatible LLM provider
- Humane speech-to-text
- Generic Android TTS
- Google search
- System operations (volume, etc.)
- Ai Pin-specific operations (timers, etc.)