Open Source · Apache-2.0 · MCP-Server · 0.2.0 vom 16.10.2026

Ihr Agent meldet „fertig“. Practonaut prüft im echten Programm nach.

Practonaut misst, ob ein KI-Agent sein Ziel in einer echten Anwendung erreicht, heute in Excalidraw. Der Agent arbeitet über Practonauts Aktionen per MCP, nicht per Klick; eine fest gepinnte, echte Excalidraw-Engine wendet jede Aktion an und bestätigt sie, und am Ende zählt, was auf der Zeichenfläche steht, nicht was der Agent behauptet.

npx practonautöffnet die Beispielaufgabe im Browser; echtes Excalidraw nach einmaligem npx practonaut setup

Film · 0:33 · Instrumentalmusik, kein Sprechtext

Was im Film zu sehen ist
  1. 0:00 claude-code · Lauf 2 erster Satz der Schlussmeldung · The task is done, and `check_result` passed all 8 goal conditions on the first try. · Woher weiß er das? [Bild: das Brett am Ende von Lauf 2]
  2. 0:04 Lauf 2 · 16.10.2026 · claude-code [Bild: Ausgangszustand und das Brett nach jeder der fünf Aktionen]
  3. 0:10 Jede Aktion im Verlauf, mit Urheber. [Bild: Verlauf, jeder Eintrag „Agent · claude-code“]
  4. 0:13 Das echte Excalidraw bestätigt jede Aktion. [Bild: dieselbe Zeichnung im eingebetteten Excalidraw]
  5. 0:17 8 von 8 Bedingungen erfüllt. [Bild: Zielliste, erst offen, dann „Alle Bedingungen erfüllt.“]
  6. 0:22 3 Läufe, 95-%-Intervall, nachgeprüft. · Ausschnitt der Ergebniskarte · practonaut bench · 16.10.2026 [Bild: Ausschnitt der Ergebniskarte: „3/3 bestanden“, „95-%-Intervall 43–100 % über 3 Instanzen (je ein Lauf)“, „n = 3 Läufe · 1 Seed · 1 Wiederholung“]
  7. 0:27 Practonaut · Open Source · Apache-2.0 · npx practonaut

Sie sehen jede Aktion des Agenten.

Der Agent übt, Sie sehen zu. Hier verwandelt Claude Code eine Liste in einen gestalteten Ablauf: Jede Aktion landet auf der Zeichenfläche, das echte Excalidraw bestätigt sie, und der Verlauf vermerkt, wer sie gemacht hat. Ob es gereicht hat, sagt erst die Prüfung am Ende.

Film · 0:46

Was im Film zu sehen ist
  1. 0:00 Ein Lauf, nichts ausgelassen. · 16.10.2026 · Practonaut 0.2.0 · Aufgabe: excalidraw/restyle-flow · Agent: Claude Code 2.1.301 · Modell laut Client: claude-opus-5-5 · Aufnahme-Versuch 2 von 2 (Versuch 1 bestand ebenfalls)
  2. 0:04 Agent verbindet sich [Bild: die Aufgabe, dann der ganze Player; Claude Code liest Aufgabe und Aktionen über MCP]
  3. 0:09 5 Aktionen über MCP [Bild: das Brett, fünf Aktionen: Pfeil „Begin“ → „Process“, Pfeil „Process“ → „Finish“, „Begin“ wird Ellipse, „Finish“ Ellipse mit grüner Füllung, „Process“ 260 × 120]
  4. 0:24 Prüfung [Bild: Zielliste, erst offen, dann „Alle Bedingungen erfüllt.“]
  5. 0:29 Schlussmeldung des Agenten [Bild: Verlauf, Einträge 1–4 je „Agent · claude-code“; darunter der Player-Kasten zur letzten Aktion: „Das hat die Aktion bewirkt“, „Größe von „Process“ auf 260 × 120 geändert.“] · claude-code, Schlussmeldung, erster Satz (Original): · The task is done, and `check_result` passed all 8 goal conditions on the first try. · Aktion 5, wie der Player sie meldet
  6. 0:36 Echtes Excalidraw [Bild: Reiter „Excalidraw“, dieselbe Zeichnung im eingebetteten Excalidraw]
  7. 0:40 Getrennter Prüfer · Danach prüft ein getrennter Prozess den Export. · $ practonaut check practonaut.excalidraw \ · --world library.pnworld --task restyle-flow \ · --seed 42 --pair practonaut-session.json · { "ok": true, "scope": "end-state-only", · "passed": true, …, · "counterprobes": { "empty": false, · "unchanged": false, "wrongArtifact": false }, … } · Leere, unveränderte und falsche Abgaben fallen durch. · nach der Aufnahme ausgeführt · Ausgabe und Pfade gekürzt
  1. 1Agent · claude-code„Begin“ → „Process“ verbunden.2cac5d9a
  2. 2Agent · claude-code„Process“ → „Finish“ verbunden.2fc75865
  3. 3Agent · claude-codeSchritt „Begin“ gestaltet: Ellipse, Linie schwarz, ohne Füllung.9773051b
  4. 4Agent · claude-codeSchritt „Finish“ gestaltet: Ellipse, Linie schwarz, Füllung grün.1e652855
  5. 5Agent · claude-codeGröße von „Process“ auf 260 × 120 geändert.df11ce54
