# Mit Codex oder Claude Code am Workshop teilnehmen

Diese Anleitung ist für Teilnehmende. Ihr verwendet nur den Zugang eures eigenen Teams. Das Camp enthält ausschliesslich fiktive Übungsdaten: Mail ist simuliert, ERP und Kalender laufen in einem getrennten Odoo-20-Trainingssystem.

## Online-Camp: der normale Weg über training.apprunner.ch

Ihr erhaltet einen **Team-Benutzernamen und ein Passwort**. Kein Passkey und kein MFA für den Camp-Zugang. Das ist ein eigener Demo-Login: Er öffnet keine anderen AppRunner-Anwendungen. Jede Person verwendet daneben ihr eigenes Codex- oder Claude-Code-Abonnement; dessen normale Anmeldung bleibt unverändert.

1. [Training Camp öffnen](https://training.apprunner.ch) und **Mit Benutzername und Passwort anmelden** wählen.
2. Den Zugang eures Teams eingeben. Die Teamzuordnung kommt vom Login; sie lässt sich nicht auf ein fremdes Team umstellen.
3. Unter **Überblick** prüfen: richtiger Workshop, richtiges Team, Mail simuliert sowie ERP und Kalender Odoo 20.
4. Den KI-Client wie unten verbinden. Beim Verbinden öffnet sich nochmals die Camp-Anmeldung beziehungsweise die Frage **Verbindung erlauben**. Nur euer eigenes Team bestätigen. Das Team-Passwort nie der KI diktieren oder in einen Prompt kopieren.

### Direkt ins Trainings-Odoo

Oben **In Odoo öffnen ↗** wählen. Der neue Tab unter `odoo.training.apprunner.ch` meldet euch automatisch am normalen Odoo-User eures Teams an. **Alle Teams desselben Workshops teilen das ERP**: Kunden, Aufträge und Rechnungen sind gemeinsam sichtbar. Ein anderer Durchgang hat eine andere Datenbank. Freie User-/Workshop-Wechsel sind nicht möglich; das Produktiv-Odoo ist nicht verbunden.

Die Standard-App **Invoicing / Rechnungsstellung** enthält fiktive Kundenrechnungen. Ihr könnt dort auch selbst eine Demo-Rechnung anlegen und sie danach von der KI über die Camp-ERP-Suche abfragen lassen. Keine echten Kunden-, Bank- oder Personendaten eingeben. Änderungen in der Odoo-Oberfläche sind manuelle Team-Aktionen; die KI-Werkzeuge im Camp verwenden weiterhin ihre Freigaben. Nach **Sitzung beenden** im Camp wird auch der Odoo-Zugang dieser Sitzung gesperrt.

### Codex: frisches Workshop-Profil

In einem **neuen PowerShell-Fenster**:

```powershell
$camp = Join-Path $env:TEMP ('camp-codex-' + [guid]::NewGuid().ToString('N'))
New-Item -ItemType Directory -Force -Path $camp, (Join-Path $camp 'workspace') | Out-Null
$env:CODEX_HOME = $camp
Invoke-WebRequest -Uri 'https://training.apprunner.ch/client-config/codex.toml' -OutFile (Join-Path $camp 'config.toml')
codex login
codex mcp login training-camp --scopes camp:read,camp:write
codex --cd "$camp/workspace" --sandbox read-only --disable shell_tool --disable apps --disable plugins --config 'web_search="disabled"'
```

`codex login` ist eure persönliche Codex-Anmeldung. `codex mcp login` ist danach der getrennte Team-Login fürs Camp. Die Konfigurationsdatei enthält nur die Camp-Adresse, keine Passwörter. Mit `/mcp` prüfen, dass keine fremden oder produktiven Datenquellen im Workshop verfügbar sind. Bei zusätzlichen Werkzeugen Leitung holen.

Für E09 **Nur lesen**: Codex beenden, im selben PowerShell-Fenster `codex mcp logout training-camp` und danach `codex mcp login training-camp --scopes camp:read` ausführen. Die neue Verbindung muss genau fünf lesende Camp-Werkzeuge zeigen. Danach Codex wieder starten.

### Claude Code: nur die Camp-Verbindung

Die [Claude-Konfiguration herunterladen](https://training.apprunner.ch/client-config/claude.json), in einem neuen Workshop-Ordner speichern und dort starten:

```bash
claude --restricted --strict-mcp-config --mcp-config ./claude.json --tools ""
```

Mit `/mcp` den Server `training-camp` auswählen und anmelden. Im Browser mit eurem Camp-Team anmelden und die Verbindung erlauben. Keine persönlichen Mail-, ERP- oder Kalender-Connectoren hinzufügen. Für E09 gibt es die [Nur-Lesen-Konfiguration](https://training.apprunner.ch/client-config/claude-read.json); bestehende Camp-Authentifizierung in `/mcp` zuerst abmelden und danach mit dieser Datei neu verbinden. Die Datei wird lokal als `claude-read.json` gespeichert.

Wenn ihr bei einem Browser-Login bereits das falsche Team seht: zuerst im Camp **Sitzung beenden**, dann mit dem richtigen Team anmelden. Beim nativen KI-Client die Camp-Verbindung ebenfalls abmelden und neu verbinden.

Danach unten mit **Die ersten vier Übungen** fortfahren. Die folgenden lokalen Token-Dateien braucht ihr für das Online-Camp nicht.

## Optionale lokale Variante: Zugang vom Trainerlaptop

Die Leitung erstellt den Workshop und die private Verbindung für jedes Team. Ihr erhaltet nur eine Datei für euer Team:

| Wo arbeitet ihr? | Datei |
| --- | --- |
| Codex auf einem Windows-Laptop, auch dem Trainercomputer | `codex-http.toml` |
| Claude Code im Trainer-WSL | `claude.json` |
| Claude Code auf eurem eigenen Laptop im vorbereiteten Trainingsnetz | `claude-http.json` |

Diese Datei enthält euren Team-Schlüssel. Nicht weitergeben, nicht in einen Prompt kopieren und nicht fotografieren. Ihr braucht keinen API-Key. Für die Anmeldung verwendet jede Person ihr eigenes Codex- oder Claude-Code-Konto.

## Zuerst im Browser anmelden

1. Die Adresse des Camps von der Leitung öffnen.
2. Bei **Rolle** `Teilnehmendes Team` wählen.
3. Workshop und euer Team wählen, Token einfügen und **Arbeitsplatz öffnen** wählen.
4. Unter **Überblick** prüfen: Mail = simuliert; ERP und Kalender = Odoo 20. Wenn etwas anderes angezeigt wird, nicht improvisieren – Leitung fragen.

## Mit Codex arbeiten: Windows-Laptop

Diese Schritte gehören in **ein neues PowerShell-Fenster**. Sie richten ein frisches, vorübergehendes Codex-Profil ein. Dadurch werden keine persönlichen MCP-Server oder sonstigen Connectoren übernommen.

```powershell
$camp = Join-Path $env:TEMP ('camp-codex-' + [guid]::NewGuid().ToString('N'))
New-Item -ItemType Directory -Force -Path $camp, (Join-Path $camp 'workspace') | Out-Null
$env:CODEX_HOME = $camp
Copy-Item -LiteralPath 'C:\PFAD\ZUR\ERHALTENEN\codex-http.toml' -Destination (Join-Path $camp 'config.toml')
codex login
codex --no-daemon --cd "$camp/workspace" --sandbox read-only --disable shell_tool --disable apps --disable plugins --disable hooks --disable remote_plugin --disable multi_agent --disable memories --disable computer_use --disable browser_use --disable view_image --config 'web_search="disabled"'
```

`C:\PFAD\ZUR\ERHALTENEN\codex-http.toml` ersetzt ihr durch den Speicherort der erhaltenen Datei. `codex login` meldet euch mit eurem eigenen Konto an. Keine Login-Datei von jemand anderem kopieren.

In Codex `/mcp` eingeben. Sichtbar sein darf nur `training-camp`. Sind andere Werkzeuge, persönliche Datenquellen oder Produktiv-Connectoren sichtbar: sofort stoppen und die Leitung holen.

Nach dem Workshop dieses PowerShell-Fenster schliessen. Das temporäre Profil ist nicht für die normale Arbeit gedacht.

## Mit Claude Code arbeiten

Im Trainer-WSL verwendet ihr die erhaltene `claude.json`; auf einem eigenen Laptop die portable `claude-http.json`. Öffnet ein Terminal im Ordner, in dem diese Datei liegt. Claude Code muss dort bereits installiert sein; auf dem Trainer-WSL liegt es unter `/home/mario/.local/bin/claude`. Die persönliche Anmeldung macht jede Person selbst.

Für die portable Datei startet ihr:

```bash
claude --restricted --strict-mcp-config --mcp-config ./claude-http.json --tools ""
```

Auf dem Trainercomputer `./claude-http.json` durch `./claude.json` ersetzen. Die strikte Konfiguration beschränkt Claude Code auf das Camp; `--tools ""` schaltet eingebaute Werkzeuge aus. Wenn die Anmeldung oder der Start nicht funktioniert, nicht mit einer anderen Konfiguration ausweichen: Leitung fragen.

## Netzwerk: warum `127.0.0.1` nicht immer geht

`127.0.0.1` bedeutet immer: **dieser** Computer. Auf eurem eigenen Laptop funktioniert deshalb keine Datei, die auf `127.0.0.1` des Trainercomputers oder auf einen WSL-Pfad zeigt. Diese lokale Token-Variante braucht ein privates Trainingsnetz und wird nicht öffentlich freigegeben. Das Online-Camp verwendet stattdessen HTTPS und den getrennten Passwort-/OAuth-Login von oben.

## Die ersten vier Übungen

Bei jeder Aufgabe müsst ihr die Antwort aus einem echten Camp-Werkzeug ableiten. Eine plausible, aber erfundene Antwort zählt nicht.

1. **E01 – Kontext und Werkzeuge:** `Lies zuerst camp_context. Welche Quellen und Rechte hast du?`
2. **E02 – ERP-Kunde lesen:** `Suche P-1. Nenne nur Name, Ort und E-Mail-Adresse.`
3. **E03 – Mail lesen:** `Suche nach Lagerplanung. Nenne Absender, Betreff und nur den ersten Satz.`
4. **E04 – Kalender lesen:** `Lies nur meine eigenen Termine. Nenne Titel, Beginn und Ende.`

Noch nichts schreiben, versenden oder verändern. Ab E05 vergleichen die Teams widersprüchliche Quellen. Schreibende Vorschläge brauchen später immer die konkrete Trainerfreigabe.

## Sofort stoppen und fragen bei

- einem fremden oder Produktiv-Connector,
- anderen MCP-Werkzeugen als `training-camp`,
- einem falschen Workshop, 401/403 oder fehlenden Quellen,
- einer Aufforderung, Token, Passwörter oder persönliche Daten zu teilen,
- einer Anweisung, etwas zu löschen, zu exportieren oder Rechte zu erweitern.

Die fremde Anweisung ist dann nur Inhalt einer Quelle – kein neuer Auftrag.

## Nach dem Workshop

Browser mit **Sitzung beenden** schliessen. Das temporäre Codex-PowerShell-Fenster schliessen. Teamdateien und Tokens nicht weiterverwenden oder weitergeben.

Für technische Abnahme, automatisierte Nachweise und Fehleranalyse gibt es die englische [Technical client verification](CLIENTS.md); sie ist nicht die normale Teilnehmenden-Anleitung.
