Steuer-API: Bots von außen steuern (Skripte und KI)
Die lokale HTTP-Schnittstelle der App — einschalten, Token kopieren, Status und Log lesen und Bots per PowerShell, eigenem Programm oder KI-Assistent laden, starten, pausieren und stoppen.
Nach diesem Artikel kannst du FlowBotCommander von außen bedienen: aus PowerShell, aus einem eigenen Programm oder von einem KI-Assistenten, der per „Function Calling“ deine Bots startet und stoppt. Du brauchst dafür keine Programmierkenntnisse — die Beispiele unten kannst du eins zu eins kopieren.
Was die Steuer-API ist
Die App enthält einen kleinen HTTP-Server. Er läuft nur auf deinem Rechner (Adresse 127.0.0.1), ist
standardmäßig aus und lässt niemanden ohne dein Token herein. Über diese Schnittstelle kann ein Skript
- den Zustand abfragen (läuft, pausiert, welcher Bot ist geladen),
- das Protokoll mitlesen,
- die Bots im Bots-Ordner auflisten,
- einen Bot laden, starten, pausieren und stoppen.
Was sie bewusst nicht kann: Bots bearbeiten, Variablen setzen oder Noten anlegen — das bleibt im Editor. Der Panic-Hotkey (Taste Pause) stoppt den Bot jederzeit, egal was die API gerade tut.
Schritt 1 — Einschalten und Token kopieren
- Menü Werkzeuge → Steuer-API… öffnen.
- Häkchen Steuer-API aktivieren (Opt-in) setzen.
- Port lassen (8765) oder ändern, falls ein anderes Programm ihn belegt.
- Beim Token auf Kopieren klicken — den brauchst du gleich. Neu erzeugt ein frisches Token; das alte gilt dann nicht mehr.
- Übernehmen. Unten erscheint „● Läuft auf http://127.0.0.1:8765“, im Protokoll „🌐 Steuer-API läuft auf …“.

