OpenCode mit dem Uni-OpenWebUI verbinden
Vier Schritte, etwa 15 Minuten. Danach läuft OpenCode in jedem Projekt mit dem Uni-Modell – eingerichtet wird einmal, nicht pro Ordner.
Sie brauchen dafür: einen Terminal-Befehl, die beigelegte Datei opencode.json
und Ihren Uni-Schlüssel. Kein Skript, kein verstecktes Verzeichnis, kein Formular
in der App – und am Ende funktioniert derselbe Befehl in jedem Ordner.
Kurzfassung
| Installation | Terminal-Befehl npm install -g @opencode/cli (nach einmaliger Node.js-Installation) |
| Datei | opencode.json → in Ihren Benutzerordner kopieren |
| Adresse | https://openwebui.uni-freiburg.de/api/v1 |
| Schlüssel | OpenWebUI → Profil → Einstellungen → Konto → API-Schlüssel |
| Modell | standard-coding-ufr (Coding) |
| Zeit | etwa 15 Minuten, davon 2 für den Schlüssel |
Warum nicht die Desktop-App?
Die Desktop-App ist die komfortable Oberfläche – aber sie legt keinen
Terminal-Befehl an (das Menü „Install CLI…“ existiert nur unter macOS). Wer
nach der Desktop-Installation opencode im Terminal eintippt, bekommt
„Befehl nicht gefunden“. Da der Terminal-Weg der eigentliche Arbeitsmodus ist
(dort sieht man den Agenten Dateien lesen und Befehle ausführen), richten wir
die Terminal-Version direkt ein. Die Desktop-App lässt sich danach optional
dazunehmen – sie zeigt dieselben Sitzungen an.
Schritt 0: Einmal Terms und Fenster verstehen (3 Minuten)
Für alles Weitere brauchen Sie ein Terminal – ein Fenster, in dem man dem Computer Befehle als Text schreibt. Kein Chatt, keine Suchleiste: Sie tippen eine Zeile, drücken Enter, der Computer antwortet mit Text. So arbeitet der Agent später sichtbar, deshalb lohnt sich der kleine Einstieg.
Ein Terminal öffnen:
| System | So geht's |
|---|---|
| Windows | Startmenü → „Terminal" oder „PowerShell" eintippen → Enter. (Auf älteren Windows: „Eingabeaufforderung".) |
| macOS | „Terminal" in Spotlight (Lupensymbol oben rechts) eintippen → Enter. (Auch im Ordner „Programme → Dienstprogramme".) |
| Linux | Strg+Alt+T, oder „Terminal" im Anwendungsmenü. |
Der Unterschied zu Word & Co: Es gibt nichts zu klicken. Der Cursor blinkt
hinter einem C:\Users\IhrName> (Windows) oder ihrname@rechner ~ % (macOS) und
wartet auf eine Zeile Text. Genau dorthin tippen Sie im Folgenden.
Der Unterschied zum Chat: Sie schreiben dem Betriebssystem, nicht einem
Modell. node --version ist keine Frage an eine KI, sondern ein Befehl ans System.
Schritt 1: Erreichbarkeit prüfen (1 Minute)
Im Browser https://openwebui.uni-freiburg.de öffnen.
| Was Sie sehen | Was das heißt |
|---|---|
| Anmeldeseite mit „Mit Uniaccount der Universität Freiburg fortfahren“ | Alles bereit – weiter mit Schritt 2. |
| „Zugriff eingeschränkt – VPN erforderlich“ oder Seite lädt nicht | Erst VPN einrichten (unten). |
Die Instanz ist nur aus dem Uni-Netz erreichbar. eduroam allein genügt
nicht. VPN: FortiClient von rz.uni-freiburg.de (Services → Netz & Telefon →
VPN), SSL-VPN mit Server fortivpn.uni-freiburg.de, Benutzername
<Uniaccount>@uni-freiburg.de, Passwort = eduroam-Passwort.
Schritt 2: Schlüssel holen (2 Minuten)
- In OpenWebUI unten links auf das Profil-Symbol klicken.
- Einstellungen → Konto öffnen.
- Zum Abschnitt API-Schlüssel scrollen, neben Zugangsdaten auf Anzeigen klicken (der Abschnitt ist eingeklappt).
- Neuen Geheimschlüssel erstellen, dann API-Schlüssel kopieren.
Genau ein Key pro Konto. Ein zweiter Klick auf „Neuen Geheimschlüssel erstellen“ macht den ersten ungültig – alles, was ihn benutzt, wird abgewiesen. Der Key lässt sich jederzeit wieder anzeigen; er muss nicht erneuert werden.
Schritt 3: OpenCode installieren (10 Minuten, meist weniger)
3a. Node.js installieren (falls nicht vorhanden):
- nodejs.org im Browser öffnen – dort ist der große
grüne Knopf „LTS“ (Long Term Support; die stabile Variante). Klicken, die
Datei lädt herunter (Windows:
.msi, macOS:.pkg). - Die heruntergeladene Datei doppelklicken und den Installer durchklicken – die Standard-Einstellungen genügen, nichts umstellen. Windows fragt evtl. nach Admin-Rechten: erlaubt, das ist das normale Installieren eines Programms.
- Danach ein neues Terminalfenster öffnen (wichtig: ein bereits offenes Fenster kennt das frisch installierte Programm noch nicht) und prüfen:
node --version
Erscheint eine Versionsnummer (z. B. v22.x.x), ist alles bereit.
3b. OpenCode installieren – im Terminal:
npm install -g @opencode/cli
Danach prüfen – und zwar in einem beliebigen Ordner, der Befehl gilt maschinenweit:
opencode --version
Erscheint eine Versionsnummer, ist der Befehl überall verfügbar: in Dokumente, auf dem Schreibtisch, in jedem Projektordner. Das liegt am PATH – einer globalen Befehlsliste von Windows/macOS, in die npm den Befehl einträgt.
Schritt 4: Eine Datei in den Benutzerordner (2 Minuten)
Die Datei opencode.json können Sie direkt hier herunterladen:
opencode.json – rechtsklicken
und „Speichern unter" (nicht im Browser öffnen). Sie gehört in Ihren
Benutzerordner – den Ordner, der aufgeht, wenn Sie den Dateimanager öffnen:
| System | Zielordner |
|---|---|
| Windows | C:\Users\<IhrName> (oben in „Dieser PC“ unter „Benutzer“) |
| macOS | /Users/<IhrName> (im Finder: Haus-Symbol) |
| Linux | /home/<IhrName> |
opencode.jsondorthin kopieren.- Datei mit einem Texteditor öffnen (Windows: Editor; macOS: TextEdit, dort „Format → In reinen Text umwandeln“).
- Den Schlüssel aus Schritt 2 einsetzen: den Platzhalter
PASTE_YOUR_KEY_HEREersetzen, Anführungszeichen drumherum stehen lassen. - Speichern.
{
"$schema": "https://opencode.ai/config.json",
"model": "openwebui/standard-coding-ufr",
"provider": {
"openwebui": {
"npm": "@ai-sdk/openai-compatible",
"name": "Uni Freiburg",
"options": {
"baseURL": "https://openwebui.uni-freiburg.de/api/v1",
"apiKey": "PASTE_YOUR_KEY_HERE"
},
"models": {
"standard-coding-ufr": { "name": "Coding" },
"standard-chat-ufr": { "name": "Chat" },
"ufr/coding-complex": { "name": "Coding Complex",
"limit": { "context": 1048576, "output": 32000 } },
"gemma-4-31b-llmlb": { "name": "Gemma 4 31B" }
}
}
}
}
Warum der Benutzerordner? OpenCode sucht die Datei vom Arbeitsordner aufwärts bis zum Benutzerordner. Eine Datei dort gilt deshalb für alle Projekte darunter – Dokumente, Schreibtisch, alles, ohne dass in einem Projekt etwas liegt. Und sie ist sichtbar: kein Verzeichnis, das man erst einblenden muss.
Nur ein Sonderfall: Arbeiten Sie in einem Projekt außerhalb Ihres Benutzerordners (externe Festplatte, Netzlaufwerk), kopieren Sie dieselbe Datei zusätzlich in diesen Projektordner. Mehr ist nicht zu tun.
Schritt 5: Testen (1 Minute)
Terminal öffnen, in irgendeinem Projektordner opencode starten und schreiben:
Sag in einem Satz Hallo und nenne dein Modell.
Das Modell „Uni Freiburg → Coding“ ist durch die Datei vorbelegt. Antwortet es, ist die Einrichtung fertig – in jedem Projekt, ohne weiteren Schritt.
Die Desktop-App (optional): Wer die grafische Oberfläche dazu will, lädt sie von opencode.ai/download. Sie liest dieselbe Konfiguration und zeigt dieselben Sitzungen – eine zweite Einrichtung ist nicht nötig.
Wenn etwas nicht klappt
| Symptom | Ursache und Abhilfe |
|---|---|
| „Zugriff eingeschränkt – VPN erforderlich“ | Nicht im Uni-Netz. FortiClient verbinden (Schritt 1). |
node wird „nicht gefunden“ |
Nach der Node.js-Installation ein neues Terminalfenster öffnen – der PATH wird pro Fenster frisch gelesen. |
npm wird „nicht gefunden“ |
Derselbe Grund. Node.js mitinstalliert npm; neues Terminalfenster. |
opencode wird „nicht gefunden“ |
Nach npm install -g @opencode/cli ein neues Terminalfenster öffnen. Falls es immer noch fehlt: npm install -g @opencode/cli erneut ausführen und die Ausgabe lesen. |
| 401 Unauthorized | Der Schlüssel wurde ersetzt (nur einer pro Konto) oder es ist der Schlüssel des internen LiteLLM-Dienstes. Neuen Schlüssel aus Schritt 2 einsetzen, opencode neu starten. |
| „Uni Freiburg“ erscheint nicht in der Modellliste | Steht die Datei im Benutzerordner (nicht im Projekt)? Ist PASTE_YOUR_KEY_HERE ersetzt? JSON-Syntax prüfen: Kommas zwischen Einträgen, keine Kommas am Ende. |
| „Custom providers are unavailable on this server“ | Meldung des Anbieter-Dialogs der Desktop-App – dieser Weg wird hier nicht gebraucht. Die Datei gilt. |
| Modell antwortet nicht oder bricht ab | Instanz ist nicht unendlich skaliert. Anderes Modell wählen, z. B. gemma-4-31b-llmlb. |
| Lange Datei passt nicht in den Kontext | Coding Complex wählen (1 Mio. Token). Bei den Standard-Modellen sind es 200 000. |
Drei Dinge, die man wissen sollte
- Ein Schlüssel, zwei Werkzeuge. Derselbe Uni-Schlüssel funktioniert in Hermes und in OpenCode. Wer beide einrichtet, legt ihn zweimal ab, erzeugt aber keinen zweiten Schlüssel – ein neuer Schlüssel entwertet den alten in beiden Werkzeugen.
- Der Schlüssel steht im Klartext in der Datei. Das ist bei einer Datei in Ihrem Benutzerordner vertretbar: Sie liegt in keinem Git-Repository und in keinem Cloud-Ordner. Geben Sie die Datei nie weiter, ohne vorher den Schlüssel zu entfernen. Wenn ein Schlüssel abhandenkommt: neuen erzeugen, der alte ist sofort ungültig.
- Denk-Modelle. OpenCode trennt Denken und Antwort selbst; hier ist nichts zu
tun. Nur bei eigenen Skripten braucht es ein großzügiges
max_tokens.