Doku / Nachschlagen
Module entwickeln
Eigene Erweiterungen für AyCode bauen, ohne den Quellcode von AyCode: ein Ordner, ein Programm, klare Rechte.
In einer Minute zum ersten Modul
- Einstellungen → Module → Neues Modul anlegen und einen leeren Ordner wählen.
- AyCode schreibt ein Modul, das sofort läuft: Manifest
aycode-module.json, ein Skill, ein Programm inserver/index.mjsmit dem SDKserver/aycode.mjsund Tests. Der Ordner ist danach verknüpft. - Die Karte des Moduls zeigt, was es darf. Erlauben und einschalten, dann im Chat $name-des-moduls erwähnen.
- Tests laufen ohne AyCode:
node --test server/index.test.mjs.
Das SDK ist eine einzige Datei ohne Abhängigkeiten (Node 18 oder neuer). Die Anleitung liegt im neuen Ordner als README.md.
Getrennt von AyCode
Eigener Code läuft als eigenes Programm, ein MCP-Server, den die Agenten aufrufen, nie in AyCode selbst. Mit AyCode spricht das Programm nur über die Modul-Schnittstelle: nur auf diesem Computer (127.0.0.1), mit einem eigenen Schlüssel pro Modul, versioniert. Über die Schnittstelle kann ein Modul nicht für ein anderes sprechen und nicht dessen Speicher lesen.
Die Rechte regeln, was AyCode einem Modul gibt, nicht, was sein Programm auf dem Computer tut: Es läuft mit deinen Benutzerrechten und kann alles, was du auch kannst, also auch Dateien direkt lesen. Die eigentliche Grenze ist die Herkunft: öffentliche Module müssen signiert sein, und einem Herausgeber vertraust du bewusst. Eine Abschottung auf Systemebene ist geplant.
Rechte
Eigene Einstellungen und eigenen Speicher darf jedes Modul nutzen. Alles andere steht im Manifest unter permissions, und du bestätigst es vor dem Einschalten. Verlangt ein Update mehr, fragt AyCode erneut.
| Recht | Was das Modul darf |
|---|---|
brain:read | Notizen im zweiten Hirn suchen und lesen, Gemerktes abfragen |
brain:propose | Änderungen an Notizen vorschlagen; du bestätigst jede einzeln |
notify | Hinweise in AyCode zeigen, höchstens sechs pro Minute |
projects:read | deine Projekte und ihre Ordner sehen |
Die Schnittstelle
| Aufruf im SDK | Recht |
|---|---|
aycode.app.info() | immer |
aycode.settings() | immer |
aycode.storage.get / set / delete / keys | immer (4 MB je Modul) |
aycode.brain.search / note / related / memory | brain:read |
aycode.brain.proposeNote({ path, text, reason }) | brain:propose |
aycode.notify(text) | notify |
aycode.projects.list() | projects:read |
Fehler kommen mit einem Code (forbidden, off, unavailable …) und einer verständlichen Meldung. Wer in einer anderen Sprache schreibt, nutzt das Protokoll direkt: POST /v1/call mit dem Schlüssel des Moduls; Adresse und Schlüssel gibt AyCode dem Programm als Umgebungsvariablen mit.
Weitergeben
- Privat: nur für dich, darf unsigniert sein.
- Öffentlich: für alle, muss mit deinem Herausgeber-Schlüssel signiert sein. Jede Version mit demselben Schlüssel, sonst nimmt AyCode das Update nicht an.
- Lizenziert: für Käufer mit Lizenzschlüssel, den du mit demselben Schlüssel ausstellst. AyCode prüft ihn ohne Netz.
Gepackt wird ein Modul zu einer .aymodule-Datei, die man unter Module → Modul installieren öffnet.