# Visual Studio Code und OpenCode

Wie nutzt ihr Visual Studio Code und [OpenCode](https://techdoc.ping.de/OpenCode) mit dem PING KI Server? <span class="anchor" id="bkmrk-"></span><span class="anchor" id="bkmrk--1"></span>

#### Bearer Token / API key / API token

Zunächst braucht ihr das Bearer Token. Es heißt manchmal auch API Token.   
PING Mitglieder finden es unter [API Token](https://wiki.ping.de/books/anleitungen/page/api-token "API Token").

Ermittelt welche Modelle der Server anbietet, die euch fürs Programmieren interessieren. Unter `max\_model\_len` seht ihr die maximale Kontext-Länge.

<span class="anchor" id="bkmrk--74"></span><span class="anchor" id="bkmrk--75"></span><span class="anchor" id="bkmrk--76"></span>

```
BEARER_TOKEN=siehe_oben
curl -sH "Authorization: Bearer $BEARER_TOKEN" https://ki.ping.de:8000/v1/models|jq
```

<span class="anchor" id="bkmrk--78"></span>

Aktuell (2026-08) gibt es nur ein Model: ``qwen38-27b`` mit Kontext-Länge 230.000. Es ist gut und schnell und bietet Tool calling, ist multi-modal etc. 👍

Dann geht es wie folgt: <span class="anchor" id="bkmrk--2"></span><span class="anchor" id="bkmrk--3"></span>

## Visual Studio Code

<span class="anchor" id="bkmrk--5"></span>

Für VS Code gibt es mehrere KI-Plugins die in Frage kommen. Hier findet ihr für einige exemplarische die benötigten Schritte zur Konfiguration: <span class="anchor" id="bkmrk--6"></span><span class="anchor" id="bkmrk--7"></span>

### Cline Plugin

<span class="anchor" id="bkmrk--9"></span>

1. In VS Code das [Cline](https://cline.bot/) Plugin installieren. Achtet darauf dass es das blaue Checkmark hat: <span class="anchor" id="bkmrk--10"></span>
    
    
    - ![cline1.png](https://wiki.ping.de/uploads/images/gallery/2026-02/cline1.png "cline1.png") <span class="anchor" id="bkmrk--11"></span><span class="anchor" id="bkmrk--12"></span>
2. *How will you use Cline?* "**Bring my own API key**" <span class="anchor" id="bkmrk--13"></span><span class="anchor" id="bkmrk--14"></span>
3. API Provider:**OpenAI**
4. Custom base URL: `https://ki.ping.de:8000`
5. API key: **siehe\_oben** (nutzt das Bearer Token) <span class="anchor" id="bkmrk--18"></span>
6. Model: `qwen38-27b`

Fertig! <span class="anchor" id="bkmrk--21"></span><span class="anchor" id="bkmrk--22"></span>

### Kilo Code Plugin

<span class="anchor" id="bkmrk--24"></span>

1. In VS Code das [Kilo Code AI Agent](https://kilo.ai/) Plugin installieren. Achtet darauf dass ihr kein falsches erwischt. Aktuell sieht es etwa so aus: <span class="anchor" id="bkmrk--25"></span>
    
    
    - ![kilo code vs code.png](https://wiki.ping.de/uploads/images/gallery/2026-02/kilo-code-vs-code.png "kilo code vs code.png") <span class="anchor" id="bkmrk--26"></span>
2. Wählt "Use your own API key" <span class="anchor" id="bkmrk--27"></span>
3. API Provider: OpenAI compatible
4. Base URL: `https://ki.ping.de:8000` <span class="anchor" id="bkmrk--29"></span>
5. API Key: **siehe\_oben** (nehmt das Bearer Token)<span class="anchor" id="bkmrk--30"></span>
6. Model Name: `qwen38-27b`

Fertig! <span class="anchor" id="bkmrk--33"></span><span class="anchor" id="bkmrk--34"></span>

### Continue Plugin

<span class="anchor" id="bkmrk--36"></span>

Installiert das [Continue](https://docs.continue.dev/) Plugin in VS Code. <span class="anchor" id="bkmrk--37"></span><span class="anchor" id="bkmrk--38"></span>

![continue vs code.png](https://wiki.ping.de/uploads/images/gallery/2026-02/continue-vs-code.png "continue vs code.png") <span class="anchor" id="bkmrk--40"></span><span class="anchor" id="bkmrk--41"></span>

Nehmt folgende Config Datei (<span style="color: rgb(224, 62, 45);">ungeprüft</span>). Tragt dort den API Key ein in der letzten Zeile. ([Doku](https://docs.continue.dev/customize/model-providers/top-level/openai))<span class="anchor" id="bkmrk--42"></span><span class="anchor" id="bkmrk--43"></span>

<span class="anchor" id="bkmrk--45"></span><span class="anchor" id="bkmrk--46"></span><span class="anchor" id="bkmrk--47"></span><span class="anchor" id="bkmrk--48"></span><span class="anchor" id="bkmrk--49"></span><span class="anchor" id="bkmrk--50"></span><span class="anchor" id="bkmrk--51"></span><span class="anchor" id="bkmrk--52"></span><span class="anchor" id="bkmrk--53"></span><span class="anchor" id="bkmrk--54"></span><span class="anchor" id="bkmrk--55"></span><span class="anchor" id="bkmrk--56"></span><span class="anchor" id="bkmrk--57"></span><span class="anchor" id="bkmrk--58"></span><span class="anchor" id="bkmrk--59"></span><span class="anchor" id="bkmrk--60"></span><span class="anchor" id="bkmrk--61"></span><span class="anchor" id="bkmrk--62"></span><span class="anchor" id="bkmrk--63"></span><span class="anchor" id="bkmrk--64"></span>

```
name: My Config
version: 0.0.1
schema: v1

models:
  - name: qwen36-ping
    provider: openai
    model: qwen38-27b
    apiBase: https://ki.ping.de:8000/v1
    apiKey: siehe_oben

```

<span class="anchor" id="bkmrk--66"></span>

Fertig!

## OpenCode

<span class="anchor" id="bkmrk--68"></span>

Für [OpenCode](https://techdoc.ping.de/OpenCode) müsst ihr eine `opencode.json` Datei anlegen z.B. im Verzeichnis `~/.config/opencode/` <span class="anchor" id="bkmrk--69"></span><span class="anchor" id="bkmrk--70"></span>

<span class="anchor" id="bkmrk--82"></span><span class="anchor" id="bkmrk--83"></span><span class="anchor" id="bkmrk--84"></span><span class="anchor" id="bkmrk--85"></span><span class="anchor" id="bkmrk--86"></span><span class="anchor" id="bkmrk--87"></span><span class="anchor" id="bkmrk--88"></span><span class="anchor" id="bkmrk--89"></span>

<span class="anchor" id="bkmrk--91"></span>

Tragt das/die Modelle in die opencode.json Datei ein, in etwa wie so: <span class="anchor" id="bkmrk--92"></span><span class="anchor" id="bkmrk--93"></span>

<span class="anchor" id="bkmrk--95"></span><span class="anchor" id="bkmrk--96"></span><span class="anchor" id="bkmrk--97"></span><span class="anchor" id="bkmrk--98"></span><span class="anchor" id="bkmrk--99"></span><span class="anchor" id="bkmrk--100"></span><span class="anchor" id="bkmrk--101"></span><span class="anchor" id="bkmrk--102"></span><span class="anchor" id="bkmrk--103"></span><span class="anchor" id="bkmrk--104"></span><span class="anchor" id="bkmrk--105"></span><span class="anchor" id="bkmrk--106"></span><span class="anchor" id="bkmrk--107"></span><span class="anchor" id="bkmrk--108"></span><span class="anchor" id="bkmrk--109"></span><span class="anchor" id="bkmrk--110"></span><span class="anchor" id="bkmrk--111"></span><span class="anchor" id="bkmrk--112"></span><span class="anchor" id="bkmrk--113"></span><span class="anchor" id="bkmrk--114"></span><span class="anchor" id="bkmrk--115"></span><span class="anchor" id="bkmrk--116"></span><span class="anchor" id="bkmrk--117"></span><span class="anchor" id="bkmrk--118"></span>

```
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ki.ping.de": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "ki.ping.de",
      "options": {
        "baseURL": "https://ki.ping.de:8000/v1",
        "apiKey": "siehe_oben"
      },
      "models": {
        "qwen38-27b": {
          "name": "Qwen 3.8 (ping)",
          "modalities": { "input": ["image", "text"], "output": ["text"] },
          "limit": {
            "context": 230000,
            "output": 32000
          }
        }
      }
    }
  }
}
```

<span class="anchor" id="bkmrk--120"></span>

Wenn ihr das nächste Mal [OpenCode](https://techdoc.ping.de/OpenCode) startet und /connect tippt könnt ihr nach "PING" suchen und solltet den Eintrag "vLLM (PING)" angezeigt bekommen. Wenn euch dann das [OpenCode](https://techdoc.ping.de/OpenCode) nach dem API Key fragt, gebt das Bearer Token (s.o.) ein.