SovrGPT Dokumentation

Coding in der IDE

SovrGPT als Modell-Backend für Kilo Code, Cline, Roo Code, Continue, OpenCode, Qwen Code, goose, Zed, Theia, OpenHands, Cursor und Aider — souveräne EU-Modelle direkt im Editor, mit ehrlichen Angaben zu Latenz, Telemetrie, Freigaben und Grenzen.

Coding in der IDE

SovrGPT ist OpenAI-kompatibel. Jedes Coding-Werkzeug, das eine eigene Basis-URL akzeptiert, lässt sich damit auf europäische Modelle umstellen — ohne dass dein Code einen US-Anbieter erreicht.

  • Basis-URL: https://sovrgpt.com/api/v1
  • Schlüssel: unter Einstellungen → API-Keys erzeugen, Scope chat. Format sov_…
  • Auth: Authorization: Bearer sov_…

Lies erst den Abschnitt Kaltstart. Unsere Modelle laufen auf Karten, die im Leerlauf abgeschaltet werden. Die erste Anfrage nach einer Pause wartet mehrere Minuten. Das ist kein Fehler, aber es ist der Unterschied zwischen „funktioniert" und „im Alltag benutzbar" — und viele IDE-Plugins laufen vorher in einen Timeout.

Welches Modell?

Modell-IDWofürKontextKaltstart (gemessen)
qwen3.6-35b-a3bDie Vorgabe für agentisches Arbeiten — mehrstufige Aufgaben, Werkzeugketten, Umbauten über mehrere Dateien131k~421 s
stackit-qwen3.6-27bkein Kaltstart — Betrieb bei STACKIT in Deutschland131k0 s
tensorx-kimi-k2.7-codeSchwere agentische Läufe, kein Kaltstart262k0 s

🔴 Nimm für Agenten kein 32k-Modell — und warum hier kein 32k-Modell mehr steht

Bis zum 10.09.2026 stand qwen3-coder-next-fp8 hier als Empfehlung für „Repository-weite Umbauten, lange Werkzeugketten". Das war falsch herum. Seit dem 11.09.2026 ist das Modell ganz aus dem Katalog — wir schreiben lieber, warum, als es stillschweigend zu tauschen.

Agentische Werkzeuge verbrauchen Kontext, bevor sie überhaupt anfangen: Clines Systemprompt allein belegt rund 11.700 Token, OpenHands nennt 22.000 als Minimum und 32.768 als Empfehlung — also genau die alte Obergrenze, ohne jeden Puffer. Dazu kommt der Verlauf: ab etwa Zug 30 liegen 25.000–35.000 Token je Anfrage an.

Bei 32k bedeutet das Dauerkompaktierung — das Werkzeug wirft laufend ältere Schritte weg, um Platz zu machen. Das Ergebnis sieht für dich aus wie ein Modell, das den Faden verliert oder sich wiederholt. Es ist aber das Kontextfenster, nicht das Modell.

Nimm eines der drei Modelle oben. Alle haben 131k oder mehr.

🅿️ Zwei Modell-IDs sind aus diesem Text verschwunden

qwen3-coder-next-fp8 — zurückgezogen am 11.09.2026. Er wurde von qwen3.6-35b-a3b überholt: bessere Coding-Werte bei viermal so viel Kontext und kürzerem Kaltstart.

deepseek-v4-flash — zurückgezogen am 07.09.2026. Er belegte zwei H200-Karten und startete nicht: der Container brach bei der Initialisierung der Inferenz-Maschine ab und wurde immer wieder neu gestartet — abgerechnet wurde dabei die volle Zeit. An vier Tagen Ende August entstanden so 948 USD, denen über die gesamte Laufzeit sieben beantwortete Anfragen gegenüberstanden. Dasselbe Modell läuft als tensorx-deepseek-v4-flash ohne Kaltstart weiter.