Verlauf dieses Laufs (5 Aktionen)
  1. 1Agent · claude-code„Begin“ → „Process“ verbunden.2cac5d9a
  2. 2Agent · claude-code„Process“ → „Finish“ verbunden.2fc75865
  3. 3Agent · claude-codeSchritt „Begin“ gestaltet: Ellipse, Linie schwarz, ohne Füllung.9773051b
  4. 4Agent · claude-codeSchritt „Finish“ gestaltet: Ellipse, Linie schwarz, Füllung grün.1e652855
  5. 5Agent · claude-codeGröße von „Process“ auf 260 × 120 geändert.df11ce54

Urheber aus der Player-Ansicht; Aktionen und Zustands-Hashes aus dem Export.

Film lückenloser Mitschnitt eines echten Laufs, Aufgabe restyle-flow

Wie gemessen

Die Uhr im Bild zeigt die Aufnahmezeit; Zeitraffer (2×, 6×) im Bild markiert. Zum Schluss die Prüfung durch den getrennten Prozess, nach der Aufnahme. Datum, Version, Modell und Versuch nennt der Vorspann.

Drei Stellen entscheiden, der Agent ist keine davon.

So bewertet der Benchmark-Befehl bench einen Lauf:

  1. Host: verzeichnet jede Aktion mit Zustands-Hash und Urheber.
  2. Echtes Excalidraw: wendet sie an und liest zurück, mit Engine nach einmal setup.
  3. Getrennter Prüfer: eigener Prozess und Parser, Gegenproben zuerst.

Der Agent sieht, was ein Mensch im Player sieht: Aufgabe, Zielbedingungen, Prüfknopf. Referenzlösung, Beinahe-Treffer (fast richtige Zeichnungen, die durchfallen müssen) und zurückgehaltene Prüfdaten erreichen ihn über MCP nie.

  1. Agent, über MCP mit stdio verbunden: sieht die Aufgabe, die Zielbedingungen und den Prüfknopf.
  2. 1, Host von Practonaut: führt den Verlauf mit Zustands-Hash und Urheber.
  3. 2, Excalidraw 0.18.1, gepinnt und headless: wendet jede Aktion an und liest sie zurück. Widerspricht das Ergebnis, wird die Aktion abgelehnt und geht an den Host zurück.
  4. 3, Prüfer in einem eigenen Prozess: spielt den Verlauf nach, parst den Export selbst und prüft vorher die Gegenproben.
  5. Urteil: bestanden oder nicht bestanden.
  6. Zurückgehalten und über MCP nicht erreichbar: Referenzlösung, Beinahe-Treffer und Prüfdaten. Beim Bewerten liest sie der Prüfer.
Schema vereinfacht: ein Host, eine App, echte Engine nach setup
Einzelheiten

Am Host vorbei lässt sich der Zustand nicht schreiben, weder von Menschen noch von Agenten; was Excalidraw anders sieht, wird abgelehnt. Der Prüfer spielt den Verlauf mit eigenem Interpreter nach; vorher müssen eine leere, eine unveränderte und eine falsche Abgabe durchfallen. Beim freien Üben prüft der Host selbst, nach Abgleich mit dem echten Excalidraw.

Vom ersten Befehl bis zur ersten Messung.

Seit 0.2.0 antwortet jede Aktion nur mit dem, was sich geändert hat: auf excalidraw/connect 866 Byte statt 12 bis 63 KB, weniger Kontext für Ihren Agenten (CHANGELOG 0.2.0 auf GitHub ↗).

