RuTiny – zur Startseite
Wiki · für Entwickler & KI

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.

Kurz erklärt

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 auf stderr. 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.

Bevor es losgeht

Binary und Server-Adresse

Ein Block, danach überall im Terminal als rutiny aufrufbar — landet in ~/.local/bin, ohne sudo.

rutiny herunterladen Linux x64 · ~7,5 MB — andere Plattform? Unten selbst bauen.
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.

Für einen Menschen

Interaktiv an der Tastatur

1

Anmelden

Passwort nie sichtbar in der Shell — ohne --password/RUTINY_PASSWORD fragt rutiny nicht echoend danach.

rutiny auth login --email eltern@beispiel.de
Passwort: ****************
2

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>
3

Abmelden

Löscht die Sitzungsdatei. Bis dahin gilt: diese Datei ist so mächtig wie ein Eltern-Login (siehe Kasten unten).

rutiny auth logout
Für eine KI

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 über RUTINY_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) auf stderr.

  • Feste Exit-Codes

    Kein Parsen von Fließtext nötig, um Erfolg von Fehler zu unterscheiden.

  • --yes statt Rückfrage

    Die eine unumkehrbare Aktion (children delete) verlangt eine ausdrückliche Bestätigung statt einer Rückfrage, die ohne Terminal ins Leere liefe.

Exit-Code Bedeutung
0Erfolg
1Fehler vom Server (status im JSON)
2Bedienfehler (Flags, unbestätigte Löschung)
3Netzwerkfehler
4Keine/abgelaufene Sitzung
Rezept

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.

Referenz

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)

Sicherheit

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 logout lö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