From 1f9a874df635854b9e12ae3af6332f6fedadbe52 Mon Sep 17 00:00:00 2001 From: dschlueter Date: Sun, 28 Jun 2026 03:43:36 +0200 Subject: [PATCH] docs: add user manual with setup, profiles, and cost/quality comparison Practical step-by-step guide for switching Claude Code to cheaper OpenRouter models (GLM-5.2, Kimi K2.7-code, DeepSeek V3.1, Qwen3 Coder) while keeping the Anthropic Pro login. Includes verified pricing (June 2026, from OpenRouter API), a worked cost example, a quality assessment, and troubleshooting. Notable callouts verified by live API tests: - moonshotai/kimi-k2.7-code is the current, valid slug (newer than k2.6). - openrouter/free is a meta-slug that may route to a non-coding model (e.g. nvidia/nemotron-3.5-content-safety); qwen3-coder:free is the safer free choice for coding, though rate-limited. - Reasoning models can exhaust max_tokens in the thinking step. Co-Authored-By: Claude --- BEDIENUNGSANLEITUNG.md | 253 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 BEDIENUNGSANLEITUNG.md diff --git a/BEDIENUNGSANLEITUNG.md b/BEDIENUNGSANLEITUNG.md new file mode 100644 index 0000000..313967d --- /dev/null +++ b/BEDIENUNGSANLEITUNG.md @@ -0,0 +1,253 @@ +# Bedienungsanleitung – claude-launcher-profiles + +> Claude Code mit günstigen Alternativ-Modellen statt der teuren Anthropic-API nutzen. +> Pro-Login bleibt erhalten; OpenRouter-Modelle werden über einfache Profile zugeschaltet. + +--- + +## 1. Wozu dieses Repository? + +Claude Code ist der CLI-Client von Anthropic. Er spricht standardmäßig die Anthropic-API an – und die ist teuer: + +| Anthropic-Modell | Input / 1M Tok | Output / 1M Tok | +|---|---|---| +| Claude Opus 4.5 | $5.00 | $25.00 | +| Claude Sonnet 4.5 | $3.00 | $15.00 | + +Dieses Repo schaltet Claude Code stattdessen auf **OpenRouter** um. Dort laufen u. a. starke Open-Source- und Drittanbieter-Modelle, die für viele Coding-Aufgaben qualitativ nah an Claude heranreichen – aber **ein Vielfaches günstiger** sind: + +| OpenRouter-Modell | Input / 1M Tok | Output / 1M Tok | Kontext | +|---|---|---|---| +| `z-ai/glm-5.2` | $0.95 | $3.00 | 1 M | +| `moonshotai/kimi-k2.7-code` | $0.74 | $3.50 | 262 K | +| `deepseek/deepseek-chat-v3.1` | $0.21 | $0.79 | 164 K | +| `qwen/qwen3-coder` | $0.22 | $1.80 | 1 M | +| `qwen/qwen3-coder:free` | **gratis** | **gratis** | 1 M | + +Konkret: GLM-5.2 ist im Output rund **5× günstiger als Sonnet 4.5** und rund **8× günstiger als Opus 4.5**; DeepSeek V3.1 im Output sogar rund **19× günstiger als Sonnet**. Wer es nur ausprobieren will, nutzt `qwen3-coder:free` ganz ohne Kreditkarte. + +> **Live-Beweis:** Dieses Dokument wurde in einer Claude-Code-Session verfasst, die selbst über `z-ai/glm-5.2` via OpenRouter lief – das Setup funktioniert also genau wie beschrieben. + +Mit diesem Repo wählst du das Modell über ein Profil: + +```bash +claude-pro # Anthropic Pro-Login (wie gehabt, kein API-Kosten) +claude-glm # GLM-5.2 über OpenRouter +claude-kimi # Kimi K2 über OpenRouter +claude-free # kostenloses Modell über OpenRouter +claude-profile # generischer Aufruf +``` + +--- + +## 2. Voraussetzungen + +- `claude` (Claude Code CLI) installiert +- funktionierendes **Claude-Pro-Login** (nur für das `pro`-Profil nötig) +- `bash` +- `yq` zum Parsen der YAML-Konfiguration +- ein **OpenRouter-Account + API-Key** (nur für die OpenRouter-Profile) + → Key anlegen unter https://openrouter.ai/keys + +`yq` installieren (Debian/Ubuntu): + +```bash +sudo apt-get update +sudo apt-get install -y yq +``` + +> Hinweis: Unter Debian/Ubuntu ist `yq` der *jq-Wrapper* („Command-line YAML processor – jq wrapper"). Das funktioniert. Der *MikeFarah-yq* geht ebenfalls. + +--- + +## 3. Setup – Schritt für Schritt + +### 3.1 Repository klonen + +```bash +git clone https://kitux.de/forgejo/dschlueter/claude-launcher-profiles.git +cd claude-launcher-profiles +``` + +### 3.2 Konfiguration anlegen + +```bash +cp config/profiles.example.yml config/profiles.yml +$EDITOR config/profiles.yml +``` + +`config/profiles.yml` enthält **keine** API-Keys – nur Modellnamen, Base-URL und den Claude-Startbefehl. Der OpenRouter-Key kommt ausschließlich aus der Umgebung (siehe 3.4). Beispiel: + +```yaml +defaults: + claude_cmd: "claude" + openrouter_base_url: "https://openrouter.ai/api" + +profiles: + pro: + mode: "pro" + + glm: + mode: "openrouter" + model: "z-ai/glm-5.2" + + kimi: + mode: "openrouter" + model: "moonshotai/kimi-k2.7-code" + + free: + mode: "openrouter" + model: "openrouter/free" +``` + +> **Modell-Slugs:** Die obigen Slugs (`z-ai/glm-5.2`, `moonshotai/kimi-k2.7-code`, `openrouter/free`) sind gegen die OpenRouter-API getestet (Stand Juni 2026) und entsprechen der mitgelieferten `profiles.example.yml`. OpenRouter ändert gelegentlich Bezeichner – bei eigenen Ergänzungen gegen https://openrouter.ai/models prüfen. +> +> ⚠️ **`openrouter/free` ist ein Meta-Slug**, kein festes Modell: OpenRouter routet den Aufruf an ein gerade verfügbares Gratis-Modell weiter. Aktuell landet das z. B. bei `nvidia/nemotron-3.5-content-safety` – einem **Content-Safety-Klassifikator, nicht einem Coding-Modell**. Zum Coden stattdessen `qwen/qwen3-coder:free` eintragen (gültig, aber rate-limitiert – bei 429 kurz warten oder eigenes Guthaben nutzen). + +### 3.3 Skripte ausführbar machen und installieren + +```bash +chmod +x bin/claude-profile bin/install-claude-profiles lib/profiles.sh +./bin/install-claude-profiles +``` + +Der Installer legt (falls nötig) einen Symlink unter `~/src/claude-launcher-profiles` an und fügt eine `source`-Zeile in deine `~/.bashrc` ein, die die Aliase lädt. + +### 3.4 OpenRouter-Key setzen + +Der Key wird **nicht** in `profiles.yml` gespeichert, sondern als Umgebungsvariable. + +Temporär (nur aktuelle Session): + +```bash +export OPENROUTER_API_KEY="sk-or-v1-..." +``` + +Dauerhaft in `~/.bashrc`: + +```bash +echo 'export OPENROUTER_API_KEY="sk-or-v1-..."' >> ~/.bashrc +source ~/.bashrc +``` + +### 3.5 Shell neu laden + +```bash +source ~/.bashrc +alias | grep claude- +``` + +Du sollte `claude-pro`, `claude-glm`, `claude-kimi`, `claude-free` sehen. + +--- + +## 4. Nutzung + +```bash +claude-pro # Claude Pro (Anthropic-Login, keine API-Kosten) +claude-glm # GLM-5.2 via OpenRouter +claude-kimi # Kimi K2 via OpenRouter +claude-free # kostenloses Modell via OpenRouter +``` + +Generisch (z. B. für selbst angelegte Profile): + +```bash +claude-profile glm +claude-profile mein-eigenes-profil +``` + +Jeder Aufruf setzt die nötigen `ANTHROPIC_*`-Variablen für die jeweilige Sitzung und startet `claude`. Vorher gesetzte Claude-Umgebungsvariablen werden pro Aufruf bereinigt, damit Profile sich nicht vermischen. + +--- + +## 5. Eigene Profile anlegen + +Trage ein neues Profil in `config/profiles.yml` ein: + +```yaml + deepseek: + mode: "openrouter" + model: "deepseek/deepseek-chat-v3.1" +``` + +Dazu passend einen Alias in `shell/aliases.sh`: + +```bash +alias claude-deep="$HOME/src/claude-launcher-profiles/bin/claude-profile deepseek" +``` + +Danach `source ~/.bashrc` – fertig. Der Key (`OPENROUTER_API_KEY`) gilt für alle OpenRouter-Profile gemeinsam. + +--- + +## 6. Kosten vs. Qualität – ehrlicher Vergleich + +### 6.1 Beispielsitzung (500 K Input + 50 K Output, ungespeichert) + +| Modell | Kosten | relativ zu Sonnet 4.5 | +|---|---|---| +| Claude Opus 4.5 | 0,5·$5 + 0,05·$25 = **$3,75** | 1,7× | +| Claude Sonnet 4.5 | 0,5·$3 + 0,05·$15 = **$2,25** | 1× (Referenz) | +| GLM-5.2 | 0,5·$0,95 + 0,05·$3 = **$0,63** | ≈ 0,28× | +| Kimi K2.7-code | 0,5·$0,74 + 0,05·$3,50 = **$0,55** | ≈ 0,24× | +| DeepSeek V3.1 | 0,5·$0,21 + 0,05·$0,79 = **$0,15** | ≈ 0,07× | +| Qwen3 Coder (free) | **$0,00** | gratis | + +> Wer Claude Code intensiv nutzt, gibt an einem Tag schnell mehrere Millionen Token aus. Bei 10 M Output/Tag macht der Unterschied zwischen Sonnet ($150) und GLM-5.2 ($30) schnell **über $120 pro Tag** aus. Prompt-Caching (Cache-Read bei GLM ~$0,18/M) senkt die Kosten für wiederholte System-Prompts zusätzlich. + +### 6.2 Qualität – realistische Einordnung + +- **GLM-5.2** (`z-ai/glm-5.2`): großes Reasoning-Modell, 1-M-Kontext, stark in langen Coding-/Agenten-Workflows und Werkzeugnutzung. Für die meisten Software-Engineering-Aufgaben ein brauchbarer Sonnet-Ersatz; bei den allerschwersten Schlussfolgerungen liegt Opus weiter vorn. +- **Kimi K2.7-code** (`moonshotai/kimi-k2.7-code`): fokussiert auf langfristiges Coding und UI-Generierung, Multi-Agenten-Orchestrierung. Gut für komplexere End-to-End-Coding-Tasks; 262K-Kontext (schmaler als GLM). Reasoning-Modell – braucht genug Output-Token, sonst verbraucht das „Denken" das Limit bevor die Antwort kommt. +- **DeepSeek V3.1** (`deepseek/deepseek-chat-v3.1`): extrem günstig, hybrides Reasoning, solide Tool-Nutzung – Top-Wirtschaftlichkeit für Alltags-Coding. +- **Qwen3 Coder** (`qwen/qwen3-coder` / `:free`): MoE-Code-Modell, 1-M-Kontext, auf agentenhaftes Coding (Function Calling, Repo-Weit-Kontext) optimiert. Die `:free`-Variante ist rate-limitiert, aber ideal zum Ausprobieren. +- **Kostenlos-Modelle** allgemein: gut zum Testen und für einfache Aufgaben; Rate-Limits und gelegentliche Auslastung machen sie für produktiven Dauereinsatz weniger verlässlich. Achtung bei `openrouter/free`: das ist ein Meta-Slug, der an ein gerade verfügbares Gratis-Modell routet – das kann auch ein Nicht-Coding-Modell wie ein Content-Safety-Klassifikator sein (siehe Hinweis in 3.2). + +**Faustregel:** Für tägliche Coding-Arbeit sind GLM-5.2 oder DeepSeek V3.1 das beste Preis-Leistungs-Verhältnis; für die härtesten Reasoning-Aufgaben oder maximale Zuverlässigkeit bleibt Claude (Pro oder API) die Referenz. Das Schöne: Du kannst **pro Aufruf wechseln** – `claude-glm` zum Bauen, `claude-pro` für die kritische Stelle. + +--- + +## 7. Sicherheit + +- `config/profiles.yml` enthält nur lokale Einstellungen und steht in `.gitignore` – sie wird nicht committet. +- Der OpenRouter-Key liegt **nur** in der Shell-Umgebung (`~/.bashrc`), nie im Repo. +- Vor jedem Profilwechsel werden `ANTHROPIC_*`-Variablen bereinigt, damit kein altes Token in eine andere Sitzung durchsickert. +- Prüfe vor jedem Commit auf versehentliche Secrets: + ```bash + grep -R "sk-or-v1-" . + ``` + Hier darf es keinen Treffer geben. + +--- + +## 8. Troubleshooting + +| Symptom | Ursache / Lösung | +|---|---| +| `Error: yq is required` | `yq` fehlt → siehe Abschnitt 2. | +| `Error: missing config file` | `config/profiles.yml` fehlt → `cp config/profiles.example.yml config/profiles.yml`. | +| `Error: OPENROUTER_API_KEY is not set` | Key nicht exportiert → `export OPENROUTER_API_KEY=...` und `source ~/.bashrc`. | +| `Error: profile 'x' not found` | Tippfehler oder Profil fehlt in `profiles.yml`. | +| `Error: unsupported mode` | `mode` muss `pro` oder `openrouter` sein. | +| Model-Antworten fehlerhaft / 404 | Slug veraltet → auf https://openrouter.ai/models prüfen und in `profiles.yml` anpassen. | +| Antwort leer / „finish_reason: length" | Reasoning-Modell hat das Token-Limit im „Denkschritt" verbraucht → höheres `max_tokens`-Setting im Client bzw. längere Antworten erlauben. | +| `claude-free` liefert unbrauchbare Antworten | `openrouter/free` ist ein Meta-Slug und kann an ein Nicht-Coding-Modell routen → stattdessen `qwen/qwen3-coder:free` eintragen. | +| 429 / „rate-limited upstream" | Gratis-Modell ist ausgelastet → kurz warten, ein kostenpflichtiges Slug nutzen oder Guthaben aufladen. | +| Aliase fehlen nach `source ~/.bashrc` | Installer-Zeile fehlt → `./bin/install-claude-profiles` erneut ausführen. | +| `claude-pro` startet nicht richtig | Pro-Login abgelaufen → `claude` einmal direkt starten und anmelden. | + +--- + +## 9. Wo was liegt + +``` +bin/claude-profile # Einstieg: ruft launch_profile auf +bin/install-claude-profiles # richtet Symlink + .bashrc-Alias-Zeile ein +lib/profiles.sh # Kernlogik: YAML-Parser, Profile, Env-Setup +shell/aliases.sh # die claude-* Aliase +config/profiles.example.yml # Vorlage (im Repo) +config/profiles.yml # deine lokale Konfig (gitignored) +``` + +Fragen oder Erweiterungen → Forgejo: https://kitux.de/forgejo/dschlueter/claude-launcher-profiles