Unter Windows (nicht WSL) braucht ein MCP-Client cmd /c vor npx. Die Voreinstellung für Claude Code reicht keine Anbieterschlüssel weiter: Ein gesetzter ANTHROPIC_API_KEY würde Claude Code sonst still auf API-Abrechnung umstellen.

  • Apache-2.0
  • Node.js 22.18 oder neuer
  • keine VM, kein Docker
  • macOS (Entwicklung)
  • Linux und Windows in der CI, siehe Grenzen
  • keine Telemetrie, kein Konto
  • Aufgaben CC0
BefehleNode.js 22.18 oder neuer
# 1 · ansehen: Beispielaufgabe im Browser
$ npx practonaut
# 2 · echte Engine, einmalig: 105–128 MB
$ npx practonaut setup
# 3 · Agent verbinden, hier Claude Code
$ claude mcp add practonaut -- npx -y practonaut mcp \
    --task excalidraw/connect
# 4 · messen
$ npx practonaut bench --agent claude-code \
    --tasks excalidraw/connect
Exponat Befehle aus der README von 0.2.0
Wie gemessen

setup lädt die Chromium headless shell: 105 MB (Apple silicon) bis 128 MB (Linux), laut CHANGELOG 0.2.0.

Was das misst, wenn Ihr Agent nicht zeichnet.

Gemessen wird nicht die Zeichnung, sondern Ihr Agent: Modell, Prompt und MCP-Client, heute mit Practonauts eigenen Aktionen. Ob eine Änderung daran geholfen hat, lässt sich an Aufgaben prüfen, deren Ergebnis hart entscheidbar ist. Eine solche Aufgabe ist eine kleine Datei: Auftrag in zwei Sprachen, Varianten der Beschriftungen, daneben Start- und Zielzeichnung (Aufgabe decision auf GitHub ↗).

Excalidraw ist die erste Anwendung: Es läuft als gepinnte, statische Engine ohne Server und ohne Docker, und sein Zustand lässt sich nach jeder Aktion zurücklesen und deterministisch prüfen. Ob Ergebnisse auf andere Anwendungen übertragbar sind, ist nicht untersucht. Als Nächstes sind draw.io (ein Vorversuch hat am 14.10.2026 bestanden) und ein Modus geplant, in dem Ihr Agent mit seinen eigenen Werkzeugen arbeitet (Ziel für 0.3.0, keine Zusage).

Ihre eigene Anwendung? Noch nicht. Heute gibt es einen Adapter, Excalidraw. Was ein zweiter können muss und wie er angenommen wird, beschreibt der Adapter-Leitfaden; ein Vorschlag beginnt dort mit einem Issue (Adapter-Leitfaden auf GitHub ↗).

Verwandte Ansätze, vereinfacht nach öffentlichen Angaben
Ansatzbewertetläuft auf
Eval-Werkzeuge wie promptfoo, Inspect oder plugin eval von Claude CodeAntworten, Werkzeugaufrufe und Dateien, per Regel oder Modellurteillokal, CI, Container
Agenten-Benchmarks wie OSWorld oder WebArena-VerifiedEndzustand nach Desktop- bzw. Web-Aufgaben in echten Programmen bzw. selbst gehosteten Websites, Prüfskript je AufgabeVM bzw. Docker
Offizielle MCP-Server von Excalidraw und draw.iokein Zielurteil: sie lassen Agenten zeichnen—
PractonautZustand im echten Programm nach semantischen Aktionen, getrennter Prüfprozess, nachprüfbarer Bericht; Mensch und Agent in derselben Sitzungnpx, Engine nach einmal setup, ohne VM und Container
Quelle Marktübersicht im Repository, Stand 14.10.2026, keine Wertung auf GitHub ↗
  1. Start, Ihr Schritt: eine Zeichnung mit drei losen Kästen.
  2. Ziel, Ihr Schritt: dieselben Kästen verbunden, einer als Ellipse.
  3. Unterschied lesen: Schritte, Beschriftungen, Formen, Farben, Rahmen, Gruppen, Pfeile.
  4. Vier Proben: Das Ziel besteht, der Start fällt durch, die Referenzlösung besteht, Beinahe-Treffer fallen durch.
  5. Aufgabe geschrieben: der Ordner my-task mit world und oracle.json.
  6. Stimmt eine Probe nicht, wird nichts geschrieben.
Schema Beispielskizze, nicht die Zeichnungen des Exponats gestrichelt: Ihr Schritt

Zwei Zeichnungen ergeben eine Aufgabe.