Deine Konfiguration bricht nicht. Wer coder, coding, qwen-coder oder qwen3-coder als Modellnamen schickt, bekommt automatisch qwen3.6-35b-a3b — die Rollennamen sind auf den Nachfolger umgehängt. ⚠️ Wer eine der beiden exakten IDs fest verdrahtet hat, bekommt dagegen den allgemeinen Standard-Tier — also kein Coding-Modell. Die Antwort sagt es: sie trägt dann x-sovrgpt-model-substituted. Trag den neuen Namen ein.

Warum stackit-qwen3.6-27b in dieser Liste steht: weil es sofort antwortet. (Bis zum 2026-08-18 stand hier „obwohl es dasselbe Modell ist wie unser eigener Tier“ — das gilt nicht mehr: unser balanced führt seither Qwen 3.8 27B, während bei STACKIT weiterhin die Vorgängergeneration Qwen 3.6 27B läuft.) Bei einem IDE-Plugin ist genau das der entscheidende Unterschied — ein Editor, der bei jeder ersten Frage sieben Minuten steht, wird nicht benutzt. Der Eintrag erscheint nur, wenn der Betrieb bei STACKIT für deine Organisation freigeschaltet ist.

Der Kaltstart ist die eine Sache, die du wissen musst

Unsere GPU-Worker fahren im Leerlauf herunter (scale-to-zero). Das hält den Preis unten, kostet aber Zeit beim ersten Aufruf. Warm antworten alle Tiers in Sekunden.

Drei Wege damit umzugehen:

  1. Ein Modell ohne Kaltstart wählenstackit-qwen3.6-27b läuft beim Betreiber durchgehend.
  2. Warmhalten buchen (Warmup-Pin im Chat oder über die API). Der Pin setzt am Endpunkt einen dauerhaften Worker. ⚠️ Er wird minutengenau abgerechnet, solange er läuft — das ist der Preis dafür, dass die Karte für dich bereitsteht.
  3. Zeitgesteuert vorheizen — Arbeitsbeginn eintragen, der Vorlauf wird eingerechnet.

Stell den Timeout deines Plugins hoch. Die meisten Clients brechen nach 60–120 Sekunden ab. Bei kaltem Worker ist das zu früh, und der Fehler sieht dann aus wie „Server kaputt", ist aber ein zu kurzer Timeout. Wo möglich: ≥ 900 s.

Einrichtung je Werkzeug

Kilo Code — unsere Empfehlung

Kilo Code deckt VS Code, JetBrains und die Kommandozeile aus einer Codebasis ab, steht unter MIT und hat eine deutsche Oberfläche. Für uns hat es einen praktischen Vorteil vor allen anderen: es holt die Modelliste selbst von GET /v1/models. Du trägst also keine Modell-IDs von Hand ein und kannst keine veraltete erwischen.

Settings → ProvidersOpenAI Compatible

FeldWert
Base URLhttps://sovrgpt.com/api/v1
API Keysov_…
Modelaus der Liste wählen — z. B. qwen3.6-35b-a3b

Alternativ als Datei (kilo.jsonc, gleiches Format wie opencode.json weiter unten).

Vor dem ersten Lauf zwei Dinge umstellen: die Telemetrie und die Freigabe-Einstellungen. Beide Abschnitte stehen weiter unten und gelten nicht nur für Kilo Code.

Cline / Roo Code (VS Code)

API ProviderOpenAI Compatible

FeldWert
Base URLhttps://sovrgpt.com/api/v1
API Keysov_…
Model IDqwen3.6-35b-a3b
Context Window131072
Max Output Tokens8192

Die letzten beiden Felder musst du bei Cline und Roo von Hand setzen. Beide erkennen bei einem selbst eingetragenen Anbieter das Kontextfenster nicht automatisch und rechnen sonst mit einer Vorgabe, die nicht stimmt. Steht dort ein zu grosser Wert, kommt irgendwann max_tokens must be less than: max_context_length - input_tokens; steht dort ein zu kleiner, kompaktiert das Werkzeug ohne Not und der Agent verliert den Faden.

Continue

~/.continue/config.yaml:

models:
  - name: SovrGPT Coder mini
    provider: openai
    model: qwen3.6-35b-a3b
    apiBase: https://sovrgpt.com/api/v1
    apiKey: sov_...
    requestOptions:
      timeout: 900000   # Kaltstart, siehe oben

