Zum Inhalt springen

Skills / anton

anton

Node.js SDK, CLI, MCP server and Agent Skill for the anton.app learning platform

2von @udondanvor 41d aktualisiertMITGitHub →

Installation

Kompatibilitaet

Claude Code

Beschreibung

@udondan/anton

Node.js-Paket zur Überwachung des Lernfortschritts von Kindern auf anton.app. Es kapselt die inoffizielle anton.app-API und bietet drei Schnittstellen über einen gemeinsamen Kern:

  • SDK — importierbare Anton-Klasse für Node.js-Projekte
  • CLIanton-Befehl für das Terminal
  • MCP-Serveranton mcp stellt alle Funktionen als Tools für KI-Assistenten bereit
  • Agent Skill — bringt KI-Assistenten alle anton-Befehle bei (npx skills add udondan/anton)

Zweck: Dieses Paket dient ausschließlich dazu, den Lernfortschritt von Kindern zu verfolgen und Lektionen zu planen — als Unterstützung für Eltern und Erziehungsberechtigte. Es kann nicht dazu genutzt werden, beim Lernen zu schummeln oder Lektionen automatisiert abzuschließen. Das Paket stellt dafür keine Funktionen bereit!

Hinweis: Dieses Paket nutzt eine inoffizielle, durch Reverse Engineering ermittelte API. Endpunkte können sich jederzeit ohne Vorankündigung ändern.

Inhalt

Installation

# Globale Installation (empfohlen für CLI-Nutzung)
npm install -g @udondan/anton

# Ohne Installation direkt nutzen
ANTON_LOGIN_CODE=DEIN-CODE npx @udondan/anton status

Konfiguration

Config-Datei (empfohlen)

Credentials können dauerhaft in ~/.config/anton/config gespeichert werden. Die Datei darf nicht für Gruppe oder andere lesbar sein (z.B. 0600) – auf POSIX-Systemen wird die Datei mit einer Warnung ignoriert, wenn Gruppe- oder andere-Bits gesetzt sind (chmod 0600 ~/.config/anton/config):

# ~/.config/anton/config
ANTON_LOGIN_CODE=DEIN-CODE
ANTON_GROUP=Family

Die Datei enthält KEY=VALUE-Zeilen. Zeilen, die mit # beginnen, werden als Kommentar ignoriert. Umgebungsvariablen haben Vorrang vor der Config-Datei.

# Datei anlegen und absichern
touch ~/.config/anton/config
chmod 0600 ~/.config/anton/config

Umgebungsvariablen

| Variable | Erforderlich | Beschreibung | | ------------------------ | ------------------------ | --------------------------------------------------------------------------- | | ANTON_LOGIN_CODE | Ja (oder ANTON_LOG_ID) | Der 8-stellige Eltern-Login-Code aus der Anton-App | | ANTON_LOG_ID | Alternative zu obigem | Interne Log-ID (z. B. L-...) | | ANTON_GROUP | Nein | Wählt die Standardgruppe bei mehreren Gruppen (Groß-/Kleinschreibung egal) | | ANTON_ASSIGNMENTS_FILE | Nein | Pfad zur Aufgaben-JSON-Datei (Standard: ~/.config/anton/assignments.json) | | ANTON_NO_SESSION_CACHE | Nein | Auf 1 setzen, um den CLI-Session-Cache zu deaktivieren |


SDK

Agent Skill verfügbar: npx skills add udondan/anton — KI-Assistenten kennen dann alle SDK-Methoden und können beim Aufbau eigener Integrationen helfen.

Installation

npm install @udondan/anton

Schnellstart

import { Anton } from '@udondan/anton';

const anton = new Anton({ loginCode: 'DEIN-CODE' });
await anton.connect();

// Authentifizierungs- und Gruppenübersicht
console.log(anton.getStatus());

// Wochenzusammenfassung für ein Kind
console.log(await anton.getWeeklySummary({ childName: 'Emma' }));

API-Referenz

Authentifizierung

const anton = new Anton({ loginCode: 'ABCD-1234' });
// oder
const anton = new Anton({ logId: 'L-...' });

await anton.connect(); // muss vor allen anderen Methoden aufgerufen werden

Status & Gruppe

// Authentifizierungsstatus + Gruppenübersicht (kein Netzwerkaufruf)
anton.getStatus();

// Familienmitglieder + aktuell zugewiesene Blöcke
await anton.getGroup();

// Lernende auflisten
anton.listChildren();

Lektionen zuweisen

