Der AI Engineering Accelerator ist gelauncht: Produktive und sichere SaaS-Apps entwickeln (ohne Vorkenntnisse).

Mehr erfahren
Alle Ressourcen
Vier Arbeitsschritte von Spezifikation bis Implementierung, darüber ein oranger Kreis mit dem Schriftzug Jev, der für den Schritt Planung Sonnet 5 statt Opus 5.5 auswählt
Claude Code6 Min.

Anleitung: Jev Model Router für Claude Code

Nicht jede Aufgabe braucht dein teuerstes Modell. Der Jev Model Router fragt bei jedem Prompt, welches Claude-Modell wirklich reicht, und gibt einfache Aufgaben an einen günstigeren Subagenten ab. So richtest du ihn in wenigen Minuten ein.

Wenn du aus meinem Video zu Jev kommst: Hier ist die Anleitung für den Model Router, den ich dort zeige. Alle Dateien liegen fertig in einem GitHub-Repository, du musst also nichts abtippen.

Zum Repository: github.com/AlexPEClub/Jev-Model-Router-Claude-Code

Worum es geht

In Claude Code arbeitest du meistens mit einem Modell für die ganze Session. Ist das Opus, bezahlst du Opus-Preise auch für Aufgaben wie „Such mir die Datei, in der der Supabase-Client initialisiert wird". Das könnte Haiku genauso gut.

Der Router setzt genau dort an. Bei jedem Prompt fragt er Jev von TypeSafe AI: Welches Claude-Modell ist das günstigste, das diese Aufgabe gut erledigen kann? Die Antwort kommt in unter einer halben Sekunde. Liegt das empfohlene Modell unter deinem Session-Modell und ist die Aufgabe in sich geschlossen, gibt Claude sie an einen Subagenten mit dem günstigeren Modell ab.

So funktioniert es

Der Router besteht aus zwei Teilen: einem Hook und einem Skill.

  1. Ein UserPromptSubmit-Hook schickt den Text deines Prompts an Jev.
  2. Jev beantwortet zwei Fragen: die günstigste passende Stufe (haiku, sonnet, opus oder fable) und wie wahrscheinlich es ist, dass die Aufgabe vom bisherigen Gespräch abhängt.
  3. Der Hook blendet Claude das Ergebnis ein: entweder DELEGATE (an einen Subagenten mit dem genannten Modell abgeben) oder handle (in der Session bleiben).
  4. Der Skill /jev schaltet den Router ein und aus und zeigt dir, wie er entschieden hat.

Die zweite Frage ist wichtig. Ein Subagent startet mit leerem Kontext. Schreibst du „Mach das Gleiche noch für die andere Seite", weiß er nicht, was gemeint ist. Solche Aufgaben bleiben deshalb im Session-Modell, auch wenn Jev eine kleinere Stufe für möglich hält.

Was du vorher brauchst

Wofür
Claude CodeDort läuft der Router als Hook.
jq und curlDer Hook ist ein Bash-Skript. Auf dem Mac: brew install jq, curl ist vorinstalliert.
TypeSafe-API-KeyVon console.typesafe.ai. Neue Accounts bekommen Startguthaben.

Schritt 1: Repository klonen und Claude Code starten

Wichtig ist, dass du Claude Code im geklonten Ordner startest. Nur dann findet Claude die Dateien, die es installieren soll.

git clone https://github.com/AlexPEClub/Jev-Model-Router-Claude-Code.git jev-model-router
cd jev-model-router
claude

Schritt 2: Den Einrichtungs-Prompt einfügen

Die Einrichtung übernimmt Claude selbst. Kopier diesen Prompt in die Session:

Richte mir den Jev Model Router aus diesem Repo ein. Kopiere die Dateien exakt,
ohne den Inhalt zu verändern:

1. jev-router/route.sh    → ~/.claude/jev-router/route.sh   (ausführbar machen)
2. jev-router/jev.sh      → ~/.claude/jev-router/jev.sh     (ausführbar machen)
3. jev-router/config.json → ~/.claude/jev-router/config.json
4. skills/jev/SKILL.md    → ~/.claude/skills/jev/SKILL.md
5. Den Hook-Block aus hook-settings.json in ~/.claude/settings.json unter
   hooks.UserPromptSubmit ERGÄNZEN, ohne bestehende Hooks oder andere
   Einstellungen zu überschreiben. Existiert die Datei noch nicht, lege sie an.

Danach:
- Frag mich, welches Modell meine Claude-Code-Session normalerweise nutzt
  (haiku, sonnet, opus oder fable), und trage es in ~/.claude/jev-router/config.json
  als "session_model" ein.
- Prüfe, ob jq und curl installiert sind. Falls jq fehlt, nenn mir den
  Installationsbefehl für mein System.
- Prüfe, ob TYPESAFE_API_KEY in meiner Umgebung gesetzt ist. Falls nicht, sag mir,
  dass ich den Key selbst in die Datei ~/.claude/jev-router/.env als Zeile
  TYPESAFE_API_KEY=... eintragen soll (Datei mit chmod 600 schützen).
  Schreib den Key niemals selbst in eine Datei.
- Schalte den Router NICHT ein (keine Datei "enabled" anlegen). Das mache ich
  selbst mit /jev on.
- Zum Schluss: bash ~/.claude/jev-router/jev.sh test "Wo wird in diesem Projekt
  der Supabase-Client initialisiert?" ausführen und mir die Ausgabe zeigen.