OpenCode

opencode.json:

{
  "provider": {
    "sovrgpt": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "https://sovrgpt.com/api/v1",
        "apiKey": "sov_..."
      },
      "models": {
        "qwen3.6-35b-a3b": { "name": "SovrGPT Coder mini" },
        "stackit-qwen3.6-27b": { "name": "SovrGPT · STACKIT (kein Kaltstart)" }
      }
    }
  }
}

Zed

settings.json:

{
  "language_models": {
    "openai_compatible": {
      "SovrGPT": {
        "api_url": "https://sovrgpt.com/api/v1",
        "available_models": [
          { "name": "qwen3.6-35b-a3b", "max_tokens": 131072 }
        ]
      }
    }
  }
}

Den Schlüssel trägt Zed über Assistant → Configure ein.

Aider

export OPENAI_API_BASE=https://sovrgpt.com/api/v1
export OPENAI_API_KEY=sov_...
aider --model openai/qwen3.6-35b-a3b

Aider ist das Werkzeug mit den geringsten Anforderungen an uns — es braucht kein Tool-Calling, sondern arbeitet mit Diff-Formaten. Deshalb ist hier der 32k-Tier bewusst eingetragen: Aiders eigene Doku warnt ohnehin, dass „above about 25k tokens" die meisten Modelle den Faden verlieren. Wer heute ohne Umwege loslegen will, ist damit gut bedient.

Qwen Code (Kommandozeile, deutsch)

~/.qwen/.env:

OPENAI_API_KEY=sov_...
OPENAI_BASE_URL=https://sovrgpt.com/api/v1
OPENAI_MODEL=qwen3.6-35b-a3b
QWEN_CODE_LANG=de

QWEN_CODE_LANG=de stellt die Oberfläche auf Deutsch. 🔴 Qwen Code steht ab Werk auf auto — siehe Freigaben.

goose

OPENAI_HOST=https://sovrgpt.com
OPENAI_BASE_PATH=api/v1/chat/completions
OPENAI_API_KEY=sov_...

Zwei Stolpersteine, beide kosten sonst eine halbe Stunde. OPENAI_HOST ist nur die Wurzel — der Pfad gehört in OPENAI_BASE_PATH; ein 404 heisst fast immer, dass hier etwas nicht stimmt. Und: 🔴 ein Schlüssel in der config.yaml wird ignoriert, er muss aus der Umgebung kommen.

🔴 goose arbeitet ab Werk autonom — siehe Freigaben.

Theia

{
  "ai-features.openAiCustom.customOpenAiModels": [
    {
      "model": "qwen3.6-35b-a3b",
      "url": "https://sovrgpt.com/api/v1",
      "id": "sovrgpt-coder",
      "apiKey": "sov_...",
      "developerMessageSettings": "system"
    }
  ]
}

OpenHands

Modell openai/qwen3.6-35b-a3b, Base URL https://sovrgpt.com/api/v1.

OpenHands nennt in der eigenen Doku 22.000 Token als Minimum und 32.768 als Empfehlung und warnt, dass bei der Vorgabe von 4096 „not even the system prompt will fit". Nimm hier also das 131k-Modell und trage das Kontextfenster mit ein.

Cursor

Cursor nimmt unter Settings → Models eine eigene OpenAI Base URL entgegen. Trage https://sovrgpt.com/api/v1 und den sov_…-Schlüssel ein und ergänze die Modell-ID von Hand.

Grenze, die wir nicht verschweigen: Cursor leitet einen Teil seiner Funktionen (Tab-Vervollständigung, Indexierung) über die eigene Infrastruktur, unabhängig davon, welches Modell du im Chat einstellst. Die Chat- und Agentenanfragen landen dann bei uns, die übrigen nicht. Wer vollständige Souveränität braucht, ist mit Cline, Continue, Zed oder OpenCode besser bedient — dort ist die Basis-URL die einzige Adresse, die das Plugin kennt.

Claude Code

