Dokumentation

CLI-Referenz

Ollaya ist ein einzelnes Binary: die CLI, der Server und die Modell-Runner. Wenn du Ollama kennst, kommen dir die Befehle vertraut vor.

Befehl Was er tut
ollaya serve Startet den Server auf 127.0.0.1:11435
ollaya run MODEL [STATE] Beantwortet Fragen zu einem Zustand oder öffnet eine Eingabeaufforderung; lädt das Modell bei Bedarf herunter und in den Speicher
ollaya pull MODEL Lädt ein Modell aus der Registry herunter
ollaya list (ls) Listet die Modelle auf diesem Rechner
ollaya ps Listet die in den Speicher geladenen Modelle
ollaya show MODEL Zeigt Details, Fähigkeiten und Lizenz eines Modells
ollaya stop MODEL Entlädt ein laufendes Modell
ollaya stop Stoppt den Server, den die CLI gestartet hat
ollaya mcp [--http [ADDR]] Stellt die Modelle KI-Agenten über MCP bereit (Agents)
ollaya rm MODEL… Entfernt ein oder mehrere Modelle
ollaya cp SOURCE DESTINATION Kopiert ein Modell unter einem neuen Namen
ollaya create NAME [-f Modelfile] Erstellt ein Modell aus einem Modelfile
ollaya update [--check] Installiert die neueste Version über dieser
ollaya -v Gibt die Version des Servers (und des Clients) aus

Jeder Befehl außer serve und update spricht mit dem Server unter OLLAYA_HOST. Wenn dort nichts antwortet und die Adresse lokal ist, startet die CLI (außer ollaya stop ohne Modell) ollaya serve im Hintergrund und protokolliert nach ~/.ollaya/logs/server.log (oder server.log in OLLAYA_LOG_DIR).

Modellnamen

Modelle werden als name:tag referenziert; ohne Tag wird latest verwendet. Bei Namen wird die Groß-/Kleinschreibung nicht beachtet.

ollaya run laya                 # same as laya:latest, a router
ollaya run laya:multilingual
ollaya pull laya:en-fp32

Ein Modell wie laya:en enthält einen fp16- und einen fp32-Graph, die sich eine Gewichtsdatei teilen. Die Genauigkeit wird beim Laden des Modells gewählt: fp16 auf einer CUDA-GPU, fp32 auf der CPU. Die Tags -fp16 und -fp32 legen jeweils eine fest.

ollaya run

ollaya run laya --preset triage "Your app crashed during checkout and I was charged twice. Please refund one of the charges."

run verbindet sich mit dem Server (startet ihn bei Bedarf), lädt das Modell herunter, falls es nicht auf diesem Rechner vorhanden ist, lädt es in den Speicher und gibt pro Frage eine Zeile aus: die Antwort, einen Balken und ihre Wahrscheinlichkeit.