Claude kopiert die Dateien an ihren Platz, ergänzt den Hook in deinen Einstellungen, ohne bestehende Hooks anzufassen, fragt dich nach deinem Session-Modell und macht am Ende einen Testlauf.

Zwei Dinge macht Claude dabei bewusst nicht: Es schreibt deinen API-Key nie selbst in eine Datei, und es schaltet den Router nicht ein. Beides machst du selbst.

Schritt 3: API-Key eintragen

Falls der Key noch nicht in deiner Umgebung gesetzt ist, legst du die Datei ~/.claude/jev-router/.env an und trägst eine Zeile ein:

TYPESAFE_API_KEY=dein_schluessel

Danach schützt du die Datei, damit nur du sie lesen kannst:

chmod 600 ~/.claude/jev-router/.env

Schritt 4: Neu starten und einschalten

Beende Claude Code einmal und starte es neu. Erst dann sind der Hook und der Skill /jev geladen. Anschließend:

/jev on

Ab jetzt arbeitest du ganz normal. Du siehst an der ersten Zeile jeder Antwort, wie entschieden wurde:

  • → haiku (Jev) heißt: Die Aufgabe wurde an einen Haiku-Subagenten abgegeben.
  • → opus (Jev: haiku, ctx 0.89) heißt: Jev hätte Haiku empfohlen, aber die Aufgabe hängt zu 89 Prozent vom Gespräch ab. Deshalb bleibt sie in deiner Opus-Session.

Du siehst also immer, was Jev empfohlen hat und warum es trotzdem anders gelaufen ist.

Die Befehle im Überblick

BefehlWas er tut
/jev onRouter einschalten. Ab jetzt geht der Prompt-Text an TypeSafe.
/jev offRouter ausschalten. Nichts verlässt mehr deinen Rechner.
/jev statusAn oder aus, Session-Modell, Verteilung nach Stufe, Anzahl Delegationen, mittlere Antwortzeit
/jev test <Prompt>Trockenlauf: Du siehst Jevs Entscheidung, ohne dass etwas passiert.
/jev log 20Die letzten 20 Entscheidungen

Slash-Commands und Prompts mit weniger als 12 Zeichen werden nie an Jev geschickt.

Anpassen

Alles, was du einstellen kannst, steht in ~/.claude/jev-router/config.json:

FeldBedeutungStandard
session_modelDas Modell deiner Session. Abgegeben wird nur an Stufen darunter.opus
min_confidenceIst Jev sich weniger sicher als dieser Wert, bleibt die Aufgabe in der Session.0.6
context_thresholdAb dieser Wahrscheinlichkeit für „hängt vom Gespräch ab" bleibt die Aufgabe in der Session.0.5
questions.route.criteriaDie Beschreibung der vier Stufensiehe Datei
modelDie Jev-Versionjev-latest

Delegiert Jev dir zu oft oder zu selten, schärfst du zuerst die Beschreibungen unter criteria nach. Dort steht in Klartext, welche Art von Aufgabe zu welcher Stufe gehört. Wenn du mit den Schwellen zufrieden bist, stell model auf eine feste Jev-Version. Sonst kann sich das Verhalten ändern, sobald eine neue Version erscheint.

Ehrliche Einschränkungen

  • Die Delegation ist eine Empfehlung, kein Zwang. Der Hook blendet Claude nur die Entscheidung ein, abgeben muss Claude selbst. In der Praxis hält es sich daran, garantiert ist es aber nicht. Wer das hart erzwingen will, findet in gargpratyush/jev-router einen Proxy-Ansatz, der das Modell wirklich austauscht.
  • Ob sich das für dich lohnt, musst du messen. /jev status und /jev log zeigen dir, wie oft abgegeben wurde und an welche Stufe.
  • Das Log enthält Ausschnitte deiner Prompts. In ~/.claude/jev-router/log.jsonl stehen die ersten 120 Zeichen jedes klassifizierten Prompts. Die Datei also nicht teilen und nicht committen.

Datenschutz

An TypeSafe geht nur der Text deines Prompts, höchstens 12.000 Zeichen. Keine Dateien, kein Code, kein Gesprächsverlauf.

TypeSafe ist ein US-Anbieter. Wenn du mit Kundendaten arbeitest, gilt dieselbe Prüfung wie für jeden anderen KI-Dienst, Details unter docs.typesafe.ai/legal. Im Zweifel schaltest du den Router mit /jev off für die Session aus.

Außerdem ist der Router fail-open: Antwortet Jev nicht innerhalb von fünf Sekunden, läuft dein Prompt einfach unverändert durch. Ein Ausfall bei TypeSafe hält dich also nicht auf.

Kurz zusammengefasst

Repository klonen, Claude Code im Ordner starten, Prompt einfügen, Key eintragen, /jev on. Danach entscheidet bei jedem Prompt ein kleines Modell, ob dein großes Modell wirklich nötig ist. Die Entscheidung siehst du in jeder Antwort, und mit /jev off ist alles sofort wieder aus.

Alle Dateien, die README und die Links zur TypeSafe-Dokumentation findest du im Repository auf GitHub.

kostenlos

AI Coding Starter Kit: Dein Einstieg in Claude Code

Von der Produktidee zur sicheren Live-App – in Stunden statt Monaten. Der komplette Guide für alle, die Web-Apps selbst bauen wollen, ohne Coding-Vorkenntnisse.

Jetzt kostenlos herunterladen

Mehr als 7.000 mal heruntergeladen