// Block per Kurs + Thema + Block zuweisen (wird intern aufgelöst)
await anton.pinBlock({
  project: 'c-mat-4',
  topicIndex: 6, // 0-basiert, aus listTopics()
  blockIndex: 1, // 0-basiert innerhalb des Themas
  weekStartAt: '2025-09-01', // Montag; Standard: aktuelle Woche
  childName: 'Emma', // weglassen = gesamte Gruppe
});

// Oder Block direkt über PUID angeben
await anton.pinBlock({
  blockPuid: 'c-mat-4/ro9ajj',
  blockPath: '/../c-mat-4/topic-07-brueche/block-02-brueche-zuordnen/block',
  weekStartAt: '2025-09-01',
});

// Zuweisung entfernen
await anton.unpinBlock({
  blockPuid: 'c-mat-4/ro9ajj',
  weekStartAt: '2025-09-01',
});

// Aktuelle Gruppenzuweisungen abrufen
await anton.getGroupAssignments({ week: '2025-09-01', childPublicId: 'P-...' });

Fortschritt & Ereignisse

// Fortschrittsübersicht (abgeschlossene Level + Sterne)
await anton.getProgress({ childName: 'Emma', since: '2025-01-01' });

// Rohes Ereignisprotokoll
await anton.getEvents({
  childName: 'Emma',
  eventType: 'finishLevel',
  limit: 50,
});

// Performance pro Level (reviewReport-API)
await anton.getLevelProgress({
  levelPuid: 'c-mat-4/abc123',
  childName: 'Emma',
});

Analysen

// Wochenrückblick: Level, Zeit, Sterne, zugewiesen vs. selbstgewählt
await anton.getWeeklySummary({ childName: 'Emma', weekStartAt: '2025-09-01' });

// Pro Fach: Trefferquote, Sterne, Zeit, Trend
await anton.getSubjectSummary({ childName: 'Emma', subject: 'mat' });

// Aktive Tage, Lernsträhnen, Lücken
await anton.getActivityTimeline({ childName: 'Emma', since: '2025-01-01' });

// Welche zugewiesenen Blöcke hat das Kind abgeschlossen?
await anton.checkAssignmentCompletion({
  childName: 'Emma',
  week: '2025-09-01',
});

// Alle Kinder im Vergleich
await anton.compareChildren();

Lernkatalog

// ~285 Kurse durchsuchen
await anton.listPlans({ subject: 'mat', grade: 4, language: 'de' });

// Themen eines Kurses (leichtgewichtig — vor getTopicBlocks verwenden)
await anton.listTopics({ project: 'c-mat-4' });

// Blöcke + Level eines einzelnen Themas
await anton.getTopicBlocks({ project: 'c-mat-4', topicIndex: 6 });
// oder per Titel:
await anton.getTopicBlocks({ project: 'c-mat-4', topicTitle: 'Brüche' });

// Vollständige Hierarchie Thema→Block→Level (groß — lieber listTopics + getTopicBlocks)
await anton.getPlan({ project: 'c-mat-4' });

// Lektionsinhalt (Aufgaben, Trainer)
await anton.getLesson({ fileId: 'level/c-mat-4/...' });

Lokale Aufgaben

Lokale Aufgaben werden in einer JSON-Datei gespeichert und sind unabhängig von der anton.app-API — nützlich für eigene Notizen und Tracking.

// Erstellen
const a = anton.assignLesson({
  childName: 'Emma',
  fileId: 'level/...',
  lessonTitle: 'Brüche 1',
});

// Auflisten
anton.listAssignments({ childName: 'Emma', status: 'pending' });

// Aktualisieren
anton.updateAssignment(a.id, {
  status: 'completed',
  note: 'Auf Anhieb geschafft!',
});

// Löschen
anton.deleteAssignment(a.id);

CLI

Agent Skill verfügbar: npx skills add udondan/anton — KI-Assistenten kennen dann alle Befehle, Flags und den vollständigen Planungsprozess und können direkt anton-Befehle ausführen.

Einstieg

export ANTON_LOGIN_CODE='DEIN-CODE'
anton status

Befehle

Statusbefehle

anton status        # Authentifizierungsinfo + Gruppenübersicht
anton group         # Familiengruppe + aktuell zugewiesene Blöcke
anton children      # Kinder auflisten

Kursbefehle

