Die Kommandozeilen-Werkzeuge
OpticScript ist zuerst eine Engine, dann eine Oberfläche. Wer sie aus einem Makefile, einer CI-Strecke oder einem Shell-Skript heraus benutzen will, braucht kein Fenster — sondern sechs Programme, die alle dieselbe Engine tragen und keine Laufzeitumgebung voraussetzen.
Keine Python-Installation, kein Node, kein pip install. Jede Binary
bringt alles mit: die Engine, die Formatbibliotheken, die Schriften.
| Werkzeug | Wofür |
|---|---|
mlcos-run |
Ein Skript ausführen |
mlcos-compile |
Ein Skript in eine eigenständige Binary verwandeln |
mlcos-analyze |
Bilder messen statt umwandeln |
mlcos-server |
Dieselbe Engine über HTTP |
mlcos-ext |
Erweiterungen und Werkzeug-Plugins verwalten |
mlcos-mcp |
Die Engine als Werkzeug für KI-Agenten |
mlcos-license |
Lizenz eintragen und anzeigen, ohne Fenster |
Unter Windows heißen sie mlcos-run.exe und so weiter; unter macOS
liegen sie im Programmpaket unter Contents/MacOS/, im DMG zusätzlich
im Ordner CLI.
mlcos-run
Führt ein Skript aus. Die Flaggen ergeben sich aus dem Skript selbst —
jedes //!INPUT:, //!OUTPUT: und //!PARAM: wird zu einer Option.
mlcos-run thumbnail.js --SRC=foto.jpg --OUT=klein.webp --BREITE=400
Das ist der Unterschied zu einem üblichen Bildwerkzeug: Sie erfinden die Schnittstelle im Skript, und die Kommandozeile richtet sich danach. Ein Skript mit drei Eingängen bekommt drei Flaggen, ohne dass jemand einen Parser schreibt.
Erweiterungen werden automatisch gefunden — projektlokal in
./.mlcos-extensions/, benutzerweit in ~/.mlcos/extensions/, dazu
die mitgelieferten. --no-extensions schaltet das ab.
mlcos-compile
Macht aus dem Skript eine Binary, die für sich allein läuft.
mlcos-compile thumbnail.js # → bin/thumbnail
Der Empfänger installiert nichts. Keine Runtime, kein Docker-Image,
keine Abhängigkeitsliste — eine Datei, die man kopiert und startet. Die
Flaggen der Binary sind wieder die Direktiven des Skripts, sie trägt
ihre eigene --help.
Ausführlich in Vom Skript zur Executable.
mlcos-analyze
Das einzige Werkzeug hier, das kein Bild zurückgibt, sondern Zahlen.
mlcos-analyze stats foto.jpg # Helligkeit, Kontrast, Schärfe, Beschnitt
mlcos-analyze compare a.png b.png # MSE, PSNR, wie weit auseinander?
mlcos-analyze hash *.jpg # Duplikate finden
mlcos-analyze exif foto.jpg # Kamera, Objektiv, Aufnahmezeit
mlcos-analyze histogram foto.jpg # Verteilung je Kanal
--json bei jedem Unterbefehl, wenn ein Skript die Antwort weiterreicht.
Wofür man das braucht: prüfen, ob ein Renderlauf sich verändert hat
(compare gegen eine abgelegte Referenz), unscharfe Scans aussortieren
(stats liefert die Laplace-Varianz, dasselbe Maß, mit dem Kameras
fokussieren), Duplikate in einem Ordner finden (hash übersteht
Skalieren und Neukodieren), oder nachsehen, ob ein Bild noch die
Herkunftsangaben trägt, die die Pipeline eingestempelt hat.
$ mlcos-analyze compare render.png referenz.png
MSE 0.00000012
PSNR 69.21 dB (praktisch nicht unterscheidbar)
max Differenz 1.0 von 255
abweichend 613 Pixel (0.0061 %)
Hash-Abstand 0 Bit (dasselbe Bild)
Bilder unterschiedlicher Größe werden allein über den Wahrnehmungs-Hash verglichen — ein MSE zwischen verschieden großen Bildern ist nicht definiert, und eine Zahl auszugeben wäre schlechter als keine.
mlcos-server
Dieselbe Engine hinter HTTP.
mlcos-server -port 8080 -token geheim
POST /process/js nimmt das Skript und die Bilder als Multipart
entgegen und liefert das Ergebnis zurück. Im Servermodus sind
Dateizugriffe abgeschaltet: Eingaben kommen als Felder image_<KEY>,
nichts wird von der Platte gelesen oder auf sie geschrieben.
mlcos-ext
Verwaltet Erweiterungen (JavaScript, laufen in der Engine) und Werkzeug-Plugins (eigene Programme, die die Engine aufruft).
mlcos-ext list # was ist installiert
mlcos-ext install-from <katalog-url> --list # was gibt es
mlcos-ext install-from <katalog-url> rmbg # eines holen
Der Katalog liefert plattformgerecht: ein Windows-Rechner lädt keine Linux-Binaries mit, und was auf dieser Plattform gar nicht läuft, wird vorher abgelehnt statt hinterher. Jede Datei wird über ihre SHA-256-Prüfsumme verifiziert, bevor sie als installiert gilt.
mlcos-mcp
Der Model-Context-Protocol-Server: die Engine als Werkzeug für KI-Agenten. Eigene Seite: MCP-Server.
mlcos-license
Trägt eine Lizenz ein, ohne dass die Desktop-App nötig ist — für Server, die man per SSH einrichtet. Es ist dieselbe Aktivierung wie in der App: einmal online prüfen, danach offline gültig.
mlcos-license activate <SCHLÜSSEL> --name "Vorname Nachname"
mlcos-license status # was gilt, bis wann, was freigeschaltet ist
mlcos-license status --json
mlcos-license remove
Die Lizenz gilt für das Benutzerkonto, das das Kommando ausführt. Auf einem Server also als das Konto ausführen, unter dem der Dienst läuft, und den Dienst danach neu starten. Einen Server für andere im Netz schaltet eine Enterprise-Lizenz frei, siehe Team-Server.
Zusammen benutzt
Die Werkzeuge sind so geschnitten, dass sie sich in einer Shell-Strecke ergänzen. Ein Regressionstest für eine Bildpipeline braucht keine weitere Software:
#!/usr/bin/env bash
set -e
mlcos-run pipeline.js --SRC=eingabe.png --OUT=/tmp/neu.png
# Weicht das Ergebnis von der abgelegten Referenz ab?
psnr=$(mlcos-analyze compare /tmp/neu.png referenz.png --json | jq .psnr)
if [ "$(echo "$psnr < 50" | bc)" = 1 ]; then
echo "Ausgabe hat sich geändert: $psnr dB"
exit 1
fi
Oder ein Ordner voller Scans, aus dem die unscharfen herausfallen:
for f in scans/*.jpg; do
s=$(mlcos-analyze stats "$f" --json | jq .sharpness)
awk -v s="$s" 'BEGIN { exit (s < 0.0001) ? 0 : 1 }' && echo "zu weich: $f"
done
Siehe auch
- Erste Schritte — Installation und die Tour durch die Engine
- Vom Skript zur Executable —
mlcos-compileausführlich - MCP-Server — für KI-Agenten
- API-Referenz — jede
Engine.*-Methode