KI Coding Plugin
KI-Plugin (Claude Code)
Das KI-Plugin bindet das Anthropic-Claude-Sprachmodell direkt in den expecco-Activity-Editor und in den ST/X-Klassenbrowser ein. Damit lassen sich Activities und Methoden erklären, verbessern, kommentieren oder auf Bugs untersuchen — Antworten erscheinen in einem eigenen Chat-Fenster und können per Knopfdruck wieder ins ursprüngliche Editor-Fenster zurückgespielt werden.
Voraussetzungen
- expecco mit installiertem Plugin
exept:expecco/plugin/claudeCodePlugin(im Lieferumfang ab Version 26.1). - Ein Anthropic-API-Key (beginnt mit
sk-ant-...). Den bekommst Du unter console.anthropic.com nach Anmeldung. Beachte: Anfragen werden nach Anthropic-Tarif abgerechnet (typisch wenige Cent pro Anfrage, siehe Kostenanzeige im Chat-Fenster). - Verfügbares
curl-Binary auf dem System (wird vom Plugin für die HTTPS-Verbindung verwendet). Unter Windows wird die mit expecco ausgelieferte Version genutzt; auf Linux/macOS in der Regel das System-curl.
Einrichtung
API-Key setzen
- Menü Extras → Einstellungen… öffnen.
- In der Baumansicht den Tab Claude Code auswählen.
- In das Feld API key den Anthropic-Key eintragen (
sk-ant-…). - Optional anpassen:
- Model — z.B.
claude-sonnet-4-6(Standard, ausgewogen) oderclaude-opus-4-7(stärker, teurer) - Max tokens — Obergrenze der Antwortlänge (Standard: 4096)
- API URL — nur ändern, wenn ein anderer Endpoint genutzt werden soll
- Model — z.B.
- Mit OK schließen — der Key wird sowohl in den expecco-Preferences als auch in den User-Preferences abgelegt und überlebt damit Image-Wechsel.
Alternativ ohne Settings-Dialog: im Chat-Menü oder über die Kontextmenüs (s.u.) gibt es einen Punkt Set API key…, der dasselbe interaktiv erledigt.
Test
Nach dem Setzen des Keys irgendwo eine Activity öffnen, im Code-Editor in das Toolbar-Icon Ask Claude klicken und Explain code wählen. Funktioniert die Verbindung, erscheint nach kurzer Zeit eine Antwort im Chat-Fenster.
Verwendung in expecco
Toolbar im Activity-Code-Editor
In jedem expecco-Activity-Editor (Smalltalk, JavaScript, Python, Ruby, …) erscheint in der Toolbar ein Eintrag Ask Claude mit Submenü:
- Explain code — erläutert, was die Activity tut, inkl. Inputs/Outputs und Nebenwirkungen.
- Suggest improvement — schlägt konkret verbesserten Code vor (idiomatischer, klarer, robuster).
- Find bugs — sucht gezielt nach Fehlern, Race-Conditions, Nil-Problemen, vertauschten Branches.
- Generate doc-comment — generiert einen knappen Dokumentationstext.
- Custom prompt… — freie Eingabe; die aktuelle Activity wird als Kontext mitgeschickt.
- Set API key… — interaktive Key-Eingabe.
Mitgeschickter Kontext
Mit jeder Anfrage an Claude wird automatisch übergeben:
- Activity-Name und (sofern hinterlegt) Beschreibung.
- Sprache der Activity (z.B.
#Smalltalk,#PythonScript). - Liste aller Input- und Output-Pins mit Datentyp und ggf. Pin-Kommentar.
- Der vollständige Activity-Body.
Dadurch kennt Claude die Schnittstelle der Activity und schlägt z.B. keine Typchecks für bereits typisierte Pins vor.
Antworten und Apply
Antworten erscheinen im Claude Code-Chat-Fenster (Singleton — wird beim ersten Aufruf geöffnet, danach jeweils wieder hochgeholt). Drei Buttons unter dem Verlauf:
- New conversation — startet eine neue Konversation (alter Verlauf wird verworfen).
- Apply — übernimmt einen Code-Block aus der Antwort:
- Bei Activity-Body-Vorschlag wird die aktuell offene Activity ersetzt (mit Compile-Schutz: schlägt das Compilieren fehl, bleibt der alte Code).
- Bei Method-Vorschlägen (z.B. Helper-Klassen-Methoden) wird automatisch ein NewSystemBrowser auf der Zielklasse geöffnet, der vorgeschlagene Code als geänderter Buffer geladen — Du kannst ihn vor dem Akzeptieren noch reviewen.
- Send (Ctrl-⏎) — schickt den Inhalt des Eingabefeldes als Folge-Frage (multi-turn). Während eine Antwort gestreamt wird, wird der Button zu Stop und kann den laufenden Stream abbrechen.
Anhänge
Über die Buttons + Image und + Screenshot kann man der nächsten Anfrage Bilder mitschicken (z.B. ein UI-Screenshot mit der Frage „warum sieht das so aus?"):
- + Image — File-Chooser für PNG/JPEG/GIF/WebP.
- + Screenshot — interaktiv einen Bildschirmbereich auswählen.
Die Anhänge werden mit der nächsten gesendeten Nachricht mitgeschickt und danach geleert. Ein Indikator im Send-Button zeigt die Anzahl pending Anhänge (z.B. „Send (1 img)").
Eingabefeld
Das Eingabefeld ist mehrzeilig:
- Enter — fügt einen Zeilenumbruch ein.
- Ctrl-Enter — sendet die Anfrage.
Verwendung im Klassenbrowser (NewSystemBrowser)
Im ST/X-Klassenbrowser fügt das Plugin einen Eintrag Ask Claude im Methoden-Kontextmenü ein:
- Explain method — erläutert die selektierte Methode.
- Suggest improvement — schlägt verbesserten Code für die Methode vor.
- Generate test — generiert eine TestCase-Methode.
- Generate doc-comment — fügt einen Doc-Kommentar in die Methode ein (Method-Body bleibt erhalten).
- Find bugs — Bug-Audit für die selektierte Methode.
- Custom prompt… — freie Eingabe mit Methode als Kontext.
- Set API key… / Set model… — Setup direkt aus dem Browser heraus.
Smart Context
Beim Senden einer Methoden-Anfrage werden zusätzlich übergeben:
- Klassenname, Selector und Klassen-Kategorie.
- Die Calls-Liste — alle Selectoren, die diese Methode aufruft, mit jeweils der implementierenden Klasse. So kennt Claude die Abhängigkeiten der Methode, ohne dass der Prompt mit fremden Quelltexten überladen wird.
Apply
- Generate doc-comment und Suggest improvement für die aktuell selektierte Methode werden in-place im offenen Browser-Fenster geladen — kein neues Fenster, der Code-Editor zeigt direkt den modifizierten Vorschlag, den Du mit Ctrl-S akzeptieren kannst.
- Schlägt Claude eine andere Methode (anderer Selektor) oder eine andere Klasse vor (z.B. eine neue Helper-Methode), wird ein frischer Browser auf der Zielklasse geöffnet — der Vorschlag erscheint dort als modifizierter Buffer.
- Snippets, die kein Method-Definition-Format haben (z.B. Erklärungen mit Code-Beispielen), öffnen ein Workspace-Fenster zum Begutachten.
Existing-Method-Routing
Schlägt Claude eine Methode mit einem Selector vor, der auf der Zielklasse bereits existiert, navigiert der Browser direkt zu dieser Methode — Du siehst den Diff zwischen gespeicherter und vorgeschlagener Source und kannst gezielt akzeptieren oder verwerfen.
Streaming, Kosten und Verlauf
- Antworten kommen live angeflossen (Token für Token), nicht erst nach Komplett-Empfang. Code-Blöcke (
```) werden farblich abgesetzt. - Scroll-Lock: Wenn Du während des Streams hochscrollst, springt das Fenster nicht mehr zum Ende — Du kannst in Ruhe lesen, was vorher kam.
- Nach jeder Antwort erscheint in grau eine kleine Footer-Zeile mit Token-Verbrauch und Kostenabschätzung, z.B.
[in: 1234 / out: 567 tok — $0.0123]. - Im Fenstertitel steht die kumulative Summe für die laufende Sitzung (alle Anfragen seit dem Öffnen des Chat-Fensters):
Claude Code — 12345 in / 6789 out tok — $0.1450. - Bei Anthropic-Überlastung (HTTP 429/529) wird automatisch bis zu vier Mal mit linearem Backoff (3, 6, 9 s) wiederholt.
- Bei Fehler bleibt Deine zuletzt eingetippte Frage im Eingabefeld, sodass Du sie mit Send erneut absenden kannst.
Datenschutz
Alle Anfragen gehen über HTTPS direkt an api.anthropic.com. Es findet keine Zwischenspeicherung bei eXept statt; eXept hat keinen Einblick in Anfragen oder Antworten. Beachte aber, dass Anthropic nach deren Datenschutzbestimmungen Daten verarbeitet — schicke keinen produktiven, geheimen oder personenbezogenen Code/Daten, wenn das nicht zulässig ist.
Bei Benutzung von API-Tokens - wie hier der Fall - werden laut Anthropic die Daten nicht zum Training des KI-Modells genutzt (Anthropic Erkärung dazu).
Tipps
- Mehrere Konversationen: der Chat ist ein Singleton — eine neue Anfrage über ein Browser-/Editor-Menü startet jedesmal eine neue Konversation. Folge-Fragen (Klärung, Vertiefung) gehen über das Eingabefeld in derselben Konversation.
- Modell wechseln: Für schnelle Routine-Antworten Sonnet, für schwierige Refactorings Opus. Über Set model… im Menü oder in den Settings.
- Custom prompt eignet sich gut für „warum macht Methode X es so und nicht so?" oder „schreib mir einen ParameterizedTest dazu mit folgenden Daten: …".
Bekannte Einschränkungen
- Native TLS funktioniert noch nicht zuverlässig; das Plugin ruft daher das System-
curlper Subprozess auf. - Sehr lange Activity-Bodies (> ein paar tausend Zeilen) können das Token-Limit der Anfrage sprengen — Claude bekommt dann nur einen Ausschnitt zu sehen. In diesem Fall: relevante Stelle in einer eigenen Helper-Method extrahieren und gezielt fragen.
- Inline-Markdown (
**fett**,`inline`, Headers) wird im Transcript noch nicht hervorgehoben — nur fenced Code-Blocks.