# Glixo module manifest reference

protocolVersion **0** · channel **stable** · generated from `glixo.module.json` JSON Schema.

An installable module / app declares these top-level fields:

| Field | Type | Required | Description |
|---|---|---|---|
| `id` | string | ✓ | Stable module id, e.g. glixo.messaging.teams. |
| `name` | string | ✓ |  |
| `description` | string |  |  |
| `icon` | string |  | Extension icon path, URL, data URL, or host icon id. Hosts may restrict which forms they render. |
| `version` | string | ✓ |  |
| `kind` | string |  | Authoring role hint only. Runtime ownership is determined by components, requires, capabilities, and contributions. |
| `protocolVersion` | string | ✓ | Host/module protocol version. Currently "0". |
| `runtime` | object | ✓ |  |
| `entry` | object | ✓ |  |
| `capabilities` | array | ✓ | Capabilities the module PROVIDES. Capabilities a module USES go in `requires` as capability.<id>. |
| `requires` | array |  | Platform services and scoped requirements the module CONSUMES. Roots: logging, health, storage, relationalDb, config, secrets, notifications, jobs, ui, workers, capabilities, events. Allowed scoped forms: relationalDb.module (relationalDb is PRIVATE module persistence only), secrets.<scope>, capability.<id> (capability USES), events / events.<topic> (subscriptions), storage.<area>. Public modules MUST NOT request shared SQL or shared read models: relationalDb.shared (or relationalDb.<anything-but-module>), sharedReadModel, shared tables/views/queries, and hostInternalQuery are rejected. Shared data flows through events + host capabilities (e.g. capability.glixo.messages.get). |
| `components` | array |  | Multi-component modules declare their components here; the Manager installs each into its cell (server \| client \| target), composed by Aspire. Omit for a single server-cell module that uses the top-level runtime/entry/requires/capabilities. Cross-component data flows through events + host capabilities, never a shared relationalDb. |
| `permissions` | array |  | Host/OS permissions the module needs (e.g. network.microsoft-graph, filesystem.workspace). |
| `images` | array |  | Product screenshots or preview images shown by Manager, app hosts, and the dev portal. |
| `changelog` | object |  | Release notes shown before install or update. |
| `health` | object |  |  |
| `ui` | object |  |  |
| `contributes` | object |  | Declarative extension points consumed by apps and Manager: routes, actions, sidebars, context menus, view patches, data sources, AI context providers, settings panels, Agxos apps, agent skills, and agent tools. |
| `config` | object |  |  |
| `artifacts` | array | ✓ |  |
| `updateChannels` | array |  |  |

The full machine-readable schema is at `module.schema.json` alongside this file.
