Creating Glixo Code extensions
Extensions run inside Glixo Code and contribute UI surfaces, agent tools, skills, and commands. They install from the marketplace and activate per workspace or user scope.
Catalog layout
IDE extensions live under catalog/code/<your-extension>/ in the community repo. Each folder contains:
glixo.module.json— manifest (required)assets/— icon, screenshots for the marketplaceartifacts/— versioned.zipbundles referenced by SHA-256- Source for client/server components (e.g.
hello-panel/)
Study the samples: hello-extension (minimal), memory-inspector (sidebar + tool + skill).
Minimal manifest
{
"id": "com.example.hello",
"name": "Hello Extension",
"description": "Settings panel and command palette action.",
"kind": "extension",
"version": "0.1.0",
"protocolVersion": "0",
"runtime": { "kind": "node", "version": "20" },
"entry": { "command": "node", "args": ["hello-panel/index.js"] },
"components": [{
"id": "hello-panel",
"cell": "client",
"scope": "user",
"entry": { "command": "node", "args": ["index.js"], "workingDirectory": "hello-panel" },
"placement": { "kind": "user", "required": true }
}],
"contributes": {
"settingsPanels": [{
"id": "com.example.hello.settings",
"slot": "settings",
"title": "Hello Extension",
"component": "HelloExtensionSettings"
}],
"actions": [{
"id": "com.example.hello.sayHello",
"slot": "command.palette",
"title": "Say hello",
"command": "com.example.hello.sayHello"
}]
},
"artifacts": [{
"rid": "any",
"url": "artifacts/hello-extension-0.1.0.zip",
"sha256": "<64-char-hex>"
}]
}
Contribution types
Use contributes to register surfaces the host renders:
| Key | Purpose |
|---|---|
sidebarViews | Panels in the session sidebar (slot: session.sidebar) |
settingsPanels | Tabs under Settings |
actions | Command palette or Agxos toolbar entries |
tools | Agent-callable tools with JSON Schema inputs |
skills | Agent skill packs (markdown instructions) |
Capabilities and permissions
capabilities— what your module provides (namespaced ids).requires— platform features you depend on (e.g.ui,capability.glixo.memory.read).permissions— user-consent surfaces shown at install time.
Components and placement
Each components[] entry describes a runnable cell. cell is typically client or server; scope is user, workspace, or session. Use placement to prompt the user when enabling optional UI.