Leitfaden für Entwickler & Mitwirkende
Dieses Dokument richtet sich an Entwickler:innen,
die MAAT-OS verstehen, erweitern oder eigene Apps / Plugins bauen möchten.
MAAT-OS ist:
- lokal-first
- plugin-basiert
- zustandsgetrieben
- bewusst modular
Alles läuft über einen gemeinsamen Kontext.
maatos/
├── maatki.py # Runtime Entry
├── apps/ # Anwendungen (z. B. MAAT-RPG)
│ └── maat_rpg/
│ ├── basic.py
│ ├── app.py
│ └── plugins/
├── shared/
│ ├── core/ # LLM, Streaming, Router
│ ├── plugins/ # System-Plugins
│ └── utils/
├── models/ # GGUF Modelle (nicht im Repo)
├── profiles/ # User & Game Profiles
├── data/ # Saves & Zustände
├── logs/
└── tools/
maatki.py ist die zentrale Runtime.
Ablauf:
- Profile laden
- Globalen Context erzeugen
- PluginManager initialisieren
- AppLoader starten
- ChatLoop starten
Alle Module greifen auf dasselbe Objekt zu:
context = {
"conversation": [],
"llm": None,
"pm": PluginManager,
"command_router": CommandRouter,
"profile": Profile,
"rpg": {},
}context verwenden.
apps/my_app/
├── basic.py # Muss existieren
├── app.py # Optionale Logik
├── plugins/
└── plugin_config.json
Pflicht:
APP_NAMErun(context)
Beispiel:
APP_NAME = "My App"
def run(context):
print("App gestartet")plugins/my_plugin/
└── plugin_main.py
class Plugin:
def before_chat(self, user_input, context):
pass
def after_response(self, reply, context):
pass
def command(self, full_cmd, context):
passNur benötigte Hooks implementieren.
- Commands beginnen mit
/ - Registrierung erfolgt automatisch über PluginManager
- Parsing übernimmt der CommandRouter
Beispiel:
/fight
/quest accept 1
backend = "auto" # auto | llama | mlxFallback:
MLX → llama.cpp
- Einheitliche Streaming-API
- Token-Hooks für Plugins
- Abbruch per ESC möglich
memory_v5: stabil, schnellmemory_v6: hybrid (Semantik + Pattern)
Aktivierung über Plugin.
logs/chatloop.txt
tools/validate_plugins.pytools/find_context_errors.py
- Keine harten Pfade
- Immer relativ arbeiten
- Keine Blockierenden Loops
- Plugins klein & fokussiert halten
- Kontext sauber erweitern
- Keine externen API-Zwänge
- Keine Telemetrie
- Nutzerkontrolle über Daten
- Transparente Architektur
Pull Requests willkommen – bitte:
- saubere Commits
- klare Plugin-Grenzen
- Dokumentation ergänzen
MAAT-OS ist ein lebendes System.
Baue mit Respekt.