anton plans                               # alle ~285 Kurse
anton plans --subject mat --grade 4       # gefiltert nach Fach und Klasse
anton topics c-mat-4                      # Themen eines Kurses
anton blocks c-mat-4 --topic-index 6      # Blöcke eines Themas (per Index)
anton blocks c-mat-4 --topic-title Brüche # Blöcke eines Themas (per Titel)
anton plan c-mat-4                        # vollständige Hierarchie (große Ausgabe)
anton lesson level/c-mat-4/...            # Lektionsinhalt

Zuweisungsbefehle

# Zuweisung per Thema-/Block-Index
anton pin c-mat-4 --topic-index 6 --block-index 1 --child Emma --week 2025-09-01

# Zuweisung per Titelsuche
anton pin c-mat-4 --topic-title Brüche --block-title "zuordnen" --child Emma

# Aktuelle Gruppenzuweisungen anzeigen
anton pins
anton pins --week 2025-09-01 --child Emma

# Zuweisung entfernen
anton unpin c-mat-4/ro9ajj 2025-09-01

Fortschritt & Analysen

anton progress Emma                          # alle abgeschlossenen Level + Sterne
anton events Emma --type finishLevel -n 20   # rohes Ereignisprotokoll
anton level-progress c-mat-4/abc123 Emma     # Performance pro Level
anton weekly Emma                            # Zusammenfassung der aktuellen Woche
anton weekly Emma --week 2025-09-01
anton subjects Emma                          # Trefferquote + Trend pro Fach
anton subjects Emma --subject mat
anton timeline Emma                          # Lernsträhnen, aktive Tage, Lücken
anton timeline Emma --since 2025-01-01
anton completion Emma                        # Abschlussstatus zugewiesener Blöcke
anton compare                                # alle Kinder im Vergleich

Aufgabenverwaltung

anton assign Emma level/c-mat-4/... --title "Brüche 1"
anton assignments --child Emma --status pending
anton update-assignment <id> --status completed
anton delete-assignment <id>

Globale Optionen

anton --no-cache <befehl>   # Session-Cache überspringen, immer neu anmelden

MCP-Server

Der MCP-Server stellt alle 24 Tools über stdio bereit und ermöglicht KI-Assistenten wie Claude, den Lernfortschritt der Kinder zu analysieren und Lektionen automatisch zuzuweisen.

Agent Skill empfohlen: npx skills add udondan/anton — mit dem Skill verstehen KI-Assistenten alle Tool-Parameter, kennen die richtigen Abfragereihenfolgen und können eigenständig Lernpläne erstellen.

Einrichtung in Claude Code

Mit globaler Installation:

claude mcp add --env ANTON_LOGIN_CODE=DEIN-CODE anton -- anton mcp

Ohne Installation, direkt über npx:

claude mcp add --env ANTON_LOGIN_CODE=DEIN-CODE anton -- npx @udondan/anton mcp

Für eine projektweite Konfiguration (.claude/settings.json):

claude mcp add --scope project --env ANTON_LOGIN_CODE=DEIN-CODE anton -- npx @udondan/anton mcp

Einrichtung in Claude Desktop

Mit globaler Installation — in claude_desktop_config.json:

{
  "mcpServers": {
    "anton": {
      "command": "anton",
      "args": ["mcp"],
      "env": {
        "ANTON_LOGIN_CODE": "DEIN-CODE"
      }
    }
  }
}

Ohne Installation, direkt über npx:

{
  "mcpServers": {
    "anton": {
      "command": "npx",
      "args": ["@udondan/anton", "mcp"],
      "env": {
        "ANTON_LOGIN_CODE": "DEIN-CODE"
      }
    }
  }
}

Anwendungsbeispiele mit Claude

Sobald der MCP-Server eingerichtet ist, kann Claude automatisch auf alle Daten zugreifen und komplexe Aufgaben übernehmen. Hier sind einige Beispiele für Prompts:


Fortschrittsanalyse:

„Wie hat sich Emma diese Woche beim Lernen geschlagen? Welche Fächer laufen gut, wo gibt es Schwächen?"

Claude ruft dabei get_weekly_summary, get_subject_summary und get_activity_timeline ab und liefert eine zusammenhängende Auswertung — Lernzeit, Trefferquoten, Lernsträhnen und Fächer mit Verbesserungs- oder Nachholbedarf.


Automatische Lektionszuweisung basierend auf Lernhistorie:

„Schau dir an, was Emma in Mathematik diese Woche gemacht hat, und weise ihr für nächste Woche die nächsten passenden Lektionen zu."