Zeichnen Sie in Excalidraw den Ausgangszustand und das Ziel. Practonaut liest den Unterschied und macht daraus die Zielbedingungen; geschrieben wird die Aufgabe erst, wenn alle vier Proben stimmen.

Im Player geht das ohne weiteren Befehl: Unter „Erstellen“ → „Start und Ziel zeichnen“ zeichnen Sie beides im eingebetteten Editor. Für einen Reparatur-Ablauf gibt es zusätzlich einen Vorführ-Weg; dort bestätigt eine zweite, getrennte Aufzeichnung jede Regel.

Terminalexit 0
$ npx practonaut --lang de tasks from-scenes \
    start.excalidraw goal.excalidraw \
    --out my-task
Aufgabe geschrieben: 3 Schritte, 2 Pfeile, 0 Rahmen im Ziel; 7 Zielbedingungen, 5 Fehlerklassen.
Geprüft: Die Zielszene besteht, die Startszene nicht; die Referenzlösung mit 2 Aktionen besteht; 4 Beinahe-Treffer fallen durch.
Üben: practonaut play my-task/world
Exponat echter Lauf, Practonaut 0.2.0, 16.10.2026
Wie gemessen

Commit d6798a9; Start- und Zielzeichnung aus dem CI-Rezept des Repositories. Zeilen umbrochen, Pfade verkürzt.

Neues Modell, neuer Prompt: Hat es geholfen?

bench startet für jeden Lauf eine frische Sitzung und lässt einen Agenten dieselben Aufgaben lösen: Claude Code als fertige Voreinstellung oder einen eigenen Agenten per Befehlsvorlage. Der Bericht nennt Bestehensquoten als Bruch mit 95-%-Intervall, zeigt fehlgeschlagene Läufe zuerst und sagt, woran es lag: welche Zielbedingung offen blieb und nach welcher Aktion sie zuletzt verloren ging.

compare legt zwei Berichte Instanz für Instanz nebeneinander; eine Instanz ist eine Aufgabe mit festem Startwert (Seed). Als Regression zählt eine Instanz, die vorher in allen drei Wiederholungen bestand und nachher in keiner; gibt die Stichprobe keinen Unterschied der Raten her, steht dort „bei diesem n nicht unterscheidbar“.

Ein echter Fall: Claude Code mit Opus 5.5 als Basis und mit Haiku 5.5 als Kandidat, auf fünf der sechs schwersten Bibliotheksaufgaben mit einem Budget von genau der Referenzlänge (höchstens so viele Aufrufe, wie die Referenzlösung Aktionen hat, abgelehnte eingerechnet) und ohne Prüfknopf. Opus bestand 15 von 15 Läufen, Haiku 9 von 15.

Terminalexit 2
$ npx practonaut --lang de compare \
    opus/report.json haiku/report.json \
    --verify --fail-on-regression
Practonaut-Vergleich  opus-5.5-tight (Basis) → haiku-5.5-tight (Kandidat)

Urteil: Unterschied der Raten bei diesem n nicht unterscheidbar (exakter McNemar-Test p = 1,000; 1 nur bei der Basis, 0 nur beim Kandidaten)
  Basis: 2/2 Instanzen bestanden · 95-%-Intervall 34–100 % über die 2 Instanzen auf beiden Seiten
  Kandidat: 1/2 Instanzen bestanden · 95-%-Intervall 9–91 % über die 2 Instanzen auf beiden Seiten

Instanz-Regressionen:
  ✗ decision · Seed 1: 3/3 bestanden bei der Basis, 3/3 nicht bestanden beim Kandidaten

practonaut: 1 Instanz-Regression (bei jeder Wiederholung der Basis bestanden, bei jeder des Kandidaten nicht): decision seed 1 [instance_regression]

Im Terminal: die Gruppe der zwei Aufgaben mit Referenzlänge 6 (decision, restyle-flow), je eine Instanz mit drei Wiederholungen; gezählt werden Instanzen: Opus 2 von 2, Haiku 1 von 2. Über alle fünf Aufgaben: Opus 15 von 15 Läufen, Haiku 9 von 15.

Exponat 16.10.2026 · 0.2.0 · Budget = Referenzlänge, --checks 0 · je 3 Läufe Belege
Wie gemessen

