agentsclimarketplace

Plugin system

Skill ellmos-ai/skills/skills/dev/plugin-system

Portable SKILL.md library for Claude Code, Codex-compatible agents, BACH, and local-first LLM workflows

Install
npx -y skills add ellmos-ai/skills --skill plugin-system

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Generisches Plugin-System fuer Python-Anwendungen. Auto-Discovery, Validierung, Fehlertoleranz. Zero Dependencies (nur Python stdlib).

SKILL.md

3.4 KB, as published. Nobody here has run it

<img src="banner.png" width="100%" alt="plugin-system banner">

Plugin System

Fehlertolerantes Plugin-System fuer Python-CLI-Anwendungen. Ein fehlerhaftes Plugin stoppt niemals den Rest der Anwendung.

Kernfeatures

  • Auto-Discovery: Findet Plugins automatisch in einem Verzeichnis
  • Validierung: Prueft name, version, execute() auf jeder Plugin-Klasse
  • Fehlertoleranz: Defekte Plugins werden geloggt aber nicht geladen
  • Zero Dependencies: Nur Python-Standardbibliothek

Dateien

scripts/
  plugin_system.py       Kern: PluginBase (ABC) + PluginManager
  cli_demo.py            Demo-CLI mit argparse
  test_plugin_system.py  16+ Unit-Tests
examples/
  hello.py               Hello-World Plugin
  calculator.py          Rechner-Plugin
  systeminfo.py          System-Info Plugin

Schnellstart

1. Plugin erstellen

from plugin_system import PluginBase

class MeinPlugin(PluginBase):
    name = "MeinPlugin"
    version = "1.0.0"

    def execute(self, *args, **kwargs):
        return {"status": "ok", "message": "Hallo!"}

2. PluginManager nutzen

from plugin_system import PluginManager

manager = PluginManager(plugins_dir="./meine_plugins")
plugins = manager.discover_plugins()

# Alle Plugins auflisten
manager.list_plugins()

# Plugin ausfuehren
success, result = manager.execute_plugin("MeinPlugin", param="wert")
if success:
    print(result)

3. In eigene App integrieren

class MeineApp:
    def __init__(self):
        self.plugins = PluginManager("./plugins")
        self.plugins.discover_plugins()

    def run_command(self, command, **params):
        success, result = self.plugins.execute_plugin(command, **params)
        return result if success else None

Plugin-Interface

Jedes Plugin muss:

AnforderungDetails
PluginBase erbenfrom plugin_system import PluginBase
name setzenKlassenattribut, nicht leer
version setzenKlassenattribut, Semantic Versioning
execute() implementierenBeliebige *args, **kwargs

Fehlertoleranz

FehlertypVerhalten
SyntaxError im PluginPlugin wird uebersprungen, Rest laedt
Fehlende AttributePlugin wird als is_valid=False markiert
Exception in execute()Gibt (False, error_message) zurueck
Kein Plugin im VerzeichnisLeere Liste, kein Crash

Changelog

1.0.0 (2026-03-12)

  • Migration aus MODULAR_AGENTS/plugins in Skillbibliothek
  • PluginBase ABC + PluginManager
  • 3 Beispiel-Plugins (Hello, Calculator, SystemInfo)
  • 16+ Unit-Tests
  • CLI-Demo mit argparse

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.