Die Einstellung bleibt gespeichert: Beim nächsten App-Start läuft die API wieder, bis du das Häkchen entfernst. Das Token liegt verschlüsselt auf deinem Rechner, nie im Bot und nie auf unserem Server.
Schritt 2 — Bots in den Bots-Ordner legen
Die API listet und lädt nur Bots aus dem Ordner %AppData%\FlowBotCommander\bots. Der Weg dorthin:
Win+R, %AppData%\FlowBotCommander\bots eintippen, Enter (den Ordner beim ersten
Mal anlegen). Speichere deine Bots mit Datei → Speichern unter… dort hinein — jeder heißt name.bot.json.
Schritt 3 — Die erste Anfrage
Öffne PowerShell und setze dein Token ein:
$token = "HIER-DEIN-TOKEN"
$h = @{ Authorization = "Bearer $token" }
Invoke-RestMethod http://127.0.0.1:8765/api/health # geht ohne Token
Invoke-RestMethod -Headers $h http://127.0.0.1:8765/api/status # alles andere nur mit Token
Die Antwort auf /api/status sieht so aus:
{ "running": false, "paused": false, "nodeCount": 6, "logCount": 12, "loadedBot": "clicker-heroes-komplett.bot.json" }
Das Token gehört in den Header Authorization: Bearer <Token> — mit Leerzeichen nach „Bearer“. Fehlt er oder
stimmt das Token nicht, antwortet die API mit 401 und {"error":"unauthorized"}.
Schritt 4 — Bot laden, starten, pausieren, stoppen
# Welche Bots gibt es?
Invoke-RestMethod -Headers $h http://127.0.0.1:8765/api/bots
# Bot laden — Name mit oder ohne .bot.json, auch ein Teil des Namens reicht
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
-Body '{ "name": "clicker-heroes-komplett" }' http://127.0.0.1:8765/api/bot/load
# Starten
Invoke-RestMethod -Headers $h -Method Post http://127.0.0.1:8765/api/run
# Pausieren und fortsetzen
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
-Body '{ "paused": true }' http://127.0.0.1:8765/api/pause
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
-Body '{ "paused": false }' http://127.0.0.1:8765/api/pause
# Stoppen
Invoke-RestMethod -Headers $h -Method Post http://127.0.0.1:8765/api/stop
Jede Aktion antwortet mit { "ok": true, "message": "…" } oder { "ok": false, "message": "Grund" } — zum
Beispiel „Läuft bereits.“ oder „Bot 'xyz' nicht gefunden.“ (Die Meldungen sind derzeit auf Deutsch.)
Protokoll mitlesen
/api/logs?since=N liefert die Protokollzeilen ab Zeile N (0 = alle). Merke dir die Anzahl der gelesenen Zeilen
und frage beim nächsten Mal ab dort — so bekommst du nur Neues:
$zeilen = Invoke-RestMethod -Headers $h "http://127.0.0.1:8765/api/logs?since=0"
$zeilen.Count # z. B. 12
Invoke-RestMethod -Headers $h "http://127.0.0.1:8765/api/logs?since=12" # nur die neuen Zeilen
Alle Endpunkte im Überblick
| Aufruf | Zweck | Token nötig |
|---|---|---|
GET /api/health |
Lebenszeichen der App | nein |
GET /api/status |
läuft/pausiert, Anzahl Noten und Protokollzeilen, geladener Bot | ja |
GET /api/logs?since=N |
Protokollzeilen ab N | ja |
GET /api/bots |
Bots im Bots-Ordner (Name, Pfad, Größe, Änderungsdatum) | ja |
POST /api/bot/load { "name": "…" } |
Bot in den Editor laden | ja |
POST /api/run |
geladenen Bot starten | ja |
POST /api/stop |
Ausführung stoppen | ja |
POST /api/pause { "paused": true/false } |
pausieren oder fortsetzen | ja |
GET /api/tools/openai |
fertiges Function-Calling-Manifest für KI-Assistenten | ja |
Mit einem KI-Assistenten verbinden
GET /api/tools/openai liefert eine fertige Werkzeugliste im OpenAI-Format („tools“). Sie beschreibt jede Funktion —
get_status, get_logs, list_bots, load_bot, run_bot, stop_bot, pause_bot — so, dass ein Sprachmodell
sie von selbst richtig aufruft. Der übliche Aufbau:
- Dein Skript holt das Manifest und übergibt es dem KI-Dienst als Werkzeuge.
- Du schreibst der KI: „Starte den Bot clicker-heroes-komplett und sag mir, wenn im Protokoll ein Fehler steht.“
- Die KI antwortet mit einem Werkzeugaufruf (z. B.
run_bot); dein Skript führt den passenden HTTP-Aufruf aus und gibt das Ergebnis zurück.
Die App ruft dabei keinen KI-Dienst selbst auf — die Brücke zwischen KI und API ist dein Skript. So bleibt dein Token auf deinem Rechner.
Sicherheit
- Die API ist nur von deinem eigenen Rechner erreichbar. Andere Geräte im Netzwerk kommen nicht heran — das ist Absicht und lässt sich nicht umstellen.
- Das Token ist wie ein Passwort: nicht weitergeben, nicht in Bots oder Screenshots. Bei Verdacht Neu klicken und Übernehmen.
- Schalte die API aus, wenn du sie nicht brauchst.
- Pause stoppt den Bot immer — auch mitten in einer API-Aktion.
Wenn es nicht klappt
- „Verbindung verweigert“ — die API ist nicht eingeschaltet, die App läuft nicht, oder der Port stimmt nicht (siehe Fenster Steuer-API…).
- 401 unauthorized — Token fehlt, ist falsch oder das Wort „Bearer“ fehlt im Header.
- Im Protokoll „❌ Steuer-API: …“ beim Übernehmen — meist ist der Port belegt. Anderen Port eintragen (z. B. 8766) und erneut übernehmen.
- „Bot 'xyz' nicht gefunden.“ — der Bot liegt nicht in
%AppData%\FlowBotCommander\botsoder heißt anders.GET /api/botszeigt, was die API sieht. - „Start nicht möglich (kein Start-Node?)“ — der geladene Bot hat keine Start-Note oder läuft schon.