Geht heute nicht. Claude Code spricht das Anthropic-Protokoll, nicht das OpenAI-Protokoll. Wir bieten bisher nur die OpenAI-kompatible Route an, also lässt sich Claude Code nicht auf SovrGPT umbiegen. Eine Anthropic-kompatible Route steht auf unserer Liste; solange sie nicht existiert, sagen wir das hier, statt eine Anleitung zu schreiben, die nicht funktioniert.

Telemetrie abschalten

🔴 Das ist der Abschnitt, den man in einer Anleitung am ehesten überspringt — und der für ein Souveränitätsprodukt der wichtigste ist. Dass deine Anfragen bei uns in Europa landen, nützt wenig, wenn das Werkzeug daneben eine eigene Verbindung nach draussen aufmacht. Mehrere der hier genannten Werkzeuge tun das ab Werk.

WerkzeugWas ab Werk läuftAbschalten
Kilo Codeeigenes Telemetrie-Paketin den Einstellungen deaktivieren
opencodeSitzungen können geteilt werden"share": "disabled" in opencode.json
Forge🔴 Tracker ist ab Werk ANFORGE_TRACKER=false
Prime AgentTelemetrietelemetry.enabled = false
CursorTab-Vervollständigung und Indexierung laufen über Cursors eigene Infrastruktur🔴 nicht abschaltbar — siehe Kasten bei Cursor

⚠️ Diese Liste ist nicht vollständig und die Namen der Schalter ändern sich mit den Versionen. Wenn es für dich rechtlich zählt, prüfe es an deiner eigenen Installation nach — mit einem Blick in die Netzwerkverbindungen, nicht nur in die Einstellungen.

Freigaben: die Werkseinstellungen sind nicht die sicheren

🔴 Drei der hier genannten Werkzeuge schreiben ab Werk Dateien und führen Befehle aus, ohne zu fragen — solange niemand die Einstellung ändert:

WerkzeugWerkseinstellung
goosearbeitet autonom
Qwen CodeFreigabemodus auto
Cline (Kommandozeile)führt automatisch aus

Für opencode und Kilo Code lässt sich das sauber festschreiben:

{
  "permission": {
    "*": "ask",
    "read": "allow",
    "grep": "allow",
    "glob": "allow"
  },
  "share": "disabled"
}

Lesen, Suchen und Dateilisten laufen damit durch, alles Schreibende fragt nach.

Für den Unternehmenseinsatz: dieselbe Datei unter %ProgramData%\opencode (Windows) bzw. /etc/opencode/ (Linux/macOS) ablegen — dort ist sie vom Nutzer nicht überschreibbar. So lässt sich sowohl die Basis-URL als auch das Freigabemodell verbindlich vorgeben, ohne dass jemand eine eigene Fassung baut.

Denk-Level pro Anfrage

Das OpenAI-übliche Feld reasoning_effort (low | medium | high) wird auf oberster Ebene entgegengenommen; im Python-SDK über extra_body.

🆕 Seit 2026-08-24 gilt das nicht mehr nur für deepseek-v4-flash. Welche Modelle den Regler auswerten, sagt effort_levels in GET /v1/models — ein leeres Array heißt „kein wirksamer Regler". Für die Coding-Tiers gemessen:

Modelleffort_levelsWas intern passiert
qwen3.6-35b-a3blow, medium, highToken-Deckel thinking_token_budget (128 / 512 / unbegrenzt) — gemessen Faktor 13,7 im Denkumfang
stackit-qwen3.6-27b(leer)dort steuert chat_template_kwargs.enable_thinking
tensorx-kimi-k2.7-code(leer)denkt immer mit, nicht abschaltbar

Die Übersetzung in den jeweiligen Anbieter-Parameter übernimmt die Route — Sie schicken low, medium oder high. Die übrigen Tiers schalten den Denkmodus weiterhin über chat_template_kwargs.enable_thinking.

⚠️ Bei high das max_tokens mitziehen: der Gedankengang zählt gegen das Antwortbudget. An qwen3.6-35b-a3b gemessen — bei unbegrenztem Denkbudget und 2000 max_tokens blieb der Antworttext leer.