Claude Code 2.1.301 über ein Abo, Modell laut Client; echtes Excalidraw, Seed 1. Hier die Gruppe decision und restyle-flow (höchstens 6 Aufrufe je Lauf); die zweite Gruppe (insert-between, reorder, two-frames, höchstens 4) zeigt eine Instanz-Regression auf insert-between. Hypothese und Erwartung vor dem ersten Lauf festgehalten; 30 Agentenläufe, jeder Bericht mit report --verify nachgerechnet. Ausgabe gekürzt (zwei Kopfzeilen mit Agent und Modell, Erklärblock), Pfade verkürzt, umbrochen. Die Ausgabe ist aus dem Archiv der Bench-Ordner nachgerechnet; Quellen bytegleich mit v0.2.0.

Der Ratentest sagt bei diesem n: nicht unterscheidbar. Die Instanz-Regression sagt trotzdem genau, wo es kippt.

Haiku meldete in allen sechs Fehlschlägen selbst, dass die Aufgabe nicht fertig ist; das Budget-Ende zeigt der Host an.

Ausschnitt aus dem Bench-Bericht von Practonaut: Lauf decision, Seed 1, Wiederholung 1, nicht bestanden, 5 Aktionen, beendet. Warum nicht bestanden: 2 von 7 Aufrufen von act lehnte der Host ab, einer nannte einen veralteten Schritt oder eine veraltete Revision, bei einem war das Aktionsbudget des Laufs aufgebraucht. Nicht erfüllt: Die Zeichnung hat genau 3 Pfeile (nie erfüllt); ein Pfeil von „In stock?“ nach „Ship“ (nie erfüllt).
Exponat Bericht des ersten Haiku-Laufs auf decision, Ausschnitt
Wie gemessen

report --html --verify, helle Fassung, frisch gerendert; dieselben Gründe stehen bei allen drei Haiku-Läufen auf decision. Der Ausschnitt endet unter den Gründen; darunter folgen im Bericht die Zielbedingungen einzeln.

In der CI

In GitHub Actions lässt ein Rezept den Job bei einer Regression scheitern.

Was ein Lauf kostet: Jeder der drei Läufe eines Benchmarks mit Claude Code (Modell laut Client: Opus 5.5) auf drei der sechs schwersten Bibliotheksaufgaben dauerte 18 bis 23 s und kostete laut Client 0,10 bis 0,12 USD Listenpreis-Äquivalent, abgerechnet über ein Abo.

practonaut-bench.ymlAuszug
- name: Bench the agent (three repeats per instance)
  …
- name: Compare with the baseline (fails on an instance regression)
  run: npx --yes --package "$PRACTONAUT" -- practonaut compare "$BASELINE" "$BENCH/report.json" --fail-on-regression --html "$OUT/compare.html"
Exponat Auszug aus examples/ci/practonaut-bench.yml, 0.2.0 auf GitHub ↗
Wie gemessen

Wörtlich aus der Datei; ausgelassene Zeilen als „…“, Einrückung verringert, lange Zeilen umbrochen. Das Rezept braucht eine committete Basis mit denselben Einstellungen und für Claude Code ein Abo-Token als Repository-Geheimnis.

Neue Aufgabenfamilien erscheinen erst, wenn sie Modelle trennen.

Für 0.2.0 entstanden fünf Familien erzeugter Aufgaben. Veröffentlicht wird eine Familie erst, wenn sie ein Tor passiert, dessen Regeln vor ihren Testaufgaben committet waren: Auf 26 zurückgehaltenen Instanzen im echten Excalidraw besteht die Referenzlösung alle, Zufall höchstens 5 %, und jeder Beinahe-Treffer fällt durch; das stärkste Modell löst zwischen 10 und 80 %, das schwächste mindestens 20 Punkte weniger, gesichert mit einem exakten McNemar-Test (p < 0,05).

Gelöste von je 26 zurückgehaltenen Instanzen, ein Lauf je Modell und Instanz
GrenzenClaude 5.5
Referenz(soll bestehen)Zufall(soll scheitern)OpusSonnetHaiku
Reparatur260262626
Injektion in der Zeichnung260262626
Langer Ablauf, ähnliche Beschrif­tungen260262626
Begrenzte Prüfungen260262626
Knappes Aktions­budget2602626241

1 Haiku 5.5 löste bei knappem Aktionsbudget 24 von 26.

Exponat Runde 1, 15./16.10.2026 Challenge-Bericht auf GitHub ↗
Wie gemessen

Deklaration jeder Familie vor dem Holdout committet; Abweichungen jeweils vor dem betroffenen Urteil dokumentiert. Teststärke ≈ 0,42 für 20 Punkte Unterschied: „besteht nicht“ heißt nicht „gleich“.

