Skip to content

Plugin Marketplace

Phase 10 — Integration & Ecosystem (v0.7.0)

The XYBEROS plugin marketplace is a registry of community-contributed plugins that extend the platform with new capabilities. While XYBEROS ships with 54 built-in plugins across 12 entry-point groups, the marketplace lets the ecosystem contribute more.


Available Plugins

Below is the registry of known community and first-party plugins. To add your plugin, see Publishing a Plugin.

Official Plugins

Plugin Type Description Repository
Coming soon First-party plugins will be listed here.

Community Plugins

Plugin Type Description Author Repository
None yet Be the first!

How Plugins Work

XYBEROS discovers plugins via Python entry points defined in pyproject.toml:

[project.entry-points."xyberos.tools"]
my_tool = "my_package:MyToolPlugin"

Supported entry-point groups:

Group Purpose
xyberos.processors Perception processors (10 built-in)
xyberos.providers Reasoning, action, and security providers (6 built-in)
xyberos.memory Memory tier providers (6 built-in)
xyberos.knowledge Knowledge providers (4 built-in)
xyberos.embeddings Embedding models (1 built-in)
xyberos.llm_backends LLM backends (9 built-in)
xyberos.agents Specialized agents (4 built-in)
xyberos.skills Reusable skills (3 built-in)
xyberos.strategies Reasoning & decision strategies (7 built-in)
xyberos.storage Storage providers (2 built-in)
xyberos.database Database providers (2 built-in)
xyberos.tools Pluggable tools (4 built-in)

Publishing a Plugin

1. Implement the Plugin ABC

from xyberos.plugins import Plugin, Component

class MyToolPlugin(Plugin):
    def __init__(self) -> None:
        self.name = "my-tool"
        self.version = "1.0.0"
        self.description = "Does something useful"

    def components(self) -> list[Component]:
        return [
            Component(kind="tool", name="my_tool", instance=self),
        ]

    async def initialize(self) -> None:
        # Setup logic here
        pass

    async def shutdown(self) -> None:
        # Teardown logic here
        pass

2. Register Entry Points

In your pyproject.toml:

[project.entry-points."xyberos.tools"]
my_tool = "my_package.plugins:MyToolPlugin"

3. Package & Distribute

pip install build twine
python -m build
twine upload dist/*

4. Submit to Marketplace

Open a PR or issue at github.com/xyberos/xyberos with:

  • Plugin name and version
  • Brief description
  • Link to repository
  • Entry-point group

Plugin Requirements

  • Must implement xyberos.plugins.Plugin ABC
  • Must define entry points in pyproject.toml
  • Must not shadow built-in plugin names
  • Should include a README with usage examples
  • Should declare dependencies clearly

Discovery Commands

CLI (when available)

# List installed plugins
xyberos plugin list

# Show plugin details
xyberos plugin show my-tool

# Register a marketplace plugin
xyberos plugin install my-tool

Programmatic

from xyberos.plugins.manager import PluginManager

mgr = PluginManager()
mgr.discover()

# List loaded plugins
for plugin in mgr.list():
    print(f"{plugin.name} v{plugin.version}")

# Get components by kind
tools = mgr.get_components("tool")

Roadmap

Feature Status
Plugin listing page ✅ Done (this page)
Entry-point discovery ✅ Built-in
Plugin lifecycle hooks ✅ Built-in
Plugin manifest/deps ✅ Built-in
plugin install CLI 🚧 Planned
Remote plugin registry 🚧 Planned
Plugin sandboxing 🚧 Planned
Plugin signing/verification 🚧 Planned
Usage metrics dashboard 🚧 Planned