Claude analysiert dafür:

  1. get_weekly_summary — was wurde diese Woche bearbeitet
  2. get_subject_summary — Stärken und Schwächen pro Fach
  3. check_assignment_completion — wurden die zugewiesenen Blöcke abgeschlossen
  4. list_topics + get_topic_blocks — welche Blöcke kommen als nächstes im Kurs
  5. pin_block — die nächsten passenden Blöcke direkt zuweisen

Alle Kinder auf einmal versorgen:

„Vergleiche alle Kinder und weise jedem für nächste Woche zwei Lektionen zu, die zu seinem aktuellen Stand passen — bei Schwächen Wiederholungsstoff, sonst das nächste Thema."

Claude nutzt compare_children für den Überblick, analysiert pro Kind die Fachtrends aus get_subject_summary und die Lernhistorie aus get_events, sucht dann in list_topics + get_topic_blocks passende Folgeblöcke oder Wiederholungseinheiten heraus und weist sie per pin_block zu.


Lernrückstand erkennen:

„Hat Emma in letzter Zeit Lernlücken? Wann hat sie zuletzt Mathematik gemacht und gibt es Themen, bei denen sie viele Fehler hatte?"

Claude kombiniert get_activity_timeline (Lücken und Strähnen), get_subject_summary (Fachtrend) und get_events (Fehlerrate pro Lektion), um gezielte Hinweise zu geben.


Wöchentlichen Lernplan erstellen:

„Erstelle für Emma und Jonas je einen Lernplan für die nächsten zwei Wochen — abgestimmt auf ihre bisherigen Fortschritte und offenen Lektionen."

Claude liest für jedes Kind den bisherigen Verlauf, prüft mit check_assignment_completion offene Aufgaben, sucht mit list_topics die nächsten Lernschritte und weist sie wochenweise per pin_block zu.


Verfügbare MCP-Tools

| Tool | Beschreibung | | ----------------------------- | ----------------------------------------------------------- | | get_status | Authentifizierungsstatus, Gruppeninfo, konfigurierte Kinder | | list_groups | Alle Gruppen, denen der Elternteil angehört | | get_group | Familienmitglieder + aktuell zugewiesene Blöcke | | get_group_assignments | Zugewiesene Blöcke, filterbar nach Kind/Woche | | pin_block | Lektionsblock der Gruppe oder einem Kind zuweisen | | unpin_block | Zuweisung entfernen | | list_children | Kinder auflisten | | get_progress | Abgeschlossene Level + Sterne für ein Kind | | get_events | Rohes Ereignisprotokoll für ein Kind | | get_level_progress | Performance pro Level (reviewReport-API) | | check_assignment_completion | Welche zugewiesenen Blöcke hat ein Kind abgeschlossen | | get_weekly_summary | Wochenrückblick: Level, Zeit, Sterne | | get_subject_summary | Pro Fach: Trefferquote, Sterne, Zeit, Trend | | get_activity_timeline | Aktive Tage, Lernsträhnen, Lücken | | compare_children | Alle Kinder im Vergleich | | list_plans | ~285 Kurse nach Fach/Klasse durchsuchen | | list_topics | Thementitel + Indizes für einen Kurs | | get_topic_blocks | Blöcke + Level für ein einzelnes Thema | | get_plan | Vollständige Hierarchie Thema→Block→Level | | get_lesson | Lektionsinhalt (Aufgaben, Trainer) per fileId | | list_assignments | Lokale Aufgabenliste | | assign_lesson | Lokale Aufgabe erstellen | | update_assignment | Lokale Aufgabe aktualisieren | | delete_assignment | Lokale Aufgabe löschen |


Agent Skill

Ein Skill, der KI-Assistenten beibringt, wie man alle anton-CLI-Befehle korrekt verwendet — inklusive Authentifizierung, Befehlssyntax, ID-Ermittlung und wöchentlicher Lernplanung pro Kind.

Installation

npx skills add udondan/anton

Oder global für alle Projekte:

npx skills add udondan/anton -g

Verwendung

Sobald der Skill installiert ist, verstehen KI-Assistenten Anfragen wie:

  • „Wie hat sich Emma diese Woche in Mathe geschlagen?"
  • „Weise Emma und Jonas für nächste Woche passende Lektionen zu."
  • „Ich bekomme einen 401-Fehler bei anton progress — wie behebe ich das?"

Der Assistent wählt automatisch die richtigen anton-Befehle, kennt alle Flags und führt bei Bedarf durch den vollständigen Planungsprozess.


Lizenz

MIT

Aehnliche Skills