Develop

Plugin SDK

SubakoOS includes Python and TypeScript SDKs for trusted third-party functionality. Plugins can declare metadata, register backend behavior, participate in lifecycle management, and integrate with the event system.

Plugin shape

A plugin begins with a manifest.json describing identity and capabilities, plus its implementation package. The built-in plugins under plugins/ provide working examples for family profiles, lists, calendars, chat, communication, and content filtering.

text
my-plugin/
  manifest.json
  __init__.py
  routes.py

Python SDK

The Python package lives at plugins/sdk/python/subakoos_plugin. It provides the plugin-facing application contract and optional FastAPI integration.

bash
python -m pip install -e plugins/sdk/python

TypeScript SDK

The TypeScript package lives at plugins/sdk/js and builds declarations alongside its JavaScript output.

bash
cd plugins/sdk/js
npm install
npm run build

Development guidance

  • Use a globally unique slug and keep manifest identity stable.
  • Request only the capabilities the plugin actually needs.
  • Keep host-facing operations behind established SubakoOS services.
  • Return health information that helps an operator diagnose failures.
  • Treat configuration and secret values as sensitive data.
  • Add route and lifecycle tests before distributing the plugin.

Trust model

Plugins execute as server software, not as isolated webpage extensions. Install only code you trust, verify registry signatures where available, and review changes before upgrades.

The plugin interfaces are evolving with the platform. Use the checked-in SDK source and built-in examples as the compatibility reference for the SubakoOS revision you target.