LLMGui — VS Code Extension
Version: 2.14.18
VS Code: ^1.80.0
Repository: gitlab.com/mrmarco/llmgui (clients/vscode/)
Die LLMGui VS Code Extension bringt den vollständigen LLMGui-Assistenten direkt in den Editor. Sie verbindet sich mit dem laufenden LLMGui-Backend-Server (Port 8080) und stellt Chat, Code-Aktionen, CodeLens-Annotierungen und eine automatische Update-Funktion bereit.
Voraussetzung: Ein laufender LLMGui-Server (
./llmgui.sh --serveoderPYTHONPATH=. python3 llmgui.py --serve).
Navigation
Installation
Via .vsix-Datei (empfohlen)
Die aktuellste .vsix-Datei liegt im Repository unter clients/vscode/:
# Aktuelle Version installieren
code --install-extension llmgui-vscode-2.14.18.vsix
Alternativ in VS Code:
1. Ctrl+Shift+P → "Extensions: Install from VSIX..."
2. Datei llmgui-vscode-2.14.18.vsix auswählen
Automatische Updates
Die Extension prüft beim Start automatisch via GitLab Package Registry, ob eine neue Version verfügbar ist. Bei Fund erscheint eine Benachrichtigung mit direktem Download- und Installationsbutton — kein manueller Eingriff nötig.
Für private Repositories wird ein GitLab Personal Access Token (Scope: read_api) benötigt (→ Einstellungen llmgui.gitlabToken).
Konfiguration
Alle Einstellungen unter Datei → Einstellungen → Einstellungen → LLMGui:
| Einstellung | Standard | Beschreibung |
|---|---|---|
llmgui.serverUrl |
http://localhost:8080 |
URL des LLMGui-Backend-Servers. Für Remote-Server z.B. http://192.168.1.10:8080 |
llmgui.localOnly |
false |
Beschränkt alle Anfragen auf lokale Modelle. Bei aktiviertem Local-Only-Modus werden Cloud-Fallbacks (Gemini etc.) deaktiviert — schlägt das lokale Modell fehl, schlägt die Anfrage fehl statt an einen Remote-Dienst weitergeleitet zu werden |
llmgui.updateCheck |
true |
Automatischer Update-Check beim Start via GitLab Package Registry |
llmgui.gitlabToken |
"" |
GitLab Personal Access Token (Scope: read_api) für private Repositories. Leer lassen wenn das Repo öffentlich ist |
settings.json (direkt):
{
"llmgui.serverUrl": "http://dana:8080",
"llmgui.localOnly": true,
"llmgui.updateCheck": true,
"llmgui.gitlabToken": "glpat-xxxxxxxxxxxxxxxxxxxx"
}
Features
Chat-Panel (Activity Bar)
Das zentrale Interface der Extension. Klick auf das Robot-Icon in der Activity Bar öffnet den LLMGui-Chat-View.
Funktionen:
- Vollständiger Chat mit dem konfigurierten LLM
- Workspace-Kontext: Das aktuell geöffnete Workspace-Verzeichnis wird automatisch als Kontext mitgeschickt
- Aktive Datei: Die im Editor geöffnete Datei wird dem Modell mitgeteilt
- Streaming-Ausgabe: Antworten werden token-weise gestreamt
- Markdown-Rendering: Antworten werden als formatiertes Markdown dargestellt
- Diff-View: Bei Dateiänderungen kann ein nativer VS Code Diff (
Vorher ↔ Nachher) geöffnet werden - Breakpoints setzen: Das Modell kann VS Code-Breakpoints direkt in den Editor setzen
- Modell-Switch: Modell direkt aus dem Chat-Panel wechseln
Context Menu (Rechtsklick im Editor)
Bei markiertem Code stehen folgende Aktionen im Kontextmenü zur Verfügung:
| Aktion | Beschreibung |
|---|---|
| Add Selection to LLMGui Context | Fügt die Auswahl als Kontext-Block zum Chat hinzu |
| Explain Selection with LLMGui | Sendet direkt: "Explain this code: [Auswahl]" |
| Generate Tests with LLMGui | Sendet: "Generate unit tests for: [Auswahl]" |
| Review Selection with LLMGui | Sendet: "Review this code for issues: [Auswahl]" |
Alle Aktionen öffnen automatisch den Chat-View und befüllen das Eingabefeld vor.
CodeLens-Annotierungen
Über jeder Funktionsdefinition erscheinen drei klickbare Inline-Aktionen:
🤖 Explain 🤖 Test 🤖 Fix
def calculate_hash(file_path: str) -> str:
...
Unterstützte Sprachen: Python, JavaScript, TypeScript, Go, Rust, Java (generisches Fallback für alle anderen).
- 🤖 Explain — Erklärt die Funktion
- 🤖 Test — Generiert Unit-Tests
- 🤖 Fix — Review und Fehlerbehebung
LLMGui extrahiert den vollständigen Funktionsrumpf automatisch (bis 50 Zeilen, respektiert Python-Indent und Brace-Counting).
Security Findings (TreeView)
Unterhalb des Chat-Panels erscheint in der LLMGui-Seitenleiste das Security Findings-Panel — eine native VS Code TreeView mit allen offenen Security-Befunden aus der zentralen ~/.brainy/security_findings.db.
Struktur:
$(error) Critical (3)
├─ CVE-2024-1234 · auth.py:45
└─ B608 · db.py:120
$(warning) High (5)
├─ VULN-0012 · requirements.txt
└─ ...
$(warning) Medium (8)
$(info) Low (2)
Funktionen:
- Badge an der View zeigt Anzahl offener Findings auf einen Blick
- Klick auf Finding → Datei öffnet sich und springt direkt zur betroffenen Zeile
- Refresh-Button $(refresh) in der Toolbar lädt Findings neu vom Backend
- Rechtsklick → "Mit LLMGui fixen" → Chat öffnet sich mit vorgefertigtem Fix-Prompt (inkl. CVE-ID, Datei, Zeile, Beschreibung und Fix-Hint)
- Findings werden gefiltert nach aktuellem Workspace und Status open
Der Panel wird über GET /api/findings?workspace=...&status=open mit Daten versorgt. Findings landen in der DB nach jedem /vuln-scan, /secret-scan oder /full-audit.
Security CodeLens
Über Codezeilen mit bekannten Findings erscheinen automatisch Security-CodeLens-Annotierungen:
$(error) CVE-2024-1234 CVSS 9.8 [bandit]
def authenticate(user, password):
...
Klick öffnet die VS Code Problems-Leiste mit allen Diagnosen. Die Annotierungen werden automatisch aktualisiert wenn ein Scan neue Ergebnisse liefert (via DiagnosticCollection).
Status Bar
Rechts unten in der VS Code Status Bar zeigt LLMGui den aktuellen Server-Status:
| Anzeige | Bedeutung |
|---|---|
$(chip) qwen2.5-coder |
Server online, Modellname des geladenen Modells |
$(hubot) LLMGui |
Server online, kein Modell aktiv geladen |
$(warning) LLMGui offline |
Backend nicht erreichbar |
Tooltip zeigt zusätzlich VRAM-Auslastung und geladene Modelle. Status-Update alle 5 Sekunden.
Klick auf die Status Bar öffnet den Chat-View.
Workflow-Beispiele
Code-Review einer Datei
- Datei in VS Code öffnen
- Im Chat-Panel:
/review src/myfile.pyeingeben - LLMGui analysiert die Datei relativ zum Workspace und gibt strukturiertes Feedback
Funktion erklären (CodeLens)
- Cursor über eine Funktionsdefinition bewegen
- Auf
🤖 Explainüber der Funktion klicken - Chat öffnet sich mit vorausgefülltem Explain-Prompt
Auswahl als Kontext hinzufügen
- Code-Abschnitt markieren
- Rechtsklick → Add Selection to LLMGui Context
- Im Chat weiteren Kontext hinzufügen und Frage stellen
Local-Only für Datenschutz
Strg+,→llmgui.localOnlyauftruesetzen- Alle Anfragen gehen nur noch an das lokale Ollama-Modell
- Bei Modell-Ausfall: Fehlermeldung statt Cloud-Fallback
Architektur der Extension
clients/vscode/
├── src/
│ ├── extension.ts # Activation, Commands, CodeLens, Findings-Integration
│ ├── ChatViewProvider.ts # WebView-basierter Chat-View
│ └── FindingsViewProvider.ts # Native TreeView für Security Findings
├── webview/
│ └── main.ts # Frontend (esbuild → media/webview.js)
├── media/
│ └── webview.js # Gebundetes WebView-Script
├── dist/
│ └── extension.js # Kompiliertes Extension-Bundle
└── package.json # Extension-Manifest (v2.14.18)
Kommunikation:
VS Code Extension
↕ (WebView messages)
Chat WebView (HTML/JS)
↕ (HTTP POST /chat)
LLMGui FastAPI Server (:8080)
↕ (Ollama API)
Lokales Sprachmodell