Client CLI Tool für das Management der Daten und Kurse
  • TypeScript 98.1%
  • Shell 1.3%
  • PowerShell 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
oliver.maklott a9ac24288b
All checks were successful
release / release (push) Successful in 35s
check / check (pull_request) Successful in 18s
check / check (push) Successful in 20s
Release 0.16.0, built for platform 0.20.0: the SDK comes from the platform, not the bundle (aivopod-app D254)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:43:42 +00:00
.forgejo Own version, built for a platform version: the @aivopod/* pins in deno.json name it; release.yml embeds that frontend, new packs depend on that SDK, the newer-platform warning and aivopod version name it (D015, aivopod-app D178) 2026-10-08 06:38:16 +00:00
.githooks B22: CLI skeleton, login, version check, texts from the platform, self-update 2026-09-27 08:54:59 +00:00
docs material list|get: the print material of the school's packs, saved as PDF, also what is only for teachers; the pack template refuses a release whose build left the print material out (aivopod-app D185, D186; D017) 2026-10-09 22:07:11 +00:00
scripts game new: the scaffold of a game from packtools (aivopod-app Plan 12, G8, D207); its texts work offline like the pack tools 2026-10-10 17:17:50 +00:00
src Release 0.15.0, built for platform 0.19.0: packs of games only (aivopod-app 0.18), games name their audiences (D246) 2026-10-12 01:11:44 +00:00
tests pack preview: learning games are assignments game:<id> with runs in memory (never checked); the preview names the page to try out the games (aivopod-app D206, D207) 2026-10-10 17:17:50 +00:00
.gitignore B24: pack commands over packtools and a local preview with the real frontends 2026-09-27 16:24:21 +00:00
.npmrc B24: pack commands over packtools and a local preview with the real frontends 2026-09-27 16:24:21 +00:00
CLAUDE.md B26: author handbook, point to the SPEC instead of Plan 2 2026-09-27 18:03:13 +00:00
deno.json Release 0.16.0, built for platform 0.20.0: the SDK comes from the platform, not the bundle (aivopod-app D254) 2026-10-12 20:43:42 +00:00
deno.lock Release 0.16.0, built for platform 0.20.0: the SDK comes from the platform, not the bundle (aivopod-app D254) 2026-10-12 20:43:42 +00:00
install.ps1 Help per command, (j/N) questions, download progress, release on merge to main 2026-09-29 09:29:49 +00:00
install.sh Help per command, (j/N) questions, download progress, release on merge to main 2026-09-29 09:29:49 +00:00
main.ts Help per command, (j/N) questions, download progress, release on merge to main 2026-09-29 09:29:49 +00:00
README.md course card and course add --description --icon: the course card for students (aivopod-app O04, D180) 2026-10-09 07:03:55 +00:00

aivopod

Das CLI für Lehrpersonen und Autor:innen von Challenge-Paketen der Plattform Aivopod. Eine einzelne ausführbare Datei, ohne Node oder Deno.

Installation

Linux und macOS:

curl -fsSL https://git.belowtoxic.cloud/api/packages/aivopod/generic/aivopod-cli/latest/install.sh | sh

Windows (PowerShell):

irm https://git.belowtoxic.cloud/api/packages/aivopod/generic/aivopod-cli/latest/install.ps1 | iex

Das Skript prüft die Prüfsumme gegen release-trust.json und legt aivopod nach ~/.local/bin (Windows: %LOCALAPPDATA%\aivopod\bin, wird dem PATH hinzugefügt). macOS: Die Datei ist nicht notarisiert; das Skript entfernt das Quarantäne-Attribut. Aktualisieren mit aivopod self-update.

Hilfe

aivopod help zeigt alle Befehle, aivopod <befehl> --help Aufruf, Optionen mit Format und ein Beispiel, z. B. aivopod year add --help oder aivopod student --help. Die Hilfe braucht keine Anmeldung.

Anmelden

aivopod login --url https://app.schule.example            # Token aus dem Browser (/cli-token)
aivopod login --url https://app.schule.example --device   # Gerätecode, wenn der Anmeldedienst ihn anbietet
aivopod whoami

Mehrere Plattformen: --profile <name> bei login, dann aivopod profile list und aivopod profile use <name>. Die Konfiguration liegt in ~/.config/aivopod/config.json (Windows: %APPDATA%\aivopod). Meldungen erscheinen in der Sprache der Lehrperson; --locale wählt eine andere.

Schule, Kurse und Schüler:innen

aivopod template list                                   # Kursvorlagen der Schule
aivopod course add --year 2026/27 --name "5a Informatik" --template "Informatik 1"
aivopod students list --tag 5a                          # Schüler:innen der Schule, nach Tag
aivopod enroll --course <id> --tag 5a                   # aus der Liste einschreiben
aivopod course self-enroll --course <id> --on           # Kurs-Code zum Selbst-Einschreiben
aivopod course show --course <id>                       # Zuweisungen, Version der Vorlage

Was man darf, hängt von der Rolle in der Schule ab: user unterrichtet in Kursen aus Vorlagen, composer stellt Kurse frei zusammen, creator legt Vorlagen an (aivopod template add, dann aivopod assign --template … und aivopod template release), manager leitet die Schule (Lehrpersonen und Rollen, Schuljahre, Schüler:innen mit Tags, students retag --from 4b --to 5b, students merge, school retention). auditor liest alles, ohne Namen von Schüler:innen. aivopod whoami zeigt die eigene Rolle; aivopod help alle Befehle.

Pakete

aivopod pack init mein-paket   # neues Paket mit Beispiel, Tests und Workflow
cd mein-paket && npm install   # das SDK aus der Registry der Organisation
aivopod pack test              # Tests, ohne vitest
aivopod pack preview           # im Browser durchspielen, mit Prüfung und Feedback
aivopod pack publish           # bauen, testen, veröffentlichen

Wie man Challenges schreibt, prüft und testet: Handbuch für Autor:innen.

Darstellung und Skins

aivopod school skins                                    # Skins der Schule je Zielgruppe
aivopod school skins --audience junior --skin keimling  # Leitung: Skin für Kinder
aivopod course audience --course <id> --set junior      # Zielgruppe eines Kurses
aivopod course card --course <id> --icon code --description "Code lesen"  # Kurskarte
aivopod students audience --tag 3a --set junior         # Zielgruppe einer Klasse
aivopod skin init meine-schule                          # eigener Skin, siehe Handbuch Kapitel 11

Entwicklung

deno task check     # fmt, lint, check, test
deno task compile   # dist/aivopod

Für pack preview braucht ein Entwicklungsstand die Oberflächen der Plattform: AIVOPOD_FRONTEND_DIR auf ein entpacktes aivopod-frontend-<version>.tar.gz der Plattform-Version aus den @aivopod/*-Paketen in deno.json setzen (Ordner web, run, preview) oder sie nach frontend/ legen und mit --include frontend kompilieren.