📌 Ein leeres effort_levels heißt nicht „kann nicht denken". Es heißt „für dieses Modell haben wir keinen wirksamen abgestuften Regler gemessen". Der binäre Denk-Schalter (chat_template_kwargs.enable_thinking) kann trotzdem wirken — und bei manchen Modellen wirkt auch der nicht. Am zurückgezogenen qwen3-coder-next-fp8 war genau das gemessen: mit temperature: 0 waren die Antworten mit und ohne enable_thinking byte-gleich, seine Chat-Vorlage wertete das Feld gar nicht aus. Verlass dich auf effort_levels, nicht auf die Modellfamilie.

Kontext und Gedächtnis: prom.codes

Ein souveränes Modell ist die eine Hälfte. Die andere ist das, was der Agent über dein Repository weiß — und die meisten Kontext- und Gedächtnisdienste für Coding-Agenten laufen außerhalb Europas.

prom.codes schließt genau diese Lücke: MCP-Server für Code-Kontext (semantische Suche, Symbolgraph, Referenzen) und Agenten-Gedächtnis (dauerhafte Fakten, Entscheidungen und Konventionen über Sitzungen hinweg), in Europa gehostet. Es ist eine eigenständige Plattform aus demselben Haus wie SovrGPT.

Zusammen ergibt das einen Werkzeugkasten, der die Grenze nicht verlässt:

TeilWer liefert ihn
Modell (Vervollständigung, Agent, Refactor)SovrGPT — EU-Rechenzentren
Code-Kontext und Gedächtnisprom.codes — EU-gehostet
Editordein Rechner

Die Einbindung läuft über MCP und ist damit unabhängig von uns — beides funktioniert auch einzeln. Einrichtung: siehe prom.codes.

Was noch fehlt

Wir führen das hier offen, statt es in der Anleitung zu verschweigen:

  • Keine Anthropic-kompatible Route ⇒ Claude Code ist nicht anbindbar.
  • Keine Responses-API (/v1/responses) ⇒ Codex CLI ist nicht anbindbar; es akzeptiert ausschliesslich wire_api = "responses".
  • Kein FIM-Endpunkt (fill-in-the-middle) ⇒ Inline-Vervollständigung im Editor („Ghost Text") wird nicht unterstützt. Chat und agentisches Arbeiten funktionieren.
  • usage.cached_tokens melden wir immer als 0. Das ist eine bekannte Lücke der Inferenz-Software, kein Zählfehler bei dir. Werkzeuge, die daraus eine Cache-Quote oder eine Kostenschätzung ableiten, zeigen an dieser Stelle Unsinn an.
  • deepseek-v4-flash ist nicht mehr wählbar (startet nicht, siehe oben) — Anfragen darauf werden auf den Standard-Tier geleitet.

Was wir gemessen haben — und was nicht

Damit du weisst, wie belastbar diese Seite ist:

Gemessen: dass die Anbindung steht (Basis-URL, Schlüssel, Modelliste), dass Werkzeugaufrufe auf allen drei Wegen funktionieren — auch im Streaming —, die Kaltstartzeiten in der Tabelle oben, und das Verhalten des Denk-Reglers je Modell.

🔴 Nicht gemessen: ein langer, mehrstufiger Agentenlauf mit einem dieser Werkzeuge gegen unsere Modelle. Unsere Prüfläufe sind einstufig; die Probleme, die in dieser Werkzeugklasse gemeldet werden — Endlosschleifen, ein verlorener Werkzeug-Rückgabezug, erschöpfter Kontext — treten typischerweise erst ab etwa Zug 10 auf. Für keines der Werkzeuge existiert ausserdem ein veröffentlichter Vergleichswert mit unserer Modellklasse in genau diesem Gerüst, und die Spanne, über die man sonst schätzen müsste, ist zu gross, um daraus etwas abzuleiten.

Diese Seite sagt dir, wie du es anschliesst, nicht wie gut es sich am Ende schlägt. Wenn du das für eine Beschaffung brauchst, sprich uns an — dann messen wir es für deinen Fall, statt dir eine Zahl zu nennen, die wir uns geliehen haben.

Verwandt: Modelle · API-Referenz · MCP-Server

Coding in der IDE