Coding-Agent (OpenCode)
OpenCode ist ein Open-Source-Coding-Agent für das Terminal: Er liest und ändert Dateien, führt Befehle aus und arbeitet Aufgaben in einem Repository ab. Er ist providerneutral, und maKI lässt sich als OpenAI-kompatibler Provider eintragen. Der Code bleibt dann im Universitätsnetz.
Geprüft mit OpenCode 1.18 und opencode-plugin-litellm 1.0 auf macOS, Fedora 41 und Windows 11.
Einrichten in einem Schritt
Abschnitt betitelt „Einrichten in einem Schritt“Sie brauchen einen maKI-API-Key mit der Gruppe self-hosted (siehe
API-Schlüssel); ein persönlicher Key wird unter Last
bevorzugt bedient. Dann im Terminal:
# macOS, Linux, Git Bashcurl -fsSL https://maki.uni-mannheim.de/docs/opencode/install.sh | sh# Windows (PowerShell oder Eingabeaufforderung)powershell -ExecutionPolicy ByPass -c "irm https://maki.uni-mannheim.de/docs/opencode/install.ps1 | iex"Das Skript fragt den Key ab und prüft ihn gegen die API. Erst wenn maKI ihn
annimmt, installiert es OpenCode (falls es fehlt), schreibt die Konfiguration
und legt den Key in OpenCodes Schlüsselspeicher ab. Vorhandene Dateien werden
vorher gesichert. Für Skripte und CI lässt sich der Key statt der Abfrage über
MAKI_API_KEY übergeben.
Das Skript fragt am Ende, ob OpenCode Desktop (die grafische App)
mitinstalliert werden soll. Ja: sie wird installiert und geöffnet. Nein: das
Terminal-OpenCode startet direkt. Vorgabe-Modell ist qwen3.8-27b-thinking.
Ohne Rückfrage läuft das Skript mit MAKI_API_KEY, MAKI_OPENCODE_DESKTOP=yes|no
und MAKI_OPENCODE_START=no (kein Start am Ende).
Danach in einem neuen Terminal im Projekt:
opencodeWas das Skript einrichtet
Abschnitt betitelt „Was das Skript einrichtet“OpenCode fragt bei eigenen Providern keine Modellliste ab. Das Plugin
opencode-plugin-litellm
übernimmt das: Es holt beim Start /v1/models und /v1/model/info von maKI
und trägt jedes Chat-Modell mit seinem Kontextfenster ein. Neue Modelle
erscheinen beim nächsten Start von allein; Embedding-, Audio- und Bildmodelle
bleiben ausgeblendet.
~/.config/opencode/opencode.json:
{ "$schema": "https://opencode.ai/config.json", "plugin": ["opencode-plugin-litellm@latest"], "provider": { "litellm": { "npm": "@ai-sdk/openai-compatible", "name": "maKI (Uni Mannheim)", "options": { "baseURL": "https://maki.uni-mannheim.de/v1" } } }, "model": "litellm/qwen3.8-27b-thinking"}Außerdem setzt das Skript OPENCODE_ENABLE_EXA=1 in Ihrer
Shell-Konfiguration. Damit bietet OpenCode neben webfetch (eine bekannte
URL abrufen) auch das Werkzeug websearch an, mit dem das Modell selbst im
Web suchen kann.
Der Key liegt in ~/.local/share/opencode/auth.json unter der Provider-ID
litellm; von Hand geht das mit opencode auth login, Other, ID litellm.
Die Modelle heißen in OpenCode litellm/<modell>, etwa litellm/qwen3.8-27b-thinking.
Modell wählen
Abschnitt betitelt „Modell wählen“Modellliste wird geladen …
Vorgabe des Installers ist qwen3.8-27b-thinking: denkt vor der Antwort,
verlässliches Tool Calling, 262k Kontext. qwen3.8-27b ohne Denkschritte ist
schneller bei kurzen Aufgaben, qwen3.5-122b das stärkste lokale Modell,
gemma4-26b das schnellste.
Das Kontextfenster trägt das Plugin aus /v1/model/info ein; OpenCode
steuert damit, wann es den Gesprächsverlauf komprimiert.
Benutzen
Abschnitt betitelt „Benutzen“Im Projektverzeichnis:
opencode # interaktive OberflächeMit /models wechseln Sie das Modell während einer Sitzung. Für einzelne
Aufgaben ohne Oberfläche:
opencode run "Schreibe Tests für parse_config() in config.py"opencode run --model litellm/qwen3.5-122b "Erkläre die Architektur dieses Repos"Hinweise
Abschnitt betitelt „Hinweise“-
Datenfluss. OpenCode schickt Dateiinhalte, Befehlsausgaben und den Gesprächsverlauf an das Modell. Über maKI bleibt das im Universitätsnetz; für Repositories mit personenbezogenen Daten gilt trotzdem die Datenschutzprüfung aus dem Antrag.
-
Websuche geht nicht über maKI. OpenCode hat keine eigene Suchmaschine; das Werkzeug
websearchschickt die Suchanfrage an den externen Dienst exa.ai. Die Anfrage verlässt damit das Universitätsnetz — anders als alles, was an das Modell geht. Wer das nicht will, entferntOPENCODE_ENABLE_EXAwieder aus der Shell-Konfiguration;webfetchund alle Modellaufrufe funktionieren weiterhin. -
Ohne Konto, mit Grenzen. Die Suche läuft ohne Anmeldung; Exa drosselt diesen Weg aber. Wenn
websearchins Leere läuft, holen Sie sich ein kostenloses Exa-Konto — 10 $ Guthaben pro Monat ohne Zahlungsmittel, das reicht für rund 1400 Suchen — und setzen den Schlüssel in der Shell-Konfiguration:Terminal-Fenster export EXA_API_KEY="..." -
Kontext. Ein Agent-Gespräch wächst schnell auf hunderttausend Token. Die Modelle mit 262k Kontext halten das am längsten durch.
-
Parallele Anfragen. Ein Agent stellt viele Anfragen hintereinander. Unter GPU-Last werden persönliche Keys vor Service- und Batch-Keys bedient, siehe API-Schlüssel.
-
Modell fehlt im Picker? Das Plugin hält die Liste sieben Tage im Cache und frischt sie im Hintergrund auf; OpenCode neu starten zeigt den aktuellen Stand.