Skip to content

udondan/anton

Repository files navigation

@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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors