Space Bunny Alpha installieren: Schritt für Schritt
9 Min. Lesezeit

Die kurze Antwort auf die Frage "Wie installiert man Space Bunny" lautet: gar nicht. Space Bunny Alpha ist kein eigenständiges Programm, das Sie starten; es ist ein Modell, das Sie über das Netz aufrufen. Es gibt kein pip install und kein npm i-Paket für Ihren Rechner. Sie brauchen nur einen API-Schlüssel und eine erste Anfrage.
Das heißt nicht, dass es einfach wäre. Hinter diesem Modell stecken einige echte Entscheidungen, und dieser Artikel geht alle einzeln durch, jeweils mit Code, den Sie kopieren und ausführen können.
Zuerst schauen wir uns an, was das Modell ist, danach richten wir es Schritt für Schritt ein.
Was ist Space Bunny Alpha?
Space Bunny Alpha ist ein nicht benanntes ("anonymes") Sprachmodell, das auf OpenRouter unter der Kennung stealth/space-bunny-alpha bereitgestellt wird. Sein Anbieter erscheint als Stealth, und die Gewichte wurden nicht veröffentlicht. Es gibt keine Modellkarte auf Hugging Face, keine Lizenzdatei und keinen herunterladbaren Checkpoint. Genau deshalb wird aus der Installationsfrage nie ein Download.
Die folgenden Werte habe ich beim Schreiben dieses Artikels gegen die Modell-API und die Modellseite von OpenRouter geprüft:
| Eigenschaft | Wert |
|---|---|
| Modellkennung | stealth/space-bunny-alpha |
| Hinzugefügt bei OpenRouter | 23. September 2026 |
| Kontextfenster | 1.000.000 Tokens |
| Maximale Ausgabe | 524.288 Tokens |
| Eingabeformate | Text, Bild, Video |
| Ausgabeformat | Text |
| Preis Eingabe (pro Million Tokens) | 0 $ |
| Preis Ausgabe (pro Million Tokens) | 0 $ |
| Reasoning | verpflichtend, low / medium / high / xhigh / max |
| Standardmäßiger Reasoning-Aufwand | max |
| Veröffentlichte Gewichte | keine |
| Veröffentlichter Wissensstand | keiner |
| Inhaltsmoderation | keine (is_moderated: false) |
Drei Zeilen dieser Tabelle verdienen einen eigenen Absatz.
Der Preis ist null. Sowohl Eingabe als auch Ausgabe werden mit 0 $ pro Million Tokens geführt, das bedeutet eine Rechnung von null Dollar am Monatsende. OpenRouter wendet auf kostenlose Modelle allerdings Raten- und Durchsatzlimits an; "unbegrenzt" wäre also das falsche Wort.
Das Kontextfenster beträgt eine Million Tokens. In einer einzigen Anfrage sind das rund 750.000 Zeilen reiner Text oder ein paar hundert Quelldateien. Das im opencode-Artikel beschriebene Problem mit der Kontextgrenze fällt bei diesem Modell also deutlich später an.
Reasoning ist verpflichtend und steht standardmäßig auf max. Das Modell arbeitet mit einem Reasoning-Schritt, den Sie nicht abschalten können, und der Standard ist die höchste Stufe. Diese Einstellung beeinflusst die Latenz direkt; worum es genau geht, erkläre ich in einem eigenen Abschnitt direkt nach der ersten Anfrage.
Warum über OpenRouter?
Da die Gewichte nie veröffentlicht wurden, können Sie das Modell nicht auf Ihrem eigenen Rechner betreiben, nicht mit ollama laden und nicht mit vllm ausliefern. Der einzige Verteilungsweg ist eine API. Damit stellt sich die nächste Frage: Welche API nehmen Sie?
Es gibt zwei Wege.
Direkt zum Anbieter. Wenn ein Anbieter einen eigenen Endpunkt hat, ist das die dünnste mögliche Schicht. Für einen als Stealth geführten Anbieter gibt es aber keine öffentliche Endpunktadresse und keine eigene Dokumentation. Die einzige dokumentierte Adresse ist die von OpenRouter selbst.
Über OpenRouter. OpenRouter ist eine Vermittlungsschicht, die Hunderte Modelle hinter einer einzigen OpenAI-kompatiblen Adresse bündelt. Sie ist zugleich der einzige offizielle Auslieferungspunkt für dieses Modell. Praktischer Nebeneffekt: Sie verwenden für curl, Python und TypeScript denselben Client und können die Modellkennung jederzeit wechseln.
Alle Codebeispiele in diesem Artikel verwenden den zweiten Weg. Die Trennung "Werkzeug ist kostenlos, Token wählen Sie" aus dem opencode-Artikel gilt auch hier: OpenRouter ist Ihr Werkzeug, Space Bunny Alpha die Engine darin.
Schritt 1: OpenRouter-API-Schlüssel holen
Für einen Modellaufruf brauchen Sie zuerst einen Schlüssel.
- Rufen Sie
openrouter.ai/keysauf und melden Sie sich an. - Klicken Sie auf Create Key.
- Geben Sie dem Schlüssel einen Namen. Der Name ist nur für Sie da, hilft aber, wenn mehrere Schlüssel auf dem Bildschirm stehen.
- Kopieren Sie den Schlüssel. Nach dem Schließen dieser Ansicht sehen Sie ihn nicht mehr. Schließen Sie sie nicht vor dem Kopieren.
Notieren Sie den Schlüssel, aber nicht im Code. Das Mindeste ist, ihn als Umgebungsvariable zu definieren:
# macOS / Linux
export OPENROUTER_API_KEY="sk-or-v1-..."
# PowerShell
$env:OPENROUTER_API_KEY = "sk-or-v1-..."Warum ich darauf bestehe: Liegt ein Schlüssel in einer Datei oder in einem Repository, landet er in der Git-Historie, und das einzige Mittel ist dann die Sperrung. In env aufbewahrt lässt sich derselbe Code außerdem lokal wie auf einem Server ausführen.
Auch für die kostenlose Stufe brauchen Sie ein Konto. Es gibt keinen Weg "kostenlos ohne Anmeldung".
Schritt 2: Erste Anfrage mit curl
Am schnellsten erkennen Sie, ob Ihre Einrichtung funktioniert, wenn Sie sie überspringen und eine Anfrage senden. Wenn etwas nicht stimmt, debuggen Sie mit möglichst wenigen Variablen.
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "stealth/space-bunny-alpha",
"messages": [
{ "role": "user", "content": "Was ist Space Bunny Alpha in einem Satz?" }
]
}'Die Antwort sieht so aus:
{
"id": "gen-...",
"choices": [
{ "message": { "role": "assistant", "content": "..." } }
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 61,
"total_tokens": 85,
"cost": 0
}
}Sehen Sie sich kurz das Feld usage.cost an: Es ist 0. Weil der Preis null ist, meldet es wirklich null.
Für das Modell gibt es zwei Namen: den Anzeigenamen Space Bunny Alpha und die Kennung für die API, stealth/space-bunny-alpha. Die API verlangt immer die zweite. Mit dem Anzeigenamen bekommen Sie einen 404.
Zwei optionale Header zeigen im OpenRouter-Dashboard, aus welcher Anwendung ein Aufruf kam:
-H "HTTP-Referer: https://ihre-app.de" \
-H "X-Title: Ihre App"Keiner der beiden Header verändert die Antwort des Modells.
Schritt 3: Python
Die API von OpenRouter ist OpenAI-kompatibel. Das ist eine meiner liebsten Abkürzungen: Wenn Sie das Paket openai ohnehin verwenden, ist der Wechsel eine geänderte Basis-URL.
pip install openaiimport os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENROUTER_API_KEY"],
base_url="https://openrouter.ai/api/v1",
)
response = client.chat.completions.create(
model="stealth/space-bunny-alpha",
messages=[
{"role": "user", "content": "Was ist Space Bunny Alpha in einem Satz?"}
],
)
print(response.choices[0].message.content)
print("Kosten:", response.usage.cost)Abgesehen von diesen zwei Zeilen gibt es keinen Unterschied zu OpenAI. Deshalb genügt es später auch, nur die Zeile model= zu ändern statt das ganze Programm.
Lassen Sie das Zeitlimit nicht auf dem Standard. Weil der Reasoning-Aufwand standardmäßig max ist, kann der Standardwert von 10 Sekunden während eines langen Reasoning-Durchlaufs ablaufen:
client = OpenAI(
api_key=os.environ["OPENROUTER_API_KEY"],
base_url="https://openrouter.ai/api/v1",
timeout=180.0,
max_retries=2,
)Schritt 4: TypeScript
npm install openaiimport OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENROUTER_API_KEY,
baseURL: "https://openrouter.ai/api/v1",
timeout: 180_000,
maxRetries: 2,
});
const completion = await client.chat.completions.create({
model: "stealth/space-bunny-alpha",
messages: [{ role: "user", content: "Was ist Space Bunny Alpha in einem Satz?" }],
});
console.log(completion.choices[0]?.message?.content);
console.log("Kosten:", completion.usage?.cost);In TypeScript ist nur eine Sache wichtig: process.env.OPENROUTER_API_KEY muss typisiert sein. Wenn Sie strict: true in der tsconfig.json verwenden, muss der Typ process aus Node bekannt sein, also achten Sie darauf, dass @types/node installiert ist.
Schritt 5: Den Reasoning-Aufwand steuern
Das Reasoning von Space Bunny Alpha lässt sich nicht abschalten, die Stufe aber ändern. Es gibt fünf Stufen:
reasoning_effort |
Wann |
|---|---|
low |
Einfache Formatierung, Klassifikation, kurze Antworten |
medium |
Alltägliche Codefragen, Erklärtexte |
high |
Fehlersuche, Änderungen über mehrere Dateien |
xhigh |
Planung, Architekturentscheidungen, schwere Klausuraufgaben |
max |
Der Standard. Lange Ketten, komplexe Fehlersuche |
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "stealth/space-bunny-alpha",
"messages": [{ "role": "user", "content": "Schreibe einen 20-zeiligen Quicksort." }],
"reasoning_effort": "low"
}'Weil der Standard max ist, läuft jede Anfrage auf der teuersten Stufe, solange Sie das nicht setzen. Der Preis ist null, die Latenz nicht: Der Unterschied zwischen low und max ist in einer Chat-Oberfläche deutlich sichtbar.
Wenn Sie den Reasoning-Schritt getrennt von der Antwort sehen möchten, aktivieren Sie das Feld reasoning:
-d '{
"model": "stealth/space-bunny-alpha",
"messages": [{ "role": "user", "content": "Warum wirft Zeile 18 einen Fehler?" }],
"reasoning": { "enabled": true, "exclude": false }
}'Der Text dieses Schritts landet in choices[0].message.reasoning. Wenn Sie einen Agenten bauen und ihn dem Nutzer nicht zeigen wollen, setzen Sie exclude: true.
Schritt 6: Bild- und Videoeingabe
Das Modell nimmt text + image + video entgegen. Ein Bild können Sie auf zwei Wegen senden.
Als entfernte URL. Der kürzeste Weg ist eine öffentlich erreichbare Adresse:
-d '{
"model": "stealth/space-bunny-alpha",
"messages": [{
"role": "user",
"content": [
{ "type": "text", "text": "Erklären Sie die Fehlermeldung in diesem Screenshot." },
{ "type": "image_url", "image_url": { "url": "https://example.com/fehler.png" } }
]
}]
}'Als Data-URL. Sie lesen die Datei ein und betten sie als Base64 ein. Bei großen Dateien ist eine entfernte URL günstiger, weil Base64 die Bytes bei jeder Anfrage erneut überträgt:
import { readFileSync } from "node:fs";
const image = readFileSync("fehler.png").toString("base64");
const completion = await client.chat.completions.create({
model: "stealth/space-bunny-alpha",
messages: [
{
role: "user",
content: [
{ type: "text", text: "Erklären Sie die Fehlermeldung in diesem Screenshot." },
{
type: "image_url",
image_url: { url: `data:image/png;base64,${image}` },
},
],
},
],
});Video funktioniert nach demselben Muster: ein Element {"type": "video_url", "video_url": {...}} im Content-Array. Wichtig ist, dass das Kontextfenster von einer Million Tokens ein gemeinsames Budget für Text, Bilder und Video ist. Der Token-Bedarf der Videoframes wird aus demselben Kontext bezahlt.
Mehr zur visuellen Seite steht im Artikel 1M Kontext und multimodale Eingabe.
Schritt 7: Die Antwort auf JSON festlegen
Wenn Sie strukturierte Ausgabe brauchen, verwenden Sie response_format. Das Modell unterstützt diesen Parameter:
-d '{
"model": "stealth/space-bunny-alpha",
"messages": [{
"role": "user",
"content": "Geben Sie Betreff und Dringlichkeit dieser E-Mail als JSON aus."
}],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "betreff_analyse",
"strict": true,
"schema": {
"type": "object",
"properties": {
"betreff": { "type": "string" },
"prioritaet": { "type": "integer" },
"etikett": { "type": "string", "enum": ["vertrieb", "support", "info", "spam"] }
},
"required": ["betreff", "prioritaet", "etikett"],
"additionalProperties": false
}
}
}
}'Ohne strict: true und additionalProperties: false bleibt das Schema locker und das Modell kann Schlüssel erfinden, die nicht darin stehen. Diese zwei Zeilen nicht wegzulassen ist die billigste Absicherung gegen einen Parse-Fehler später.
Wenn Ihnen "gib mir gültiges JSON" reicht, funktioniert auch {"type": "json_object"}. Ohne Schema bestimmen dann aber die Modell das die Feldnamen.
Schritt 8: An Open-Source-Agenten anbinden
Sobald ein Modell in einem Agenten läuft, muss der Agent den Namen kennen. Hier zahlt sich die OpenAI-Kompatibilität von OpenRouter aus.
opencode. Fügen Sie diesen Block in die Datei opencode.json im Projektstamm ein:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openrouter": {
"npm": "@ai-sdk/openai-compatible",
"name": "OpenRouter",
"options": {
"baseURL": "https://openrouter.ai/api/v1",
"apiKey": "{env:OPENROUTER_API_KEY}"
},
"models": {
"stealth/space-bunny-alpha": {
"name": "Space Bunny Alpha",
"limit": { "context": 1000000, "output": 524288 }
}
}
}
}
}Der Block limit muss stimmen. Diese Werte für context und output sind die echten Grenzen des Modells, und das Werkzeug rechnet damit aus, wann eine Sitzung voll ist. Falschwerte führen dazu, dass die Sitzung zu früh abbricht oder einen Fehler wirft.
Das Feld npm muss @ai-sdk/openai-compatible sein, das richtige Paket für Anbieter mit /v1/chat/completions. Mit @ai-sdk/openai bekommen Sie einen Fehler, weil /v1/responses erwartet wird; das ist der häufigste Einrichtungsfehler aus dem opencode-Artikel.
Achten Sie auf die Schreibweise {env:OPENROUTER_API_KEY}. Diese Datei landet meist im Repository, und der Schlüssel gehört dort nicht hinein.
VS-Code-Erweiterungen wie Cline, Roo Code und Continue. Alle drei bieten eine Option "OpenAI-kompatibel" beziehungsweise "benutzerdefinierter Anbieter". Sie tragen dieselben drei Werte ein:
| Feld | Wert |
|---|---|
| Anbieter | OpenAI Compatible / OpenRouter |
| Basis-URL | https://openrouter.ai/api/v1 |
| Modellkennung | stealth/space-bunny-alpha |
Alle drei verwenden dieselbe Adresse; vergessen Sie das /v1 am Ende nicht.
Häufige Fehler
401 - Authentifizierung fehlgeschlagen. Der Schlüssel ist falsch oder hat beim Kopieren ein führendes beziehungsweise abschließendes Leerzeichen bekommen. Prüfen Sie mit echo $OPENROUTER_API_KEY | wc -c, ob die Variable wirklich exportiert wurde.
402 - zu wenig Guthaben. Auch ein kostenloses Modell braucht ein nutzbares Konto. Dieser Fehler erscheint, wenn bei OpenRouter kein Guthaben hinterlegt ist. Laden Sie im Dashboard nach.
404 - Modell unbekannt. Sie haben den Anzeigenamen übergeben. Schreiben Sie stealth/space-bunny-alpha, nicht Space Bunny Alpha.
429 - Ratenbegrenzung. Kostenlose Modelle haben eine Warteschlange. max_retries auf 2 oder 3 zu setzen und mit exponentiellem Backoff erneut zu versuchen löst es meistens.
502 - Fehler beim Anbieter. Fehlgeschlagene Generierungen werden nicht berechnet, ein erneuter Versuch ist also gefahrlos.
Die Antwort kommt, aber sehr spät. Der Standard reasoning_effort: max führt jede Anfrage auf der teuersten Stufe aus. Probieren Sie für einfache Aufgaben low und erhöhen Sie das Client-Zeitlimit auf 180 Sekunden.
Text kommt an, aber kein JSON. Sie haben den Teil response_format weggelassen. Höflich zu fragen reicht bei einem Reasoning-Modell nicht; geben Sie das Schema an die API.
Das Modell lehnt ein Bild ab. Das Modell meldet is_moderated: false, es gibt also auf OpenRouter-Seite keinen Inhaltsfilter. Die Prüfung der Eingabe müssen Sie selbst übernehmen. Die Validierungslogik aus dem Artikel zur Sicherheit von Sprachchat-Apps gilt hier genauso.
Für wen lohnt es sich?
Wo es passt: überall dort, wo die Kosten wirklich null sein müssen. Eigene Projekte, Experimente, Lehrmaterial, Klausurarbeiten, Prototypen. Alles, was Sie ausprobieren wollen, bevor Sie einen bezahlten Tarif buchen.
Wo Sie zweimal nachdenken sollten: in der Produktion. Ein Kontextfenster von 1M, ein Reasoning-Aufwand auf max und ein Preis von null klingen alle drei verlockend, aber es gibt drei Unbekannte: Sie wissen nicht, wer das Modell gebaut hat, Sie können die Gewichte nicht sehen, und es ist kein Wissensstand veröffentlicht. Den kritischen Code eines langlebigen Produkts einem Modell mit diesen drei Lücken zu geben, ist ein Risiko.
Außerdem ist "kostenlos" keine dauerhafte Zusage. Die Preisliste von heute ist nicht die von morgen; im Vergleichsartikel gehe ich darauf ein, welche Teile dieses Bildes wahrscheinlich Bestand haben und welche nicht.
Quellen
- OpenRouter-Modellseite: Space Bunny Alpha (Modellkennung, Kontext, Preis, Reasoning-Stufen)
- OpenRouter-Modell-API und Endpunktdetails (Eingabeformate, unterstützte Parameter, Verfügbarkeit,
is_moderated) - OpenRouter-API-Dokumentation (Anfragekörper, Streaming, Fehlercodes)
Verwandte Artikel
Space Bunny Alpha im Vergleich mit anderen KI-Agenten
Space Bunny Alpha verglichen mit Claude, GPT, Gemini und kostenlosen offenen Modellen: Preis, 1M Kontext, multimodale Eingabe und Agentenfähigkeiten.
Space Bunny Alpha: 1M Kontext und multimodale Eingabe
Was ein Kontextfenster von einer Million Tokens fasst, wie Bild und Video es teilen und wie man das Token-Budget misst und verwaltet.
Einen KI-Agenten mit Space Bunny Alpha bauen
Vom Werkzeugschema bis zur Schleife: einen Coding-Agenten auf Space Bunny Alpha bauen, Werkzeugfehler zurückgeben, Ausgabe auf JSON festlegen.