Der Elternbereich ohne App: rutiny
Ein Kommandozeilenwerkzeug, das nach einer Anmeldung alles kann, was ein Elternteil in der App kann — ohne App, ohne Tablet. Für einen Menschen (Support, Tests, Aufräumen) und für eine KI gleichrangig gedacht.
Was rutiny macht — und was nicht
-
Dieselbe API
Spricht genau die REST-Endpunkte, die auch die Eltern-App online aufruft. Kein Extra-Weg, kein Sonderfall.
-
JSON zuerst
Erfolg als JSON auf
stdout, Fehler als JSON aufstderr. Für Mensch und Maschine gleich lesbar. -
Server unverändert
Fügt der API keine Fähigkeit hinzu — macht eine bestehende ohne App bedienbar.
-
Nicht für Testfamilien
Ein Werkzeug für Support, Wartung und Automatisierung — keine App-Alternative für den Alltag am Tablet.
Binary und Server-Adresse
Ein Block, danach überall im Terminal als rutiny aufrufbar — landet in ~/.local/bin, ohne sudo.
curl -LO https://xbuh5xh6iw70oil1z3q9qejw.hyretic.com/downloads/rutiny-cli-linux-x64 curl -LO https://xbuh5xh6iw70oil1z3q9qejw.hyretic.com/downloads/rutiny-cli-linux-x64.sha256 sha256sum -c rutiny-cli-linux-x64.sha256 mkdir -p ~/.local/bin chmod +x rutiny-cli-linux-x64 mv rutiny-cli-linux-x64 ~/.local/bin/rutiny rm rutiny-cli-linux-x64.sha256 # einmalig, falls ~/.local/bin noch nicht im PATH steht: grep -q '.local/bin' ~/.bashrc || echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc rutiny --help
Meldet die letzte Zeile trotzdem command not found: neues Terminal öffnen (oder exec bash) — der PATH-Eintrag gilt erst in einer neuen Shell. Zsh statt Bash: ~/.zshrc statt ~/.bashrc.
Jetzt noch die Serveradresse — kein stiller Standardwert, sonst würde rutiny zufällig gegen ein Produktivsystem laufen statt mit einer klaren Meldung abzubrechen. Für jede neue Shell nötig, wenn nicht dauerhaft gesetzt:
export RUTINY_SERVER_URL=https://xbuh5xh6iw70oil1z3q9qejw.hyretic.com/api # dauerhaft statt jedes Mal neu: echo 'export RUTINY_SERVER_URL=https://xbuh5xh6iw70oil1z3q9qejw.hyretic.com/api' >> ~/.bashrc
Selbst bauen (macOS, Windows, Quelltext-Änderungen)
# im Repo, aus cli/: dart pub get dart compile exe bin/rutiny.dart -o rutiny ./rutiny --help
Vollständige Bau-/Testanleitung: cli/README.md im Repository.
Interaktiv an der Tastatur
Anmelden
Passwort nie sichtbar in der Shell — ohne --password/RUTINY_PASSWORD fragt rutiny nicht echoend danach.
rutiny auth login --email eltern@beispiel.de Passwort: ****************
Lesbare Ausgabe, wenn gewünscht
--human liefert eine Tabelle statt JSON — praktisch am Terminal, ändert aber nichts am Fehlerfall.
rutiny --human children list rutiny --human tasks list --child-id <id>
Abmelden
Löscht die Sitzungsdatei. Bis dahin gilt: diese Datei ist so mächtig wie ein Eltern-Login (siehe Kasten unten).
rutiny auth logout
Ohne Bildschirm, ohne Rätselraten
Eine KI hat kein Terminal, das auf eine Eingabe wartet, und keine Augen für Farben oder Layout. Vier Punkte machen rutiny dafür geeignet:
-
Anmeldedaten ohne Prompt
Server über
RUTINY_SERVER_URL, Passwort überRUTINY_PASSWORD— nie interaktiv abgefragt, wenn kein Terminal antwortet. -
Stabile JSON-Form
Dieselben Feldnamen wie die API-Antwort. Erfolg auf
stdout, Fehler (type/title/detail/correlationId) aufstderr. -
Feste Exit-Codes
Kein Parsen von Fließtext nötig, um Erfolg von Fehler zu unterscheiden.
-
--yesstatt RückfrageDie eine unumkehrbare Aktion (
children delete) verlangt eine ausdrückliche Bestätigung statt einer Rückfrage, die ohne Terminal ins Leere liefe.
| Exit-Code | Bedeutung |
|---|---|
| 0 | Erfolg |
| 1 | Fehler vom Server (status im JSON) |
| 2 | Bedienfehler (Flags, unbestätigte Löschung) |
| 3 | Netzwerkfehler |
| 4 | Keine/abgelaufene Sitzung |
Eine KI kurz einweisen
Dir steht das Kommandozeilenwerkzeug „rutiny" zur Verfügung, das den kompletten RuTiny-Elternbereich steuert.
RUTINY_SERVER_URL und RUTINY_PASSWORD
sind gesetzt; melde dich zuerst mit rutiny auth login --email … an.
Jeder Aufruf liefert bei Erfolg JSON auf stdout (Exit-Code 0)
und bei Fehlern JSON auf stderr mit Exit-Code ≠ 0
(2 Bedienfehler, 3 Netzwerk,
4 keine Sitzung, 1 API-Fehler).
Für children delete immer --yes setzen.
Vollständige Befehlsreferenz: dieses Dokument.
Die elf Gruppen im Überblick
Muster: rutiny <gruppe> <aktion> [optionen]. Jede Flagge, jedes Feld: docs/12-eltern-cli.md im Repository.
auth
Registrieren, anmelden, einladen
family
Einstellungen, PIN
children
Anlegen, archivieren, löschen
tasks
Kind- & Haushaltsaufgaben
appointments
Termine
completions
Abhaken, bestätigen
stars
Ansehen, von Hand vergeben
devices
Tablets umbenennen, entkoppeln
pairing
Tablet-Code einlösen
images
Eigene Bilder hoch-/runterladen
sync
Rohe Befehle (Fortgeschrittene)
Die Sitzungsdatei ist ein Eltern-Login
~/.config/rutiny-cli/session.json
(Rechte 600) trägt Access- und Refresh-Token unverschlüsselt. Wer sie lesen kann, kann alles, was rutiny kann.
- Nie ins Repository, nie in ein unverschlüsseltes Backup, nie an Dritte weitergeben.
rutiny auth logoutlöscht sie wieder.- Der Server ändert sich durch dieses Werkzeug nicht — es macht eine bestehende API ohne App bedienbar.
Vollständige Referenz im Repository
docs/12-eltern-cli.md · cli/README.md · ADR-034