npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@udondan/anton

v1.4.1

Published

SDK, CLI, and MCP server for anton.app — track children's learning progress, browse lessons, manage assignments

Readme

@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