Module manifests (glixo.module.json)
The manifest is the contract between your module and Glixo Code, Agxos, and the marketplace. Validate before every publish.
Required fields
id— stable reverse-DNS identifiername,descriptionkind—extensionfor catalog modulesversion— semverprotocolVersion— catalog protocol channel (currently0)runtime— e.g.{ "kind": "node", "version": "20" }artifacts[]— at least one zip withrid,url,sha256
Common optional fields
icon,images[]— marketplace presentationchangelog.entries[]— version history shown on the detail pagecomponents[]— runnable cells and placementcontributes— UI, tools, skills, Agxos apps (see Extensions)config.fields[]— user-editable settings schemahealth— health-check path for long-running server componentsupdateChannels— e.g.["stable"]sourceRepository— public HTTPS git URL (required for marketplace-listed Agxos apps; see below)license— SPDX id and optionalsourceattribution URL
sourceRepository (marketplace policy)
Agxos apps listed on the public marketplace must declare where their source lives so users can audit, fork, and report issues.
"sourceRepository": {
"url": "https://github.com/you/my-agxos-app",
"directory": "."
}
| Field | Rule |
|---|---|
url | HTTPS git URL (https://github.com/…, https://gitlab.com/…, etc.). Must be publicly readable without auth. |
directory | Optional path inside the repo where the module root lives (default .). |
Status: documented policy for Agxos marketplace listings. The validate API does not reject missing sourceRepository yet — add it now so you are ready when enforcement lands. Code extensions and bundled browse-only providers may omit it until their listing policy is finalized.
The marketplace detail page will link “View source” to this URL. Fork workflows (App Creator, Agxos “Fork app…”) can clone from it when the app is not in the community monorepo.
Example (trimmed)
{
"id": "glixo.samples.memory-inspector",
"name": "Memory Inspector",
"kind": "extension",
"version": "0.1.0",
"protocolVersion": "0",
"runtime": { "kind": "node", "version": "20" },
"entry": { "command": "echo", "args": ["client-bundled-in-app"] },
"contributes": {
"sidebarViews": [{ "id": "…", "slot": "session.sidebar", "title": "Agent Memory", "component": "AgentMemoryPanel" }],
"tools": [{ "id": "…", "name": "list_saved_memory", "description": "…", "inputSchema": { "type": "object" } }]
},
"artifacts": [{ "rid": "any", "url": "artifacts/….zip", "sha256": "…" }]
}
Schema and reference
- module.schema.json — JSON Schema
- manifest-reference.md — field-by-field reference