Claude Opus und Sonnet 5.5 lösten alle 130 Instanzen, Haiku 5.5 128. Keine Familie lässt Luft nach oben, keine trennt die Modelle; darum ist keine veröffentlicht.

Agenten und Modelle anderer Anbieter, lokale Modelle und eigene Werkzeugbeschreibungen sind nicht gemessen. Ihren Agenten messen Sie heute an der Bibliothek oder an eigenen Aufgaben. Kennen Sie eine Aufgabe, an der Ihr Agent scheitert? Schlagen Sie sie auf GitHub vor.

Was es heute nicht tut.

  • Nicht signiertreport --verify bewertet einen Bericht aus seinen Artefakten neu. Wer den Bench-Ordner schreiben kann, kann auch diese Dateien ersetzen.
  • Getrennter Prüfer nur beim BewertenEr läuft bei bench, check und report --verify und wenn eine Aufgabe entsteht (tasks from-scenes, Vorführ-Weg). Beim freien Üben prüft der Host selbst, nach einem Abgleich mit dem echten Excalidraw.
  • Nur Claude-Modelle gemessenBisher nur mit Claude-Modellen gemessen; andere Agenten laufen über Befehlsvorlagen, sind aber nicht erprobt.
  • Kein TrainingPractonaut trainiert keine Modelle; es misst.
  • PlattformenmacOS ist die Entwicklungsplattform. Linux und Windows laufen in der automatischen Prüfung (CI), wurden aber nicht von Hand erprobt; die echte Engine wird automatisch nur unter Linux geprüft.
  • Eine AnwendungExcalidraw 0.18.1 ist bisher die einzige.
  • Semantische AktionenAgenten handeln über Practonauts Aktionen (Schritt anlegen, verbinden, umbenennen …), nicht per Klick auf einen Bildschirm. Gemessen wird, ob ein Agent das Ziel im Modell der Anwendung erreicht, nicht ob er die Oberfläche bedienen kann.
  • Nicht versiegeltAgenten laufen unter Ihrem Benutzerkonto. Ein Agent mit eigenen Datei- oder Shell-Werkzeugen könnte die Aufgabenbibliothek samt Referenzlösungen lesen; die Voreinstellung für Claude Code erlaubt nur die Werkzeuge von Practonaut.
  • Kleine EvidenzOb das Üben hier Menschen im echten Werkzeug besser macht, ist nicht untersucht.
  • Ohne Chromium nur modellbasiertAufgaben funktionieren, aber nichts wird gegen die echte Anwendung geprüft, und Practonaut zeigt das sichtbar an.
  • DatenPractonaut sendet keine Daten: keine Telemetrie, kein Konto, Daten bleiben lokal. Beim Üben macht sein Prozess keine Netzwerkaufrufe. Netz brauchen nur npx (npm fragt die Registry ab und lädt das Paket) und setup (lädt Chromium einmal); --require-offline prüft beim Start mit einer kurzen Netzprobe, dass kein Netz erreichbar ist. Ihr Agent spricht mit seinem eigenen Modellanbieter.
  • BarrierefreiheitPrüfungen mit Screenreader und 200 % Zoom durch eine Person stehen aus.

Practonaut ist nicht mit Excalidraw oder Anthropic verbunden. Die öffentliche Roadmap nennt für 0.3.0 eine zweite Anwendung und Agenten mit eigenen Werkzeugen, Ziel März 2027; Termine sind Ziele, keine Zusagen, und der Inhalt hängt von einem Nutzungs-Checkpoint ab (Roadmap auf GitHub ↗).

Herkunft

Practonaut wird von Dargel Solutions in Frankfurt am Main entwickelt und gepflegt (Kontakt). Es steht unter der Apache-Lizenz 2.0, auch kommerziell nutzbar. Excalidraw-Engine und Schriften stehen unter ihren eigenen Lizenzen, Aufgabenbibliothek und Beispielwelt unter CC0 1.0.

Practonaut wird überwiegend von KI-Coding-Agenten geschrieben; seit Version 0.1.0 nennen die Commits das Modell als Co-Autor. Dargel Solutions gibt die Richtung vor, verantwortet das Ergebnis und veröffentlicht jede Version selbst.

Für Erstellung, Pflege und Prüfung dieser Seite wird generative KI eingesetzt. Dargel Solutions verantwortet die Veröffentlichung.

In der MCP Registry steht Practonaut als io.github.godarg/practonaut.