Flag Wirkung
--preset NAME Verwende ein Preset: eingebaut (triage, email, guard, moderation, router oder agent) oder eines, das du mit ollaya preset create gespeichert hast
--questions FILE|@FILE|JSON Verwende diese Fragen (Frage-ID → Frage) und überschreibe damit die eigenen des Modells: ein Dateipfad, @file (@- für stdin) oder Inline-JSON, das mit { beginnt
--format text|json text (Standard) gibt die Tabelle aus; json gibt die vollständige Antwort von /api/decide aus
--keepalive DURATION Wie lange das Modell danach geladen bleibt: 5m, 1h, 0 (jetzt entladen), -1 (geladen lassen)
--verbose Gibt zusätzlich die Wahrscheinlichkeit jeder Option, die Routing-Entscheidung und die Zeitmessungen aus
--state-json Parst den Zustand als JSON. Ein Zustand, der wie ein JSON-Objekt oder -Array aussieht, wird ohnehin erkannt
--image FILE Ein PNG-Bild, über das entschieden werden soll, für ein Vision-Modell (decider:2b-vision). Es begleitet jeden Zustand, auch in der REPL

Woher die Fragen kommen, entscheidet der erste Treffer: --questions, dann --preset, dann in das Modell eingebaute Fragen (die von qwen3guard oder solche, die mit einem Modelfile hinzugefügt wurden), dann das Preset triage. Wenn run auf triage zurückfällt, teilt es das auf stderr mit.

--questions nimmt das JSON auch direkt auf der Kommandozeile entgegen, so wie curl -d es macht: Ein Wert, der mit { beginnt, ist Inline-JSON, alles andere ist ein Dateipfad. @file ist immer eine Datei (praktisch, wenn ein Dateiname mit { beginnt), und @- liest die Fragen aus stdin; in dem Fall steht der Zustand auf der Kommandozeile:

ollaya run winnow:e4b --questions '{"topic":{"type":"choice","criteria":["billing","access","other"]}}' "..."
ollaya run winnow:e4b --questions @questions.json "..."
cat questions.json | ollaya run winnow:e4b --questions @- "..."

Der Zustand ist der Rest der Kommandozeile. Ohne einen liest run den weitergeleiteten stdin:

cat ticket.txt | ollaya run laya --preset triage

In einem Terminal ohne Zustand öffnet run eine Eingabeaufforderung. Gib einen Zustand ein und drücke Enter; mehreilige Eingaben schließt du in """ ein. Befehle:

Befehl Wirkung
/preset NAME Wechselt zu einem eingebauten Fragensatz
/set questions FILE Verwendet die Fragen aus einer JSON-Datei
/show Zeigt das Modell und die aktuellen Fragen
/clear Leert den Bildschirm
/bye Beendet (oder Strg+D)
/?, /help Hilfe

ollaya serve

Startet den Server, mit dem die CLI und deine Anwendungen sprechen. Er stellt die native API (/api/*) und die TypeSafe-kompatible API (/v1/*) bereit; siehe die API-Referenz. Das Linux-Installationsprogramm führt ihn als systemd-Dienst ollaya aus.

ollaya serve

Du brauchst ihn selten: Die anderen Befehle starten den Server im Hintergrund, wenn er nicht läuft. Wenn unter OLLAYA_HOST bereits ein Server läuft, teilt ollaya serve das mit und beendet sich; stoppe ihn zuerst mit ollaya stop, um den Server im Vordergrund auszuführen.

Er wird über Umgebungsvariablen konfiguriert:

Variable Standard Wirkung
OLLAYA_HOST 127.0.0.1:11435 Adresse, an die gebunden wird; das Ziel der CLI
OLLAYA_MODELS ~/.ollaya/models Modellablage
OLLAYA_KEEP_ALIVE 5m Wie lange ein Modell nach seiner letzten Anfrage geladen bleibt
OLLAYA_MAX_LOADED_MODELS 3 Gleichzeitig geladen gehaltene Modelle
OLLAYA_MAX_QUEUE 512 Entscheidungsanfragen in Bearbeitung, bevor 503 QUEUE_FULL kommt
OLLAYA_LOAD_TIMEOUT 5m Wie lange das Laden eines Modells dauern darf
OLLAYA_DEVICE auto auto (eine NVIDIA-GPU, wenn das Installationsprogramm die CUDA-Bibliotheken hinzugefügt hat, sonst die CPU), cpu, cuda oder cuda:<n>
OLLAYA_API_KEY nicht gesetzt Erfordert Authorization: Bearer <key>; die CLI sendet es ebenfalls
OLLAYA_ORIGINS nicht gesetzt Zusätzliche erlaubte Browser-Ursprünge, durch Kommas getrennt
OLLAYA_REGISTRY ollaya.dev Standard-Registry-Host in Modellnamen
OLLAYA_LOG info Protokollstufen; debug protokolliert jede Anfrage mit Status und Dauer
OLLAYA_LOG_DIR nicht gesetzt Protokolliert nach <dir>/server.log statt nach stderr (wird erstellt, falls nicht vorhanden; angehängt, nie rotiert)

Für den systemd-Dienst änderst du sie mit sudo systemctl edit ollaya und Environment=-Zeilen.

ollaya pull

Lädt ein Modell herunter und prüft jede Ebene gegen ihren sha256. Das Herunterladen eines Routers lädt auch jedes Modell mit herunter, an das er weiterleitet. Nur die Ebenen, die dieser Rechner braucht, werden heruntergeladen, und unterbrochene Downloads werden fortgesetzt.

ollaya pull laya

ollaya list und ollaya ps

list zeigt die Modelle auf diesem Rechner mit ihrer ID, Größe und dem Zeitpunkt, an dem sie heruntergeladen wurden. ps zeigt die geladenen Modelle, das Gerät, auf dem sie laufen (cpu, cuda:0), die Genauigkeit und wann sie entladen werden.

NAME                ID             SIZE     MODIFIED
laya:latest         b87ca1631b11   11 KB    13 seconds ago
laya:multilingual   ba7a334675b4   684 MB   13 seconds ago
laya:en             bf30e4654e94   854 MB   30 seconds ago

ollaya show

Gibt die Architektur, die Parameter, die Kontextlänge, die Genauigkeiten, die Sprachen, die Fähigkeiten und die Lizenz eines Modells aus. Bei einem Router gibt es die Routen aus.

Flag Gibt nur aus
--questions Die in das Modell eingebauten Fragen
--license Die Lizenz
--modelfile Ein Modelfile, das das Modell neu erstellt
--parameters Die Parameter, etwa eine festgelegte Genauigkeit

ollaya stop

ollaya stop MODEL entlädt ein laufendes Modell, sobald seine laufenden Anfragen abgeschlossen sind, anstatt zu warten, bis die Keep-alive-Zeit abläuft.

ollaya stop ohne Modell stoppt den Server unter OLLAYA_HOST, wodurch jedes Modell entladen wird. Es stoppt nur einen Server, den du gestartet hast – mit ollaya serve oder durch Ausführen eines anderen Befehls. Es stoppt niemals den Server eines anderen Benutzers, etwa den Linux-systemd-Dienst; diesen stoppst du mit sudo systemctl stop ollaya.

ollaya rm und ollaya cp

ollaya cp laya:en my-guardrail
ollaya rm my-guardrail

rm löscht außerdem die Blobs, die kein anderes Modell verwendet. Das Entfernen eines Routers behält die Modelle, an die er weiterleitet. cp überschreibt ein vorhandenes Ziel.

ollaya preset

Ein Preset ist ein benannter Fragensatz, den du mit jedem Modell wiederverwenden kannst: ollaya run MODEL --preset NAME oder "preset": "NAME" auf /api/decide. Sechs sind eingebaut. Speichere dein eigenes:

ollaya preset create billing-check --questions billing.json --description "Billing, and how upset the customer is"
ollaya run winnow:e4b --preset billing-check "I was charged twice this month."
Befehl Wirkung
ollaya preset list Eingebaute und eigene Presets mit ihren Frage-IDs
ollaya preset show NAME Die Fragen eines Presets als JSON
ollaya preset create NAME --questions FILE|@FILE|JSON [--description TEXT] Speichert ein eigenes Preset und ersetzt eines mit demselben Namen. --questions akzeptiert dieselben Formen wie in ollaya run
ollaya preset rm NAME... Löscht eigene Presets. Eingebaute Presets können nicht gelöscht werden

Namen bestehen aus Kleinbuchstaben, Ziffern, - und _. Eigene Presets werden vom Server gespeichert (in presets/ neben den Modellen), sodass die CLI, die API und der MCP-Server sie alle sehen. Ein Preset unterscheidet sich von einem Modell, das mit QUESTIONS eines Modelfiles erstellt wurde: Es ist nicht an ein Modell gebunden und kopiert nichts.

ollaya update

Installiert die neueste Version über dieser: Es führt das Installationsskript erneut aus und installiert in dasselbe Präfix, sodass Modelle, Presets und der systemd-Dienst unverändert bleiben.

ollaya update --check   # only say whether a newer release exists
ollaya update

Ein Binary, das mit der Desktop-App kam (die macOS-App, das Windows-Installationsprogramm, ein AppImage oder die .deb- und .rpm-Pakete), wird durch Installieren der neuen App aktualisiert, und ein Container durch Herunterladen des neuen Images; ollaya update teilt das mit, statt es zu ändern.

ollaya create

Erstellt ein Modell aus einem Modelfile, zum Beispiel um einen Fragensatz, eine neu angepasste Kalibrierung oder eine festgelegte Genauigkeit einzubacken. -f hat den Standardwert ./Modelfile.

ollaya create triage -f Modelfile